首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 效能分析實戰:精準測量程式碼執行時間與記憶體占用

     編輯:PHP 相關知識

核心函式介紹

PHP 提供兩個內建函式進行效能監測:

  • microtime():取得微秒級時間戳,支援浮點數回傳
  • memory_get_usage():回傳目前腳本佔用記憶體(bytes),可選參數 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) . '
'; ?>

此範本可直接套用於任何程式碼區塊的效能分析,快速定位效能瓶頸。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved