2015-10-13 15 views
10

Xdebugによって作成されたプロファイルログを表示するにはqcachegrindを使用しています。私はファイルを上手く見ることができますが、私は何を見ているのか分かりません。qcachegrindのUIを読むにはどうすればよいですか?

私はGoogleを試しましたが、インストールのチュートリアルを続けていますが、ディスプレイの理解方法については何も教えていません。

  1. 何以下qcachegrindディスプレイは、私はこのファイルから見ることができますより多くのものがあり、またはこれは、利用可能なデータのすべてである私のアプリケーション
  2. を教えていますか?

(より良いビューの新しいタブで画像を開いてください)qcachegrindよう


enter image description here

+0

あなたが共有できるqCacheGrindに関する有用な文書が見つかりましたか? –

+0

@キンバリーW残念ながら、いいえ、私は決してしませんでした。 – DelightedD0D

+1

@キンバリーW私は1年以上待っていました、あなたは8日間で幸運に見えます、トムはちょうどそれをかなりうまくレイアウトする答えを追加しました – DelightedD0D

答えて

10

ツールとkcachegrind XdebugのPHPプロファイラの出力を視覚化します。プロファイラの出力は、実質的に、対応する開始時間、実行時間、および階層を持つすべてのPHP関数呼び出しのログです。

模式図を以下の図に示されている:左側

Laravel App

は「フラット・プロファイル」です。時間のかかるものから時間のかかるものまで、個々の関数呼び出しをすべてリストします。 「インクルージョン」列は、呼び出し先を含む関数が消費する時間を示します。 「自己」列には、呼び出し先を除く関数が費やした時間が表示されます。 「呼び出された」および「関数」列には、関数が呼び出された回数とその関数の名前(および名前空間)がそれぞれ表示されます。

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

トップスクリーンショットでは、「着メロマップ」が開きます。各矩形は選択された関数(呼び出し先)内の関数呼び出しであり、その中の各rectaleは呼び出し先の呼び出し先です。サイズは相対 'Incl'に対応します。時間。

'All Callees'ビューには、選択した機能オーダーの呼び出し先が好みのプロパティで表示されます。

より詳細な図を以下に示す:

Callers and callees

これは「自己」時間でソートLaravelデータベース関数の関数です。異なる関数呼び出しがどのように関連して呼び出され、どの関数が最も時間を要しているのかがはっきりと分かります:PDOStatement :: execute。これは、外部データベースに接続し、クエリを実行し、結果を待つ関数であるため、驚くことではありません。

元のスクリーンショットに戻るこれは、PHPのsession_start関数でアプリケーションが多くの時間を費やしたことを示しています。これは99.8%の自己時間で示されます。

+0

主要な時間に与えられた単位はありません。ユニットを教えてもらえますか?それはマイクロ秒かミニ秒か?インクルードと自己列の下にあります。 –

+1

1単位は1秒の1.000分の1秒(https://xdebug.org/docs/profiler)、a.k.a. 1マイクロ秒(us、μs)です。相対時間と絶対時間のいずれかを選択できます。 –

関連する問題