XHProf を使用して PHP プログラムのパフォーマンスを最適化および分析する
XHProf は、FaceBook によって開発された関数レベルの PHP 階層化アナライザーです。
データ収集部分は C ベースの PHP 拡張機能であり、分析レポートは PHP ベースの一連の HTML ナビゲーション ページです。
XHProf は、各関数の呼び出し数、メモリ使用量、CPU 使用量、その他多くの重要なデータをカウントできます。
また、XHProf は 2 つの統計サンプルを比較したり、複数のデータ サンプルからの結果を集計したりすることもできます。
XHProf は、PHP プログラムの実行効率を分析するための強力なツールであり、より低レベルの分析データを取得できます。
XHProf の最新バージョンは 0.92 です。最新バージョンはホームページ (http://pecl.php.net/package/xhprof) からダウンロードできます。
たとえば、私の Web ディレクトリは /data/scutephp.com なので、次のコマンドを使用して XHProf をインストールできます。
ソースコードを表示
<span style="font-size: 14px;">wget http://pecl.php.net/get/xhprof-0.9.2.tgz</span><p>tar zxf xhprof-0.9.2.tgz<br />cd xhprof-0.9.2<br />cp -r xhprof_html xhprof_lib /data/scutephp.com/<br />cd extension<br />phpize<br />./configure<br />make<br />make install<span style="font-size: 14px;">
もちろん、php.ini も変更する必要がありますXHProf が正常に動作することを保証します。
まず、分析データ ファイルを保存するディレクトリ (/data/scutephp.com/xhprof/ など) を作成する必要があります。
ソース コードを表示
[xhprof]<br />extension=xhprof.so<br />xhprof.output_dir=/data/scutephp.com/xhprof/
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);<br /> // Test Code Start<br /> …………<br />// Test Code End<br /> <br />$xhprofData = xhprof_disable();<br /> <br />include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_lib.php";<br />include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_runs.php";<br /> <br />$xhprofRuns = new XHProfRuns_Default();<br />$xhprofRuns->save_run($xhprofData, "xhprof");
$randKey = mt_rand(1, 10000);<br /> <br /> if ($randKey == 1)<br />{<br /> xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);<br />}<br /> <br /> // Test Code Start<br /> …………<br />// Test Code End<br /> <br /> if ($randKey == 1)<br /> {<br /> $xhprofData = xhprof_disable();<br /> <br /> include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_lib.php";<br /> include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_runs.php";<br /> <br /> $xhprofRuns = new XHProfRuns_Default();<br /> $xhprofRuns->save_run($xhprofData, "xhprof");<br />}