2013-07-15 32 views
5

是否有一个最佳实践(基于IDE?),一个PHP/bash脚本或别的东西如何跟踪PHP中每行/每行块/方法的执行时间?

  • 得到线
  • 获得线块的执行时间的执行时间(例如线17〜42)
  • 得到PHP中的某一功能或方法

的执行时间?我目前坚持使用自建的解决方案,使用microtime(),但这是一个肮脏,不方便和缓慢的方法来做到这一点。我特别感兴趣的主要PHP IDE,如Eclipse,Netbeans,PHPStorm和VIM的解决方案。一个完美的解决方案将是一个跟踪整个应用程序的工具,并为每一行,每个方法和每个自定义操作块提供执行时间跟踪。

我会提供50个赏金以获得很好的答案。

+4

您正在寻找的神奇Google搜索词是“探查器”。看一看http://www.xdebug.org/docs/profiler--然而,不幸的是,工具建议(这是归结为什么)被认为是SO的主题。 – DaveRandom

+1

我完全不同意这个问题关闭的原因,没有基于意见的答案,因为他询问了一个程​​序是否存在或不存在,我不知道为什么我会在这里看到一些废话并且盲目跟随 – 2013-07-15 10:30:07

+0

@DaveRandom thanks for那个信息:) – 2013-07-15 10:32:29

回答

7

这就是你要寻找的:http://xdebug.org/docs/profiler。您可以将netbeans设置为连接到php进程,而不是逐步运行脚本,观察当前变量内容并分析其运行时间。

只需添加DLL到其他PHP扩展,通过PHP的ini配置:

; xdebug 
zend_extension = "C:\php\v5.4\ext\php_xdebug-2.2.3-5.4-vc9-nts.dll" 
xdebug.remote_enable=on 
;xdebug.remote_log="/var/log/xdebug.log" 
xdebug.remote_host=localhost 
xdebug.remote_handler=dbgp 
xdebug.remote_port=9000 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="C:\dev\profilling\" 

Netbeans的设置:

enter image description here

然后按Ctrl + F5在NetBeans(调试)。比你可以运行一步一步的脚本,看当前的变量值:

enter image description here

要浏览生成的日志分析器使用http://sourceforge.net/projects/precompiledbin/http://sourceforge.net/projects/wincachegrind/在窗口或http://kcachegrind.sourceforge.net/html/Home.html对于Linux。