分析PHP代码

时间:2008-09-25 14:27:42

标签: php performance profiling

我想找到一种方法来确定PHP中的每个函数以及PHP中的每个文件运行的时间。我有一个旧的遗留PHP应用程序,我正试图找到“粗糙点”,所以我想找到哪些例程和页面需要很长时间才能加载,客观。

是否有任何预先制作的工具允许这样做,或者我是否坚持使用microtime,并构建我自己的分析框架?

9 个答案:

答案 0 :(得分:42)

上周我实际做了一些优化工作。 XDebug确实是要走的路。

只是将它作为扩展名启用(出于某种原因,它不适用于我的Windows机器上的ze_extension),使用xdebug.profiler_enable_trigger = On设置你的php.ini并使用XDEBUG_PROFILE = 1调用你的普通网址作为获取或者一个post变量来描述那个非常请求。没有比这更容易了!

另外,我真的可以推荐webgrind,这是一个基于网络的(php)谷歌Summer Of Code项目,可以读取和解析你的调试输出文件!

答案 1 :(得分:7)

这是一个不错的提示。

使用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';}

答案 2 :(得分:6)

查看xdebug,它可以进行深入的分析。 here's an explanation如何使用xdebug。

  

Xdebug的Profiler是一款功能强大的工具   这使您能够分析   你的PHP代码并确定   瓶颈或一般看哪个   你的部分代码很慢而且可以   使用速度提升。中的剖析器   Xdebug 2输出分析信息   以cachegrind兼容的形式   文件。

SchizoDuckie mentioningWebgrind感到荣幸。这是我第一次听说过它。非常有用(+1)。

否则,您可以在Linux或其较小的衍生产品kcachegrind上使用wincachegrind。这两个应用程序都将读取xdebug的探查器输出文件,并总结它们以供您观看。

答案 3 :(得分:3)

我曾经看过Zend Core的屏幕演员。看起来很不错,但它实际上要花钱,我不知道这对你来说是不是一个问题。

答案 4 :(得分:3)

XDebug很不错但它不是那么容易使用或设置IMO。

Zend Studio内置的分析器非常易于使用。您只需点击浏览器工具栏上的按钮,然后 BAM 即可获得代码配置文件。 ts可能不像CacheGrind转储那样深入,但它总是对我来说足够好。

您确实需要设置Zend Platform,但这很简单且免费供开发使用 - 但您仍需要支付Zend Studio许可证。

答案 5 :(得分:2)

xdebug的分析功能非常好。如果你以valgrind格式保存输出,你可以使用像KCachegrind或Wincachegrind这样的东西来查看调用图,如果你是一个视觉类型的人,可以更容易地解决正在发生的事情。

答案 6 :(得分:2)

除了拥有非常强大的实时调试功能外,NuSphere(www.nusphere.com)的PhpED还有一个内置的分析器,只需单击一下IDE即可运行。

答案 7 :(得分:1)

如果您安装了xdebug扩展,您可以将其设置为导出运行配置文件,您可以在WinCacheGrind中读取(在Windows上)。我无法回想起在Linux上读取文件的应用程序的名称。

答案 8 :(得分:0)

最简单的解决方案是使用Zend Profiler,您不需要使用Zend平台,您可以直接从浏览器运行它,它非常准确并且具有您需要的最多功能并且它集成在Zend Studio中< / p>