分析PHP代码
我想find一种方法来确定PHP中的每个函数以及PHP中的每个文件运行的时间。 我有一个旧的PHP应用程序,我试图find“粗糙的地方”,所以我想定位哪些例程和页面需要很长时间来客观地加载。
有没有预制的工具,允许这个,或者我坚持使用microtime,并build立自己的分析框架?
实际上我上周做了一些优化工作。 XDebug的确是要走的路。
只是启用它作为扩展(由于某种原因,它不会与我的Windows机器上的ze_extension工作),设置您的php.ini与xdebug.profiler_enable_trigger =开,并调用你的正常的URL与XDEBUG_PROFILE = 1作为一个get或一个职位variables来描述这个要求。 没有什么更容易的了!
此外,我真的可以推荐webgrind ,一个基于web的(PHP)谷歌暑期项目,可以读取和parsing你的debugging输出文件!
这是一个很好的提示。
当您使用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的Profiler是一个function强大的工具,可以让你分析你的PHP代码并确定瓶颈,或者一般看你代码的哪个部分很慢,并且可以使用一个速度提升。 Xdebug 2中的分析器以cachegrind兼容文件的forms输出分析信息。
荣誉SchizoDuckie 提到 Webgrind 。 这是我听到的第一个。 非常有用(+1)。
否则,你可以在Linux上使用kcachegrind ,或者使用其较小的派生wincachegrind 。 这两个应用程序将读取xdebug的分析器输出文件,并总结它们为您的观赏乐趣。
我曾经看过一个Zend Core的屏幕。 看起来不错,但实际上花钱,我不知道这是否是一个问题。
XDebug很不错,但不是那么容易使用或设置国际海事组织。
内置于Zend Studio中的分析器非常易于使用。 您只需点击浏览器工具栏上的button,然后select您的代码configuration文件即可。 或许并不像CacheGrind转储那么深奥,但对我来说它总是够用的。
你也需要设置Zend平台,但是这是简单和免费的开发使用 – 你仍然需要支付Zend Studio许可证。
xdebug的分析function相当不错。 如果你把它保存在valgrind格式的输出中,你可以用KCachegrind或Wincachegrind来查看调用图,如果你是一个可视化types的人,可以更容易的解决这个问题。
除具有强大的实时debuggingfunction外,NuSphere(www.nusphere.com)的PhpED还有一个内置的分析器,可以在IDE内单击一下运行。
如果您安装了xdebug扩展,您可以将其设置为导出运行configuration文件,您可以在WinCacheGrind(在Windows上)中读取它。 我不记得在Linux上读取文件的应用程序的名称。
最简单的解决scheme是使用Zend Profiler,你不需要Zend平台使用,你可以直接从你的浏览器运行它,它是相当准确的,并具有你需要的最多function,它集成在Zend Studio中