我有一个PHP页面,可以将mysql查询中的大约130个结果加载到HTML表中。 PHPmyadmin在0.003秒内执行此操作,但我的页面需要0.5秒。在某些地方,PHP代码很慢,但我很难调试它。
我为提高性能所做的一件事就是找到了类似
的东西if($var == '123'){ //action }
虽然$ var不存在。通过将其更改为
if(isset($var)){
if($var =='123'){
//action
}
}
当$ var不在时,脚本变得更快。
我的问题:找出脚本减速的最佳方法是什么?还有更多这样的事情吗?
答案 0 :(得分:1)
你如何归还结果?循环中echo
可能会导致一些性能问题,这是一个非常昂贵的指令。如果您这样做,请将您的实现更改为以下内容:
$resultOutput = '';
foreach($result as $var)
{
// to seize AbsoluteZERO's idea
switch ($var)
{
case "456":
//do something
$resultOutput .= '\n456 found';
break;
case "123":
//do something
$resultOutput .= '\n123 found';
break;
default:
//give them an error or something
}
}
echo $resultOutput;
答案 1 :(得分:0)
您可以使用&&
(和)logical operator代替嵌套if:
if(!empty($var)&&($var=='123')){
//action
}
如果您使用loose comparisons ==
检查多个值,而不是嵌套if
,则可以使用switch()
:
if(!empty($var)){
switch ($var){
case "456":
//do something
break;
case "123":
//do something
break;
default:
//give them an error or something
}
}
答案 2 :(得分:0)
这应该对性能没有太大影响,除非你的代码/配置有些非常奇怪,你没有告诉我们。尝试通过分析器运行代码。 (我使用的是xdebug + kcachegrind - 但你没有说你正在使用什么操作系统。)
如何获得页面加载时间? PMA通常不会显示完整的结果集。 0.003秒似乎有点乐观。不确定我相信你的分析。但肯定0.5秒非常慢。