0

我有一个 PHP 页面,该页面将来自 mysql 查询的大约 130 个结果加载并订购到 HTML 表中。PHPmyadmin 在 0.003 秒内完成此操作,但我的页面需要 0.5 秒。某个地方的 php 代码很慢,但我很讨厌调试它。

我为提高性能所做的一件事是我发现了类似的东西

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

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

if(isset($var)){
  if($var =='123'){
    //action
  }
}

当 $var 不在时,脚本变得更快。

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

4

3 回答 3

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;
于 2013-06-22T22:25:36.527 回答
0

您可以使用&&(and)逻辑运算符代替嵌套的 if:

if(!empty($var)&&($var=='123')){
    //action
}

如果您使用松散比较 ==检查多个值,而不是嵌套if,您可以使用switch()

if(!empty($var)){
  switch ($var){

   case "456":
   //do something      
   break;

   case "123":
   //do something
   break;

   default:
   //give them an error or something

  }
}
于 2013-06-22T20:05:14.657 回答
0

这不应该对性能产生太大影响,除非您没有告诉我们的代码/配置有什么非常奇怪的地方。尝试通过探查器运行您的代码。(我使用 xdebug + kcachegrind - 但你没有说你使用的是什么操作系统)。

您如何获得页面加载时间?PMA 通常不会显示完整的结果集。0.003 秒似乎有点乐观。不确定我相信你的分析。但肯定 0.5 秒是很慢的。

于 2013-06-22T23:08:18.397 回答