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

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

有帮助吗?

解决方案

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

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

另外,我真的可以推荐 webgrind ,这是一个基于网络的(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的Profiler是一款功能强大的工具   这使您能够分析   你的PHP代码并确定   瓶颈或一般看哪个   你的部分代码很慢而且可以   使用速度提升。中的剖析器   Xdebug 2输出分析信息   以cachegrind兼容的形式   文件。

SchizoDuckie 感谢提及 Webgrind 。这是我第一次听说过它。非常有用(+1)。

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

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

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

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top