2013-07-15 31 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。