【发布时间】:2011-08-17 16:42:55
【问题描述】:
使用 Eclipse 的 PHP Profiler,我发现我的代码中的一个被多次调用的方法存在瓶颈。问题是我不知道传递了哪些参数来确定如何重现症状。
我已尝试将分析器报告为需要一整秒才能完成的代码包含以下内容:
$startTime = microtime(true);
$safe_text = wp_check_invalid_utf8( $text );
$endTime = microtime(true);
$time = $endTime - $startTime;
if ($time > .05) {
error_log('Time: ' . $time . ' text [' . $text . ']');
}
我在错误日志中从来没有遇到过这样的问题,但分析器会继续报告一个需要整整一秒钟才能完成的事件。在浏览器中刷新页面确实表明速度很慢。
我在代码的 3 个不同区域都遇到了同样的问题,知道在方法运行缓慢时传递给方法的内容可能有助于解决问题。有什么方法可以确定在间歇性慢速方法运行缓慢时传递了什么?
【问题讨论】:
-
你尝试
var_dumping 你的 $startTime 和 $endTime 变量了吗? -
您使用 xdebug 进行分析?
-
@Rikudo 否。但是我已经删除了 if($time > .05) 条件并手动验证了所有 $time 结果,因为每个结果只需要几毫秒。
-
@Gerry 没有。看起来我正在使用 Zend 调试器。
-
@Levinaris 好吧,Zend Debugger 中关于分析器的文档似乎更少,所以我的回答中的建议仍然是我能提供的最好的,我相信这是正确的解决方案。将来您可能想看看 XHProf,因为它是我迄今为止使用过的最好的 php 分析器(尽管仍然不提供调用级别细分):techportal.ibuildings.com/2009/12/01/profiling-with-xhprof
标签: php eclipse profiling profiler