0

私は、リクエストに応じてのみ実行される PHP プロファイラーのようなオプションが必要なライブ Web サイトを持っています (つまり、?_profiler=on のように URL にパラメーターを追加するとき)。

ライブ サイトで完全なプロファイラーを実行するのは非常に見苦しいことですが、実行中にどの関数に時間がかかっているかを確認したいと思います。

クラス(アクション)内の関数が呼び出されるたびに、関数が完了した開始時刻と終了時刻を登録し、かかった合計時間を計算する必要があります。

基本ライブラリ クラスを含めて、コントローラーでプロファイラー インスタンスを開始するだけで、アクション内のすべての関数呼び出しを自動的に検索し、所要時間を更新できる単純な PHP プロファイラーを探しています。

そのような種類の PHP プロファイラを知っている人はいますか? 調べるのを手伝ってください、またはそれがどのようにできるか誰かが私に考えを与えることができますか?

4

1 に答える 1

1

php.ini (または php.d/xdebug.ini) で次のオプションを指定して XDebug プロファイラーを使用します。

xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1

これは、プロファイラーがデフォルトで無効になっていることを意味しますが、「?XDEBUG_PROFILER」を get クエリ (例: site.com/page?XDEBUG_PROFILE) に追加すると、xdebug はプロファイリングを開始し、適切なログ ファイルを作成します。xdebug.profiler_output_dir オプションで配置する場所を指定できます。

次に、Web フロントエンド アプリを使用して xdebug ログ ファイルを解析できます。良いものは次のとおりです。

http://code.google.com/p/webgrind/

Web サーバーにインストールする必要があります。xdebug.profiler_output_dir オプションに基づいており、ログ ファイルを自動的に取得します。

于 2012-09-14T08:18:58.340 に答える