PHP 效能分析工具 XHProf

要分析 PHP 程式的效能,花費時間或 CPU 的使用情況、程式呼叫次數.. 等等,之前都用 APD,現在還有 XHProf 可以用用看。

PHP 效能分析工具 XHProf

XHProf 是 2009年由 Facebook 開發,然後 Open Source 出來的效能分析工具,而且有 GUI 的圖形分析畫面可以參考。

官方網址

XHProf 安裝

  1. # Debain / Ubuntu Linux
  2. sudo apt-get install php5-xhprof
  3. sudo php5enmod xhprof

XHProf 使用說明

  1. mkdir /tmp/xhprof
  2. chmod 777 /tmp/xhprof
  3. 於程式開頭加入:
    <?php
    xhprof_enable();
    ?>
  4. 程式結尾加入:
    <?php
    $xhprof_data = xhprof_disable();
    
    print_r($xhprof_data); // 這就是程式分析結果
    ?>

範例

<?php
xhprof_enable(); // XHProf start

for ($i = 0; $i < 100; $i++) {
    $t = rand(1, 10);
    // ... any test code, 假設這邊會有執行超過5秒的程式
}

// XHProf end
$xhprof_data = xhprof_disable();

// 執行超過5秒的才印出來
foreach ($xhprof_data as $k => $v) {
    if ($v['wt'] < 5000)
        unset($xhprof_data[$k]);
    else
        $xhprof_data[$k]['wt'] = $v['wt'] / 1000 . ' secs'; // ms, 1ms = 0.001 seconds
}

// 將數值寫入 Apache Log
error_log(print_r($xhprof_data, true), 3, '/tmp/xhprof/' .  $_SERVER['SCRIPT_NAME']  . '-' . time());
?>

觀察到的程式效能執行狀況與說明如下:

[main()] => Array
(
    [ct] => 1                // number of calls.
    [wt] => 419              // wall/wait time (ms).
)
[main()] => Array
(
    [ct] => 1                // number of calls.
    [wt] => 419              // wall/wait time (ms).
    [cpu] => 0               // cpu time.
    [mu] => 8264             // memory usage (bytes).
    [pmu] => 0               // peak memory usage.
)

XHProf 使用介紹

相關網頁

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 Programming 並標籤為 , , , 。將永久鏈結加入書籤。

發表迴響