分析PHP代码[重复]

4smxwvx5  于 9个月前  发布在  PHP
关注(0)|答案(9)|浏览(112)

此问题在此处已有答案

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,并建立自己的分析框架?

cngwdvgl

cngwdvgl1#

实际上,我上周做了一些优化工作。Xcovery确实是一条路要走。
只需将其作为扩展启用(由于某些原因,在我的Windows机器上它无法与ze_extension一起工作),使用xdebug.profiler_enable_trigger=On设置您的php.ini,并使用XDEBUG_PROFILE=1调用您的普通URL作为get或post变量来分析该请求。
此外,我真的可以推荐webgrind,一个基于web的(php)谷歌夏季代码项目,可以读取和解析您的调试输出文件!

q9rjltbz

q9rjltbz2#

这是一个很好的提示

当你使用Xcovery分析你的PHP时,设置profiler_trigger并在书签中使用它来触发Xcovery分析器;)

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

字符串

e0bqpujr

e0bqpujr3#

看看xdebug,它允许深入分析。以及如何使用xdebug的here's an explanation
Xdebug的Profiler是一个功能强大的工具,它可以让你分析PHP代码,确定瓶颈,或者大致了解代码的哪些部分速度慢,可以使用速度提升。Xdebug 2中的Profiler以cachegrind兼容文件的形式输出分析信息。
感谢SchizoDuckie提到Webgrind。这是我第一次听说它。非常有用(+1)。
否则,你可以在Linux上使用kcachegrind或者它的派生版本wincachegrind,这两个应用程序都将读取xdebug的分析器输出文件,并汇总它们,以供你浏览。

a6b3iqyw

a6b3iqyw4#

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

sxpgvts3

sxpgvts35#

Xcovery是不错的,但它不是那么容易使用或安装海事组织。
Zend Studio内置的分析器非常容易使用。你只需点击浏览器工具栏上的一个按钮,然后 BAM 你就有了代码配置文件。ts可能没有CacheGrind转储那么深入,但对我来说已经足够好了。
你也需要设置Zend平台,但这很简单,而且对于开发使用是免费的--不过你仍然需要支付Zend Studio许可证的费用。

cigdeys3

cigdeys36#

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

wsxa1bj1

wsxa1bj17#

xdebug的profiling函数非常好。如果你让它以valgrind-format保存输出,你可以使用类似KCachegrind或Wincachegrind的东西来查看调用图,如果你是一个视觉型的人,更容易弄清楚发生了什么。

rjjhvcjd

rjjhvcjd8#

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

xmd2e60i

xmd2e60i9#

最简单的解决方案是使用Zend Profiler,你不需要Zend Platform来使用它,你可以直接从浏览器运行它,它非常准确,拥有你需要的最多功能,它集成在Zend Studio中。

相关问题