ホームページ  >  記事  >  バックエンド開発  >  XHProf を使用して PHP プログラムのパフォーマンスを最適化および分析する

XHProf を使用して PHP プログラムのパフォーマンスを最適化および分析する

WBOY
WBOYオリジナル
2016-06-20 13:04:201118ブラウズ

XHProf を使用して PHP プログラムのパフォーマンスを最適化および分析する

XHProf は、FaceBook によって開発された関数レベルの PHP 階層化アナライザーです。

データ収集部分は C ベースの PHP 拡張機能であり、分析レポートは PHP ベースの一連の HTML ナビゲーション ページです。

XHProf は、各関数の呼び出し数、メモリ使用量、CPU 使用量、その他多くの重要なデータをカウントできます。

また、XHProf は 2 つの統計サンプルを比較したり、複数のデータ サンプルからの結果を集計したりすることもできます。

XHProf は、PHP プログラムの実行効率を分析するための強力なツールであり、より低レベルの分析データを取得できます。

XHProf をインストールします

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 の使用

XHProf の使用は非常に簡単で、いくつかのコードを変更するだけで実現できます。

たとえば、コードの実行時に CPU とメモリに関するデータを分析する必要があります。
ソースコードを見る
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");


このようにプログラムを実行すると、/data/scutephp.com/xhprof/に解析データファイルが生成されます。

ファイル名は 4b4c239a86593.xhprof に似ていますが、save_run のパラメーターを変更することでファイルの接尾辞を変更できます。

分析は応答速度に影響を与える可能性があるため、通常はすべてのユーザーリクエストの実行プロセスを分析するのではなく、乱数を追加してランダムにサンプリングします。
ソース コードを表示

 $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 />}

XHProf 分析データを表示

たとえば、私のドメイン名は scutephp.com で、Web 経由で詳細な分析データを表示できるようになりました。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。