35

qcachegrindによって作成されたプロファイル ログを表示するために使用していますXdebug。ファイルは正常に表示できますが、何を見ているのかわかりません。

Google を試してみましたが、表示を理解する方法については何もなく、インストールのチュートリアルを取得し続けています。

  1. 以下の qcachegrind 表示は、私のアプリケーションについて何を教えてくれますか?
  2. このファイルから他に表示できるものはありますか、それとも利用可能なデータはこれだけですか?

(見やすいように新しいタブで画像を開いてください)


ここに画像の説明を入力

4

1 に答える 1

65

ツールは、Xdebug PHP プロファイラーの出力を好み、視覚化しますqcachegrindkcachegrindプロファイラーの出力は、事実上、対応する開始時間、実行時間、および階層を含むすべての PHP 関数呼び出しのログです。

典型的なビューを次の図に示します。

ララベルアプリ

左側は「フラット プロファイル」です。最も時間がかかるものから最も時間がかからないものまで、すべての個々の関数呼び出しが一覧表示されます。「含む」列は、呼び出し先を含む関数によって消費された時間を示します。「Self」列は、関数が呼び出し先を除いて費やした時間を示します。'Called' 列と 'Function' 列は、関数が呼び出された回数と関数の名前 (および名前空間) をそれぞれ示します。

右側には、呼び出し元と呼び出し先を視覚化するためのさまざまなビューが用意されています。呼び出し元と呼び出し先は、左側で選択した関数に対応しています。

上のスクリーンショットでは、'Callee Map' が開かれています。各長方形は、選択された関数内の関数呼び出し (呼び出し先) であり、内部の各長方形は呼び出し先の呼び出し先です。サイズは相対的な「Incl」に対応します。時間。

下部にある [すべての呼び出し先] ビューには、選択した関数の呼び出し先が任意のプロパティで表示されます。

より詳細なビューを以下に示します。

呼び出し元と呼び出し先

これは、「セルフ」時間でソートされた Laravel データベース関数の関数です。さまざまな関数呼び出しがどのように関連しているか、およびどの関数が最も時間を消費しているかが明確にわかります: PDOStatement::execute. これは、外部データベースに接続してクエリを実行し、結果を待つ関数であるため、驚くことではありません。

元のスクリーンショットに戻ると、アプリケーションがほとんどの時間を PHP のsession_start関数 (99.8%) に費やしていることがわかります。

于 2016-12-09T23:00:41.643 に答える