此问题在此处已有答案:
How can I measure the speed of code written in PHP? [duplicate](10个答案)
Simplest way to profile a PHP script(14个回答)
3天前关闭。
我想找到一种方法来确定PHP中的每个函数和每个文件运行所需的时间。我有一个旧的遗留PHP应用程序,我试图找到其中的“粗糙点”,所以我想客观地定位哪些例程和页面需要很长时间加载。
是否有任何预先制作的工具允许这样做,或者我坚持使用microtime,并建立自己的分析框架?
9条答案
按热度按时间cngwdvgl1#
实际上,我上周做了一些优化工作。Xcovery确实是一条路要走。
只需将其作为扩展启用(由于某些原因,在我的Windows机器上它无法与ze_extension一起工作),使用xdebug.profiler_enable_trigger=On设置您的php.ini,并使用XDEBUG_PROFILE=1调用您的普通URL作为get或post变量来分析该请求。
此外,我真的可以推荐webgrind,一个基于web的(php)谷歌夏季代码项目,可以读取和解析您的调试输出文件!
q9rjltbz2#
这是一个很好的提示
当你使用Xcovery分析你的PHP时,设置profiler_trigger并在书签中使用它来触发Xcovery分析器;)
字符串
e0bqpujr3#
看看xdebug,它允许深入分析。以及如何使用xdebug的here's an explanation。
Xdebug的Profiler是一个功能强大的工具,它可以让你分析PHP代码,确定瓶颈,或者大致了解代码的哪些部分速度慢,可以使用速度提升。Xdebug 2中的Profiler以cachegrind兼容文件的形式输出分析信息。
感谢SchizoDuckie提到Webgrind。这是我第一次听说它。非常有用(+1)。
否则,你可以在Linux上使用kcachegrind或者它的派生版本wincachegrind,这两个应用程序都将读取xdebug的分析器输出文件,并汇总它们,以供你浏览。
a6b3iqyw4#
我曾经看过一个Zend Core的屏幕截图,看起来不错,但是它实际上是要花钱的,我不知道这对你来说是不是一个问题。
sxpgvts35#
Xcovery是不错的,但它不是那么容易使用或安装海事组织。
Zend Studio内置的分析器非常容易使用。你只需点击浏览器工具栏上的一个按钮,然后 BAM 你就有了代码配置文件。ts可能没有CacheGrind转储那么深入,但对我来说已经足够好了。
你也需要设置Zend平台,但这很简单,而且对于开发使用是免费的--不过你仍然需要支付Zend Studio许可证的费用。
cigdeys36#
如果你安装了xdebug扩展,你可以将它设置为导出运行配置文件,你可以在WinCacheGrind(在Windows上)中读取。我想不起在Linux上读取文件的应用程序的名称。
wsxa1bj17#
xdebug的profiling函数非常好。如果你让它以valgrind-format保存输出,你可以使用类似KCachegrind或Wincachegrind的东西来查看调用图,如果你是一个视觉型的人,更容易弄清楚发生了什么。
rjjhvcjd8#
除了具有非常强大的实时调试功能外,NuSphere(www.nusphere.com)的PhpED还具有一个内置的分析器,可以在IDE中单击一下即可运行。
xmd2e60i9#
最简单的解决方案是使用Zend Profiler,你不需要Zend Platform来使用它,你可以直接从浏览器运行它,它非常准确,拥有你需要的最多功能,它集成在Zend Studio中。