是否有任何预制工具可以实现这一点,还是我必须使用 microtime 并构建自己的分析框架?
上周我实际上进行了一些优化工作。 XDebug确实是可行的方法。
只需将其作为扩展启用(由于某种原因,它在我的Windows机器上无法使用ze_extension),并使用xdebug.profiler_enable_trigger = On设置您的php.ini,然后调用带有XDEBUG_PROFILE = 1的常规网址作为get或post变量以对该请求进行分析。没有比这更容易的了!
此外,我真的很推荐webgrind,这是一个基于Web的(PHP)Google Summer Of Code项目,可以读取和解析您的调试输出文件!
这里有一个不错的技巧。
当您使用XDebug来分析您的PHP代码时,可以设置profiler_trigger,并使用书签工具将其触发XDebug分析器 ;)
javascript:if(document.URL.indexOf('XDEBUG_PROFILE')<1){var%20sep=document.URL.indexOf('?');sep%20=%20(sep<1)?'?':'&';window.location.href=document.URL+sep+'XDEBUG_PROFILE';}
看一下xdebug,它可以进行深度分析。这里有一个解释关于如何使用xdebug。
Xdebug的分析器是一个强大的工具,它可以让你分析你的PHP代码,并确定瓶颈或通常看到哪些部分的代码很慢并且需要加速。 Xdebug 2中的分析器将分析信息输出为cachegrind兼容文件的形式。
感谢SchizoDuckie 提到Webgrind。这是我第一次听说。非常有用(+1)。
否则,您可以在Linux上使用kcachegrind或其较小的衍生版wincachegrind。这两个应用程序都可以读取xdebug的分析器输出文件,并为您汇总它们以供查看。XDebug很好用,但在我看来使用和设置都不是那么容易。
Zend Studio内置的分析器非常易于使用。您只需在浏览器工具栏上点击一个按钮,然后 BAM ,您就可以获得代码分析结果。虽然它可能没有CacheGrind转储文件那么深入,但对我来说总是足够好的。
您确实需要设置Zend Platform,但这很简单,并且开发使用是免费的 - 但您仍然需要支付Zend Studio许可证费用。
xdebug的性能分析功能非常好。如果您将其保存为valgrind格式的输出,那么您可以使用类似于KCachegrind或Wincachegrind的工具来查看调用图,如果您是视觉类型的人,可以更轻松地了解发生了什么。