PHP 提供兩個內建函式進行效能監測:
true 獲取系統實際分配量<?php
// 時間測量
$start = microtime(true);
// ... 程式碼區塊 ...
$end = microtime(true);
echo '執行時間:' . round($end - $start, 4) . ' 秒';
// 記憶體測量
$memStart = memory_get_usage(true);
$var = str_repeat('test', 10000);
$memPeak = memory_get_usage(true);
unset($var);
$memEnd = memory_get_usage(true);
echo "初始:$memStart bytes\n";
echo "峰值:$memPeak bytes\n";
echo "釋放後:$memEnd bytes\n";
?>
function fixByte($byte, $string = true, $dot_num = 2) {
$units = ['B', 'KB', 'MB', 'GB', 'TB'];
if ($byte < 1024) return $string ? "$byte B" : ['data' => $byte, 'danwei' => 'B'];
$i = floor(log($byte, 1024));
$val = round($byte / pow(1024, $i), $dot_num);
return $string ? "$val {$units[$i]}" : ['data' => $val, 'danwei' => $units[$i]];
}
// 使用範例
echo fixByte(memory_get_usage(true)); // 輸出:2.45 MB
<?php
$t1 = microtime(true);
$m1 = memory_get_usage(true);
/* 待測試程式碼區塊 */
$t2 = microtime(true);
$m2 = memory_get_usage(true);
echo '耗時:' . round($t2 - $t1, 4) . ' 秒
';
echo '記憶體增長:' . fixByte($m2 - $m1) . '
';
?>
此範本可直接套用於任何程式碼區塊的效能分析,快速定位效能瓶頸。