<?php
// PHP 5/7 相容
function getMicrotime() {
[$usec, $sec] = explode(' ', microtime());
return (float)$usec + (float)$sec;
}
$start = getMicrotime();
// ... 程式碼 ...
$end = getMicrotime();
echo "執行時間: " . ($end - $start) . " 秒";
<?php
$start = hrtime(true); // 納秒
// ...
$end = hrtime(true);
echo "耗時: " . (($end - $start) / 1e9) . " 秒";
<?php
$startTime = hrtime(true);
$startMem = memory_get_usage();
// ...
$endTime = hrtime(true);
$endMem = memory_get_usage();
echo "時間: " . (($endTime - $startTime)/1e9) . "s, 記憶體: " . (($endMem - $startMem)/1024) . " KB";
| 工具 | 用途 | 安裝 |
|---|---|---|
| Xdebug + Webgrind | 函式級呼叫次數、耗時、記憶體、呼叫圖 | pecl install xdebug |
| Blackfire.io | 生產級、時間軸、比較兩次執行、CI 整合 | 註冊帳號安裝 Agent |
| Tideways | 類 Blackfire、開源 PHP 擴充 | composer require tideways/php-xhprof-extension |
| PHPBench | 基準測試框架、統計顯著性 | composer require phpbench/phpbench |
echo vs print)。opcache.enable=1),生產環境 opcache.validate_timestamps=0。用 hrtime()(PHP 7.3+)或 microtime() 做基本計時;引入 Xdebug/Blackfire 做深度剖析。記住:測量是優化的起點,演算法與架構優於語法技巧。