リスティング広告代行の専門会社|Yahoo!プロモーション広告・Google AdWords完全対応|東京・大阪・名古屋

XHProfを使ってPHPプログラムのボトルネックを調べる


PECL :: Package :: xhprof

XHProfはfacebookが開発したPHP用のプロファイラです。

今回はこのXHProfを使ってPHPプログラムのボトルネックを調べてみましょう。

インストール

PECL :: Package :: xhprof から、ソースコード(xhprof-0.9.3.tgz)をダウンロードしてコンパイルします。

$ tar xvfz xhprof-0.9.3.tgz
$ cd xhprof-0.9.0/extension/
$ phpize
$ make
$ make test
$ make install

php.ini 等に出来上がったエクステンションを読みこませるように記述します。

extension=xhprof.so

apacheを再起動させた後、phpinfo() 上に「xhprof」の項目が確認できればインストールは完了です。

プロファイリング

実際にアプリケーションのプロファイリングを行います。

まずはxhprofを実行するライブラリをcomposerで準備します。

$ php composer.phar require facebook/xhprof

あとはアプリケーションのbootstrapファイル等にプロファイリングを行うように記述します。

function __xhprof_save() {
    $data = xhprof_disable();
    $runs = new XHProfRuns_Default();
    $runs->save_run($data, '{APPLICATION_NAME}');
}
xhprof_enable();
register_shutdown_function('__xhprof_save');

これでアプリケーションを実行すればプロファイリングが行われるといった感じです。

プロファイリング結果

インストール時にダウンロードしたソースディレクトリ配下にある「xhprof_html」と「xhprof_lib」を
ドキュメントルート配下にコピーし、ブラウザから「xhprof_html」を表示すれば結果を表示できます。

一覧

Screenshot_from_2013-07-23 20:18:29

詳細

Screenshot_from_2013-07-23 20:16:59

コールグラフ

コールグラフを表示したい場合は「Graphviz」が必要になるので、インストールします。

$ sudo apt-get install graphviz

インストールされていればコールグラフを表示することができます。

Screenshot_from_2013-07-23 20:26:37

これでどの部分がボトルネックになっているか一目瞭然です。



業界初のリスティング広告運用総合支援ツール Lisket(リスケット)

無料メルマガ

登録はたったの5秒!一週間分のコラムを毎週月曜にメールでお届けします。

Facebookもチェック