PHP减速,但在哪里

时间:2013-06-22 19:57:29

标签: php

我有一个PHP页面,可以将mysql查询中的大约130个结果加载到HTML表中。 PHPmyadmin在0.003秒内执行此操作,但我的页面需要0.5秒。在某些地方,PHP代码很慢,但我很难调试它。

我为提高性能所做的一件事就是找到了类似

的东西
if($var == '123'){ //action }

虽然$ var不存在。通过将其更改为

if(isset($var)){
  if($var =='123'){
    //action
  }
}
当$ var不在时,脚本变得更快。

我的问题:找出脚本减速的最佳方法是什么?还有更多这样的事情吗?

3 个答案:

答案 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秒非常慢。