JSのChrome CPUプロファイルの「自己」と「合計」の違い


229

JSコードのChrome CPUプロファイリングの「自己」列と「合計」列の違いは何ですか?

ここに画像の説明を入力してください


13
セルフタイムは、ほとんどの時間はシステム/ライブラリ/ DB / IOなどの呼び出しに費やされるため、深刻なソフトウェアではほとんど決して役立ちません。たまたまある種のタイトなループを書きます。システムルーチンで多くが使用されていることがわかるかもしれませんが、それではうまくいきません。コードのどの部分が多くの時間を費やすのかを知る必要があります
Mike Dunlavey、2011

組み込みオブジェクトを呼び出すことによって関数がブロックしている場合(非同期XMLHttpRequest送信など)、セルフタイムは非常に役立つ場合があります。そのような場合、これらの関数はボトルネックである一方で、合計時間測定の上部に表示されない場合があります。
コンスタンティン

回答:


303

self その関数で直接作業に費やされた時間です。

total その関数と、それが呼び出した関数で費やされた時間です。


11
だから自分自身はインラインステートメントだけで、関数呼び出しではないでしょうか?そして、すべてのコードが呼び出し内で実行されていますか?
CoolUserName 2011

42
ちなみに、人々はこれを有用な答えだと思っているようです。これは、Chromeだけでなく、プロファイラー全般にも当てはまります。
duskwuff -inactive- 2012

2
関数がそれ自体を再帰的に呼び出すとどうなりますか?では、それをどのように正しく読みますか?
David Limkys、2017

3
ドキュメントのリンクはこちら(「関数の詳細を表示」セクションにあります)Self time関数の現在の呼び出しを完了するのにかかった時間。関数自体のステートメントのみが含まれ、関数が呼び出した関数は含まれません。 Total timeこの関数および呼び出された関数の現在の呼び出しを完了するのにかかった時間。
イマンMahmoudinasab 2017

そして、現在の時間と合計時間の値に沿って表示されるパーセンテージの意味は何ですか?それは何の何パーセントですか?
jayarjo

10

自己時間:関数の場合、関数(インラインステートメント)内でコードを実行する時間です。 個々の機能のパフォーマンスをチェックすることは、ボトムアップ分析と呼ばれます。

合計時間:関数の場合、その関数のセルフタイムと、関数が呼び出すすべての関数のセルフタイムです。 関数のパフォーマンスとその呼び出し先をチェックするのはトップダウン分析です。

注意:関数のセルフタイムが長いからといって、関数自体が非効率的であるとは限りません。また、その関数が呼び出されている回数を確認することも重要です。

インテルによる記事

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.