ツールは、Xdebug PHP プロファイラーの出力を好み、視覚化しますqcachegrind
。kcachegrind
プロファイラーの出力は、事実上、対応する開始時間、実行時間、および階層を含むすべての PHP 関数呼び出しのログです。
典型的なビューを次の図に示します。
左側は「フラット プロファイル」です。最も時間がかかるものから最も時間がかからないものまで、すべての個々の関数呼び出しが一覧表示されます。「含む」列は、呼び出し先を含む関数によって消費された時間を示します。「Self」列は、関数が呼び出し先を除いて費やした時間を示します。'Called' 列と 'Function' 列は、関数が呼び出された回数と関数の名前 (および名前空間) をそれぞれ示します。
右側には、呼び出し元と呼び出し先を視覚化するためのさまざまなビューが用意されています。呼び出し元と呼び出し先は、左側で選択した関数に対応しています。
上のスクリーンショットでは、'Callee Map' が開かれています。各長方形は、選択された関数内の関数呼び出し (呼び出し先) であり、内部の各長方形は呼び出し先の呼び出し先です。サイズは相対的な「Incl」に対応します。時間。
下部にある [すべての呼び出し先] ビューには、選択した関数の呼び出し先が任意のプロパティで表示されます。
より詳細なビューを以下に示します。
これは、「セルフ」時間でソートされた Laravel データベース関数の関数です。さまざまな関数呼び出しがどのように関連しているか、およびどの関数が最も時間を消費しているかが明確にわかります: PDOStatement::execute. これは、外部データベースに接続してクエリを実行し、結果を待つ関数であるため、驚くことではありません。
元のスクリーンショットに戻ると、アプリケーションがほとんどの時間を PHP のsession_start
関数 (99.8%) に費やしていることがわかります。