3

重複の可能性:
PHPスクリプトをプロファイリングする最も簡単な方法

ウェブサイトの読み込みが遅い場合があり、どの機能が原因であるかを追跡したいと思います。(またはそれが私またはWebサーバーに関連している場合)実行されている各関数の実行時間を取得するにはどうすればよいですか?

好き;

<?php
function A() { }
function B() { }
function C() { }
A();
B();

Trace();
?>

Trace()は次のように出力します。Aは0.1ミリ秒で実行され、Bは1.1秒で実行され、スクリプトは完了しました。PHPにこのようなデバッグ機能はありますか?

追伸 各関数にマイクロタイムを適用することについて話しているのではありません。

4

3 に答える 3

9

使用する:

  • 実稼働環境でプロファイリングする必要がある場合はXHProf 。フットプリントがありますが、通常は手頃な価格です。ただし、スクリプトが予期せず終了した場合、トレースは生成されません。

http://blog.tech4him.com/wp-content/uploads/xhprof1.png http://www.wiktik.com/blog/wp-content/uploads/2012/02/xhprof-callgraph_small.png

  • 開発環境とテスト環境でプロファイルを作成する場合は、 XDebugを使用します。一般的に信頼性は高くなりますが、フットプリントが目立ちます。長時間実行されるスクリプトは、XHProfとは対照的に、たとえば非常に大きな(100s MB)ファイルを生成します。

http://blog.haohtml.com/wp-content/uploads/2010/03/win_xdebug_WinCacheGrind_4.jpg

使用しないでください:

  • APD 、この回答で推奨されているにもかかわらず、非常に古く、もう開発されていないように見えるためです(PECLページによると2004年の最後のリリース)

PS:私の個人的な推奨事項:時間がある場合はそれらすべてで遊んでください。そうでない場合は、開発環境でxdebugをセットアップしてください。

于 2012-08-14T00:14:36.610 に答える
0

http://xdebug.org/docs/profilerをご覧ください

于 2012-08-13T23:59:29.933 に答える
0

実稼働サイトではこれを行いませんが、テスト設定で問題を再現できる場合は、プロファイリングを使用して、すべての実行時間をどこで費やしているかを判断します。XDebugまたは同等のものをインストールする必要があります。 http://xdebug.org/docs/profiler

于 2012-08-13T23:59:46.830 に答える