PHP程序加速探索之腳本執行速度測試
前面有提到,只有找到影響速度的代碼,我們才有可能進行優化。PEAR的benchmark包中的Benchmark_Timer類和Benchmark_Iterate類,可以用來很方便地測試腳本執行的速度。(關于PEAR的安裝與配置請自行查看相關資料) 。
首先用Benchmark_Iterate類來測試程序中某個函數或類的某個方法的執行時間。
benchmark1.php
require_once('Benchmark/Iterate.php'); $benchmark = new Benchmark_Iterate();
$benchmark->run(10, 'myFunction','test'); $result = $benchmark->get(); echo '
'; print_r($result); echo ''; exit;
function myFunction($var) { // do something echo 'Hello '; }
?>
建立benchmark Iterate對象$benchmark,這個對象用來執行myFunction函數10次。
$argument變量每次都傳遞給myFunction. 多次運行的分析結果存入$result,然后用benchmark對象的get()方法來獲取。這個結果用print_r()輸出到屏幕。通常會輸出這樣的結果:
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
Array([1] => 0.000427 [2] => 0.000079 [3] => 0.000072 [4] => 0.000071 [5] => 0.000076 [6] => 0.000070 [7] => 0.000073 [8] => 0.000070 [9] => 0.000074 [10] => 0.000072 [mean] => 0.000108 [iterations] => 10)
myFunction的每次執行,benchmark對象都會跟蹤執行時間。并且會計算平均的執行時間([mean]那一行)。通過多次運行目標函數,你可以得到該函數的平均運行時間。
在實際測試中,函數的次數應當至少1000次左右,這樣可以得到較客觀的結果。