2008-11-09 72 views
6

通過運行時基準測試優化PHP代碼非常簡單。通過代碼塊周圍的microtime()跟蹤$ start和$ end的時間 - 我沒有找到涉及microtime()用法的答案。有沒有一種方法可以測量PHP中的分析時間?

我想這樣做是衡量它需要PHP來做好準備,以運行其代碼的時間 - 代碼解析/ OP碼樹的建立時間。我的推理是,儘管只需包含()您在網站上擁有的每個頁面都可能需要的每個類別(可能爲),但CPU開銷不能「免費」。我想知道「昂貴」的解析時間真的是多麼的。

我假設一個操作碼緩存如APC是而不是部分場景。

我會是正確的,在PHP解析時間測量的東西,就必須發生在mod_php的?

編輯:如果可能,考慮$_SERVER['DOCUMENT_ROOT']在代碼中的使用將是有幫助的。命令解決方案可能需要一點修補才能做到這一點(但仍然是有價值的答案)。

回答

7

是所用的時間。有。

<?php return; rest of the code ?> 

<?php whole code; $%^parse [email protected]! ?> 

,然後比較空運行腳本

time php empty.php 

它需要與我上面提到的補充運行(或失敗)楷書時間的時間:

time php test.php 

我在Core2Duo 2.4Ghz上的大文件和PHP5.3上使用了這種方法,可以每秒解析1.5到4.5MB的PHP代碼(這很大程度上取決於代碼的複雜性)。

1

的一種方法可以被定時的命令行腳本的執行。

在Linux中,例如:

$ time php5 -r 'echo "Hello world";' 
Hello world 
real 0m1.565s 
user 0m0.036s 
sys  0m0.024s 

是否幫助呢?也許這是探索不同腳本之間的相對時間有幫助的,但它可能無法代表通過Apache模塊

2

對於您正在尋找的詳細分析級別,似乎實施Xdebug(http://xdebug.org/)會爲您提供最大的信息,而不必將您的代碼切分爲多個部分。

+0

你有關於如何做到這一點的具體例子? – jschrab 2008-11-09 23:13:05

相關問題