2011年7月15日金曜日

Xdebugのプロファイル

こんにちは、hodori です。


PHPで開発を行うエンジニアがよくお世話になるのがXdebugのプロファイル機能です。

実行される順番や各関数ごとの実行時間・実行回数などの役に立つ情報をとれるので

デバッグやボトルネックを調査する際に大変便利なものです。


普通に使う分にはXdebugを投入して php.ini の中に

xdebug.profiler_enable = 1

を記述するだけなので簡単に使えます。


ただ、この状態だとすべてのアクセスでプロファイルが作られるので

クラウド上に開発環境を置いて共用で使う場合などは

調査したいファイルのプロファイル以外にも多数のプロファイルができてしまい

必要なプロファイルを探すのが少々面倒だったりします。


それを回避するための方法を二つほど紹介しようと思います。


一つ目はプロファイルを生成するホスト名を指定する方法があります。

共用の環境に複数のVirtualHostを作って運用している場合に

任意のHostへのアクセスだけプロファイルを残す設定です。

  xdebug.remote_host = "local.hoststar"

管理用のページとアプリを同じサーバーの別VirtualHostとして

運用している場合などにアプリのプロファイルだけを残す事が出来ます。


もう一つの方法は少々手間が増えることになりますが、

プロファイルを生成したい場合のみ、その旨をパラメータで指定する方法です。

設定は php.ini に下記の2行を記述して

xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1

プロファイルを生成したい場合にGETかPOSTで「XDEBUG_PROFILE」を送ると

その場合のみプロファイルが生成されます。

携帯端末などでテストしている場合などは入力が少し面倒だったりしますが……。


Firefoxのアドオンの「Xdebug Helper」のプロファイル生成のON/OFF機能なども

この設定を使っていたりします。Firefoxを使えない状況でも少しの面倒で

使い分けができるので覚えておくと便利かなと思い紹介させていただきました。

0 件のコメント:

コメントを投稿