計算執行的時間
通過下面這個簡單的方法可以計算一段程式的執行時間(微妙)
代碼如下 |
複製代碼 |
$start_time = microtime(true); //一些需要計算時間的代碼 //... code here ... print('代碼的已耗用時間是:'.getExecTime($start_time)); function getExecTime($start_time) { return microtime(true)-$start_time; }PEAR的Benchmark模組提供了更詳細的時間統計功能 require_once 'Benchmark/Timer.php'; $timer =& new Benchmark_Timer(true); $timer->start(); // 設定函數 $timer->setMarker('setup'); // some more code executed here $timer->setMarker('middle'); // even yet still more code here $timer->setmarker('done'); // and a last bit of code here $timer->stop(); $timer->display();通過declare結構和ticks指令可以實現自動記錄每一行PHP代碼執行的時間 // A function that records the time when it is called function profile($dump = FALSE) { static $profile; // Return the times stored in profile, then erase it if ($dump) { $temp = $profile; unset($profile); return ($temp); } $profile[] = microtime(); } // Set up a tick handler register_tick_function("profile"); // Initialize the function before the declare block profile(); // Run a block of code, throw a tick every 2nd statement declare(ticks=2) { for ($x = 1; $x < 50; ++$x) { echo similar_text(md5($x), md5($x*$x)), ";"; } } // Display the data stored in the profiler print_r(profile (TRUE));注意:ticks 指令在 PHP 5.3.0 中是過時指令,將會從 PHP 6.0.0 移除。 |
代碼排錯
主要介紹的是Advanced PHP Debugger(APD),通過設定可以產生追蹤檔案,對檔案進行分析可以得到指令碼的詳細資料
網站壓力測試
人們常混淆壓力測試和基準測試。基準測試是一種由單獨的開發人員完成的臨時活動,常用Apache HTTP測試載入器——ab,該工具可以測試一台HTTP伺服器每秒能相應的請求數。壓力測試是一種能中斷你WEB應用程式的測試技術,通過對斷點測試,能識別並修複應用程式中的弱點,為何時購置新硬體提供依據。常用的開源工具是Siege。
提速技巧
通過安裝PHP加速器可以有效提供PHP的執行速度,常見的三種加速器是Alternative PHP Cache(APC)、eAccelerator和ionCube PHP Accelerator(PHPA)。另外需要注意的是加速器的相容性通常會滯後於新發布的PHP版本。
另外提速技巧是在能不使用正則的時候盡量不要用,通常可替代的方案會比使用正則效率更高。