パフォーマンス機能のリファレンス

Sofia Emelianova
Sofia Emelianova

このページでは、パフォーマンスの分析に関連する Chrome DevTools の機能について、包括的なリファレンスを提供します。

Chrome DevTools を使用してページのパフォーマンスを分析する方法については、ランタイム パフォーマンスを分析するをご覧ください。

パフォーマンスを記録する

実行時間や読み込みのパフォーマンスを記録できます。

ランタイム パフォーマンスを記録する

ランタイム パフォーマンスを記録するのは、ページの読み込みではなく、実行中のパフォーマンスを分析する場合です。

  1. 分析するページに移動します。
  2. DevTools の [パフォーマンス] タブをクリックします。
  3. 録音アイコン 記録します。 をクリックします。

    記録します。

  4. ページを操作します。DevTools は、操作の結果として発生するすべてのページ アクティビティを記録します。

  5. もう一度 [録画] をクリックするか、[停止] をクリックして録画を停止します。

負荷のパフォーマンスを記録する

実行ではなく読み込み中のページのパフォーマンスを分析する場合は、読み込みパフォーマンスを記録します。

  1. 分析するページに移動します。
  2. DevTools の [パフォーマンス] パネルを開きます。
  3. [プロファイリングを開始してページを再読み込み] プロファイリングを開始してページを再読み込みします。 をクリックします。DevTools はまず about:blank に移動し、残りのスクリーンショットやトレースを消去します。ページの再読み込み中にパフォーマンス指標が記録され、読み込みが完了してから数秒後に記録が自動的に停止します。

    ページを更新します。

ほとんどのアクティビティが発生した部分が自動的に拡大されます。

ページ読み込みの記録。

この例では、[パフォーマンス] パネルにページの読み込み中のアクティビティが表示されています。

録画中にスクリーンショットをキャプチャする

[スクリーンショット] チェックボックスをオンにすると、録画中にすべてのフレームのスクリーンショットをキャプチャできます。

[スクリーンショット] チェックボックス。

スクリーンショットを操作する方法については、スクリーンショットを表示するをご覧ください。

録画中の強制ガベージ コレクション

ページを録画しているときに、[ガベージ コレクション] をクリックして、ガベージ コレクションを強制します。

ガベージを収集します。

録画設定を表示

[キャプチャ設定] キャプチャの設定。 をクリックすると、DevTools によるパフォーマンス レコーディングのキャプチャ方法に関連するその他の設定が表示されます。

[キャプチャの設定] セクション。

JavaScript のサンプルを無効にする

デフォルトでは、録画の [Main] トラックには、録画中に呼び出された JavaScript 関数の詳細なコールスタックが表示されます。これらの呼び出しスタックを無効にするには:

  1. [キャプチャ設定] 設定] をタップします。 メニューを開きます。録画設定を表示するをご覧ください。
  2. [JavaScript のサンプルを無効にする] チェックボックスをオンにします。
  3. ページの録画を作成します。

次のスクリーンショットは、JavaScript サンプルを無効にした場合と有効にした場合の違いを示しています。サンプリングが無効になっている場合、録画のメイン トラックは JavaScript 呼び出しスタックがすべて省略されるため、大幅に短くなります。

JS サンプリングが無効になっている場合の録画の例。

この例は、JS サンプルが無効になっている録画を示しています。

JS サンプリングが有効になっている場合の録画の例。

この例は、JS サンプルが有効になっている録画を示しています。

録画中にネットワークをスロットルする

録画中にネットワークをスロットリングするには:

  1. [キャプチャ設定] 設定] をタップします。 メニューを開きます。録画設定を表示するをご覧ください。
  2. [ネットワーク] を選択したスロットリング レベルに設定します。

録画中の CPU の制限

録画中に CPU をスロットリングするには:

  1. [キャプチャ設定] 設定] をタップします。 メニューを開きます。録画設定を表示するをご覧ください。
  2. [CPU] を選択したスロットリング レベルに設定します。

スロットリングは、パソコンの能力に比例したものになります。たとえば、[2x slowdown] オプションを選択すると、CPU の動作が通常の 2 倍遅くなります。モバイル デバイスのアーキテクチャはデスクトップやノートパソコンのアーキテクチャとは大きく異なるため、DevTools ではモバイル デバイスの CPU を完全にシミュレートすることはできません。

CSS セレクタの統計データを有効にする

長時間実行される Recalculate Style イベント中に CSS ルールセレクタの統計情報を表示するには:

  1. [キャプチャ設定] 設定] をタップします。 メニューを開きます。録画設定を表示するをご覧ください。
  2. [CSS セレクタの統計データを有効にする] チェックボックスをオンにします。

詳しくは、スタイルの再計算イベント中の CSS セレクタのパフォーマンスを分析する方法をご覧ください。

高度な描画パフォーマンスの計測を有効にする

ペイント計測の詳細を表示するには:

  1. [キャプチャ設定] 設定] をタップします。 メニューを開きます。録画設定を表示するをご覧ください。
  2. [Enable advanced paint instrumentation] チェックボックスをオンにします。

ペイント情報を操作する方法については、レイヤを表示するペイント プロファイラを表示するをご覧ください。

ハードウェアの並行処理をエミュレートする

プロセッサ コアの数を変えてアプリケーションのパフォーマンスをテストするには、navigator.hardwareConcurrency プロパティで報告される値を構成します。一部のアプリケーションでは、このプロパティを使用してアプリケーションの並列処理の程度を制御します(Emscripten pthread プールサイズの制御など)。

ハードウェアの同時実行をエミュレートするには:

  1. [キャプチャ設定] 設定] をタップします。 メニューを開きます。録画設定を表示するをご覧ください。
  2. [ハードウェアの同時実行] をオンにして、入力ボックスにコア数を設定します。 ハードウェアの並行処理。

DevTools では、ハードウェア同時実行エミュレーションが有効であることを示すために、[パフォーマンス] タブの横に警告アイコン 警告。 が表示されます。

デフォルト値の 10 に戻すには、[元に戻す] 元に戻す。 ボタンをクリックします。

記録を保存する

録音を保存するには、右クリックして [プロファイルを保存] を選択します。

[プロフィールを保存] をクリックします。

録音を読み込む

録画を読み込むには、右クリックして [プロファイルを読み込む] を選択します。

[プロファイルを読み込む] を選択します。

前の録音を消去する

録音を行った後、[録音を消去] 録音を消去します。 を押して、[パフォーマンス] パネルからその録音を消去します。

録音を消去します。

パフォーマンスの録画を分析する

ランタイム パフォーマンスを記録または負荷パフォーマンスを記録すると、[パフォーマンス] パネルに、直近のパフォーマンスを分析するための大量のデータが表示されます。

パフォーマンスの録画を詳しく調べるには、録画の一部を選択したり、長い炎グラフをスクロールしたり、ズームインとズームアウトを行ったり、パンくずリストを使用してズームレベルを切り替えたりできます。

録音の一部を選択する

[パフォーマンス] パネルのアクションバーと録画の上部には、[タイムラインの概要] セクションがあり、[CPU] グラフと [NET] グラフが表示されます。

アクションバーの下にあるタイムラインの概要。

録音の一部を選択するには、タイムラインの概要でクリックして長押しし、左または右にドラッグします。

キーボードを使用して一部を選択するには:

  1. メイン トラックまたはその隣接トラックをフォーカスします。
  2. WASD キーはそれぞれ、ズームイン、左移動、ズームアウト、右移動に使用します。

トラックパッドを使用して一部を選択するには:

  1. [タイムラインの概要] セクションまたはいずれかのトラック([メイン] とその隣接トラック)にカーソルを合わせます。
  2. 2 本の指で、上にスワイプして縮小、左にスワイプして左に移動、下にスワイプして拡大、右にスワイプして右に移動します。

タイムラインの概要では、複数のネストされたパンくずリストを連続して作成し、ズームレベルを上げて、ズームレベル間を自由に移動できます。

パンくずリストを作成して使用する手順は次のとおりです。

  1. [タイムラインの概要] で、録画の一部を選択します。
  2. 選択範囲にカーソルを合わせ、[N ms ] ボタンをクリックします。選択した範囲が拡大され、[タイムラインの概要] に表示されます。タイムラインの概要の上部に、パンくずリストのチェーンが作成されます。
  3. 上記の 2 つの手順を繰り返して、別のネストされたパンくずリストを作成します。選択範囲が 5 ミリ秒を超えている限り、引き続きパンくずリストをネストできます。
  4. 選択したズームレベルに移動するには、タイムラインの概要の上部にあるチェーン内の対応するパンくずリストをクリックします。

パンくずリストの子要素を削除するには、親パンくずリストを右クリックして [子パンくずリストを削除] を選択します。

長いフレームチャートをスクロールする

メイン トラックまたはその隣接トラック内の長い炎グラフをスクロールするには、クリックしたまま、目的の項目が表示されるまで任意の方向にドラッグします。

[Main] トラックのアクティビティと [Network] トラックのリクエストを検索できます。

[パフォーマンス] パネルの下部にある検索ボックスを開くには、次のキーを押します。

  • macOS: Command+F
  • Windows、Linux: Ctrl+F

検索ボックス。

この例では、下部にある検索ボックスに、E で始まるアクティビティを検索する正規表現を入力しています。

クエリに一致するアクティビティを切り替えるには:

  • [ 前へ] ボタンまたは [ 次へ] ボタンをクリックします。
  • 前を選択するには Shift+Enter キーを押します。次を選択するには Enter キーを押します。

[パフォーマンス] パネルには、検索ボックスで選択したアクティビティの上にツールチップが表示されます。

クエリ設定を変更するには:

  • [ 大文字と小文字を区別] をクリックして、クエリで大文字と小文字を区別します。
  • クエリで正規表現を使用するには、[ 正規表現] をクリックします。

検索ボックスを非表示にするには、[キャンセル] をクリックします。

トラックの順序を変更して非表示にする

パフォーマンス トレースを整理するには、トラックの順序を変更し、トラック構成モードで関連性のないトラックを非表示にします。

トラックを移動、非表示にする手順は次のとおりです。

  1. 構成モードに入るには、トラック名を右クリックして [トラックを構成] を選択します。
  2. トラックを上下に移動するには、上矢印 または下矢印 をクリックします。[] をクリックして非表示にします。
  3. 設定が完了したら、下部にある [トラックの設定を終了] をクリックして、設定モードを終了します。

このワークフローの実際の動作を確認するには、動画をご覧ください。

[パフォーマンス] パネルには、新しいトレースのトラック構成が保存されますが、次の DevTools セッションには保存されません。

メインスレッドのアクティビティを表示する

[Main] トラックを使用すると、ページのメインスレッドで発生したアクティビティを確認できます。

メイントラック。

イベントをクリックすると、[概要] タブにイベントの詳細が表示されます。[パフォーマンス] パネルに、選択したイベントの概要が青色で表示されます。

メインスレッド イベントの詳細は、[概要] タブで確認できます。

この例では、[概要] タブに get 関数呼び出しイベントの詳細が表示されています。

フレームグラフを読む

[パフォーマンス] パネルには、メインスレッドのアクティビティが炎グラフで示されます。X 軸は時間の経過に伴う録音を表します。Y 軸はコールスタックを表します。上位のイベントが下位のイベントを引き起こします。

フレーム チャート。

この例では、[Main] トラックにフレームチャートを表示しています。click イベントによって匿名関数呼び出しが発生しました。この関数は、onEndpointClick_ を呼び出し、handleClick_ を呼び出しました。

[パフォーマンス] パネルでは、スクリプトにランダムな色が割り当てられ、炎グラフが分割されて読みやすくなります。上の例では、1 つのスクリプトからの関数呼び出しは薄い青色になっています。別のスクリプトからの呼び出しは薄いピンク色で表示されます。濃い黄色はスクリプト アクティビティを表し、紫色のイベントはレンダリング アクティビティを表します。黄色と紫の濃いイベントは、すべての録画で同じです。

長いタスクもハイライト表示されます。赤い三角形で示され、50 ミリ秒を超える部分は赤色で塗りつぶされます。

長時間のタスク。

この例では、タスクに 400 ミリ秒以上かかったため、最後の 350 ミリ秒を表す部分が赤色で塗りつぶされていますが、最初の 50 ミリ秒は塗りつぶされていません。

また、[Main] トラックには、profile()profileEnd() コンソール関数で開始および停止された CPU プロファイルに関する情報が表示されます。

JavaScript 呼び出しの詳細な炎グラフを非表示にするには、JavaScript のサンプルを無効にするをご覧ください。JS サンプルが無効になっている場合は、Event (click)Function Call などの上位イベントのみが表示されます。

イベントの開始元をトラッキングする

[Main] トラックには、次の開始元と、それによって発生したイベントを結ぶ矢印を表示できます。

  • スタイルまたはレイアウトの無効化 -> [スタイルを再計算] または [レイアウト]
  • アニメーション フレームのリクエスト -> アニメーション フレームの呼び出し
  • アイドル状態のコールバックをリクエストする -> アイドル状態のコールバックを実行する
  • タイマーのインストール -> タイマーの呼び出し
  • WebSocket の作成 -> [送信...]、[WebSocket handshake の受信]、または [WebSocket の破棄]

矢印を表示するには、炎グラフで開始元またはそれが引き起こしたイベントを見つけて選択します。

リクエストからアイドル状態のコールバックの呼び出しへの矢印。

選択すると、[概要] タブに、開始元の [Initiator for] リンクと、開始元のイベントの [Initiated by] リンクが表示されます。クリックすると、対応するイベント間を移動できます。

[概要] タブの [Initiator for] リンク。

フレームグラフで関数とその子を非表示にする

[Main] スレッドのフレームグラフを整理するには、選択した関数またはその子を非表示にします。

  1. [Main] トラックで関数を右クリックし、次のいずれかのオプションを選択するか、対応するショートカットを押します。

    • 関数を非表示にする(H
    • 子を非表示にする(C
    • 繰り返しの子を非表示にする(R
    • 子をリセットする(U
    • トレースをリセット(T
    • 無視リストにスクリプトを追加する(I

    選択した関数またはその子要素を非表示にするオプションを含むコンテキスト メニュー。

    非表示の子を持つ関数名の横に、 プルダウン ボタンが表示されます。

  2. 非表示の子の数を確認するには、プルダウン ボタン にカーソルを合わせます。

    非表示の子要素の数が表示されたプルダウン ボタンのツールチップ。

  3. 非表示の子を持つ関数またはフレームグラフ全体をリセットするには、関数を選択して U キーを押すか、任意の関数を右クリックして [トレースのリセット] を選択します。

フレームグラフでスクリプトを無視する

無視リストにスクリプトを追加するには、グラフ内のスクリプトを右クリックし、[無視リストにスクリプトを追加] を選択します。

スクリプトを無視するオプションがフォーカスされているコンテキスト メニュー。

無視されたスクリプトはグラフで閉じられ、[無視リストに登録済み] としてマークされ、の [設定 > 無視リスト] の [カスタム除外] ルールに追加されます。無視されたスクリプトは、トレースまたはカスタム除外ルールから削除されるまで保存されます。

[設定] の [無視スクリプト リスト] タブ。

アクティビティを表で表示する

ページを記録した後、アクティビティを分析するためにメイン トラックにのみ依存する必要はありません。DevTools には、アクティビティを分析するための 3 つの表形式ビューも用意されています。各ビューでは、アクティビティに関する異なる視点が提供されます。

目的の項目をすばやく見つけられるように、3 つのタブの [フィルタ] バーの横に高度なフィルタリング用のボタンがあります。

  • 大文字と小文字を区別する
  • 正規表現
  • 完全一致

高度なフィルタリング用の 3 つのボタン。

[パフォーマンス] パネルの各表形式ビューには、関数呼び出しなどのアクティビティのリンクが表示されます。デバッグに役立つように、DevTools はソースファイル内の対応する関数宣言を見つけます。また、適切なソースマップが存在し、有効になっている場合、DevTools は元のファイルを自動的に検出します。

リンクをクリックして、[ソース] パネルでソースファイルを開きます。

[イベントログ] タブでソースファイルへのリンクを追加します。

ルート アクティビティ

[呼び出しツリー] タブ、[ボトムアップ] タブ、[イベントログ] セクションで説明されているルート アクティビティのコンセプトについて説明します。

ルート アクティビティは、ブラウザに処理を実行させるアクティビティです。たとえば、ページをクリックすると、ブラウザはルート アクティビティとして Event アクティビティを起動します。その Event により、ハンドラが実行される可能性があります。

[Main] トラックのフレームグラフでは、ルート アクティビティがグラフの上部に表示されます。[呼び出しツリー] タブと [イベントログ] タブでは、ルート アクティビティが最上位の項目です。

ルート アクティビティの例については、[呼び出しツリー] タブをご覧ください。

[呼び出しツリー] タブ

[呼び出しツリー] タブを使用して、最も多くの処理を発生させるルート アクティビティを確認します。

[通話ツリー] タブには、選択した録音部分のアクティビティのみが表示されます。部分を選択する方法については、録音の一部を選択するをご覧ください。

[呼び出しツリー] タブ。

この例では、[アクティビティ] 列の最上位の項目(EventPaintComposite Layers など)はルート アクティビティです。ネストはコールスタックを表します。この例では、EventFunction Call を引き起こし、Function Callbutton.addEventListener を引き起こし、button.addEventListenerb を引き起こしました。

[自己時間] は、そのアクティビティに直接費やされた時間を表します。[合計時間] には、そのアクティビティまたはその子のいずれかで費やされた時間が示されます。

[セルフタイム]、[合計時間]、[アクティビティ] をクリックして、その列で表を並べ替えます。

[フィルタ] ボックスを使用して、アクティビティ名でイベントをフィルタします。

デフォルトでは、[グループ化] メニューは [グループ化なし] に設定されています。[グループ化] メニューを使用して、さまざまな条件に基づいてアクティビティ テーブルを並べ替えます。

[最も負荷の高いスタックを表示] 最も時間がかかったスタックを表示します。 をクリックすると、[アクティビティ] テーブルの右側に別のテーブルが表示されます。アクティビティをクリックして [最も負荷の高いスタック] 表にデータを入力します。[最も時間がかかったスタック] 表には、選択したアクティビティの子のうち、実行に最も時間がかかったものが表示されます。

[ボトムアップ] タブ

[ボトムアップ] タブを使用すると、直接時間のかかるアクティビティを合計で確認できます。

[ボトムアップ] タブには、選択した録画部分のアクティビティのみが表示されます。部分を選択する方法については、録音の一部を選択するをご覧ください。

[ボトムアップ] タブ。

この例の [Main] トラックの炎グラフでは、ほとんどの時間が wait() への 3 回の呼び出しの実行に費やされていることがわかります。したがって、[ボトムアップ] タブの上位アクティビティは wait です。フレームグラフでは、wait の呼び出しの下の黄色は、実際には数千の Minor GC 呼び出しです。そのため、[Bottom-Up] タブで、次にコストの高いアクティビティが Minor GC であることがわかります。

[自己時間] 列には、そのアクティビティで直接費やされた時間の合計(すべての発生回数にわたる合計)が表示されます。

[合計時間] 列には、そのアクティビティまたはその子のいずれかで費やされた合計時間が示されます。

[イベントログ] タブ

[イベントログ] タブを使用すると、録画中に発生したアクティビティを発生順に表示できます。

[イベントログ] タブには、選択した録音部分のアクティビティのみが表示されます。部分を選択する方法については、録音の一部を選択するをご覧ください。

[イベントログ] タブ。

[開始時間] 列は、そのアクティビティが開始された時点を、録画の開始時点を基準に示します。この例で選択した項目の開始時間 1573.0 ms は、録画開始から 1,573 ms 後にアクティビティが開始されたことを意味します。

[自己時間] 列には、そのアクティビティに直接費やされた時間が示されます。

[合計時間] 列には、そのアクティビティまたはその子アクティビティで直接費やした時間が示されます。

[開始時間]、[自己時間]、[合計時間] をクリックして、その列でテーブルを並べ替えます。

[フィルタ] ボックスを使用して、アクティビティを名前でフィルタします。

[Duration] メニューを使用して、1 ms 未満または 15 ms 未満のアクティビティを除外します。デフォルトでは、[Duration] メニューは [All] に設定されています。つまり、すべてのアクティビティが表示されます。

[読み込み]、[スクリプト]、[レンダリング]、[ペイント] のチェックボックスをオフにして、これらのカテゴリからすべてのアクティビティを除外します。

タイミングを表示する

[タイミング] トラックで、次のような重要なマークを確認します。

タイミング トラックのマーカー。

マーカーを選択すると、[概要] タブにタイムスタンプ、合計時間、自己時間、detail オブジェクトなどの詳細が表示されます。performance.mark() 呼び出しと performance.measure() 呼び出しの場合、タブにはスタック トレースも表示されます。

インタラクションを表示する

[インタラクション] トラックでユーザー インタラクションを表示して、応答に関する潜在的な問題を特定します。

インタラクションを表示するには:

  1. DevTools を開きます。たとえば、このデモページで開きます。
  2. [パフォーマンス] パネルを開き、録画を開始します。
  3. 要素(コーヒー)をクリックして録画を停止します。
  4. タイムラインで [Interactions] トラックを見つけます。

インタラクション トラック。

この例では、[インタラクション] トラックに [ポインタ] インタラクションが表示されています。インタラクションには、処理時間の境界での入力と表示の遅延を示すヒゲがあります。インタラクションにカーソルを合わせると、入力遅延、処理時間、表示遅延を示すツールチップが表示されます。

[インタラクション] トラックには、200 ミリ秒を超えるインタラクションについて、[概要] タブとホバー時のツールチップに [Interaction to Next Paint(INP)] の警告が表示されます。

INP の警告。

[インタラクション] トラックでは、200 ミリ秒を超えるインタラクションが右上に赤い三角形でマークされます。

GPU アクティビティを表示する

[GPU] セクションで GPU アクティビティを表示します。

GPU セクション。

ラスター アクティビティを表示する

[スレッドプール] セクションでラスター アクティビティを確認します。

[スレッドプール] セクションのラスター アクティビティ。

フレーム/秒(FPS)を分析する

DevTools には、フレームレートを分析するためのさまざまな方法が用意されています。

[Frames] セクション

[Frames] セクションには、特定のフレームにかかる時間が正確に示されます。

フレームにカーソルを合わせると、フレームの詳細を示すツールチップが表示されます。

フレームにカーソルを合わせる。

この例では、フレームにカーソルを合わせるとツールチップが表示されます。

[フレーム] セクションには、次の 4 種類のフレームが表示されます。

  1. アイドル状態のフレーム(白)。変更なし
  2. フレーム(緑): 想定どおりに時間内にレンダリングされる。
  3. 部分的に表示されたフレーム(黄色で、点線のパターンがまばらに表示されている)。Chrome は、少なくとも一部の視覚的な更新を時間内にレンダリングするために最善を尽くしました。たとえば、レンダラ プロセスのメインスレッドの処理(キャンバス アニメーション)が遅れているが、コンポジタ スレッド(スクロール)は間に合っている場合などです。
  4. フレーム落ち(赤色の太い実線パターン)。Chrome がフレームを妥当な時間内にレンダリングできない。

部分的に表示されたフレームにカーソルを合わせている様子。

この例では、部分的に表示されたフレームにカーソルを合わせるとツールチップが表示されます。

フレームをクリックすると、[概要] タブにフレームの詳細が表示されます。DevTools では、選択したフレームの輪郭が青色で表示されます。

[概要] タブでフレームを表示している様子。

ネットワーク リクエストを表示する

[ネットワーク] セクションを開き、パフォーマンス レコーディング中に発生したネットワーク リクエストのウォーターフォールを表示します。

[ネットワーク] トラックで選択したリクエスト。[概要] タブが開いています。

[ネットワーク] トラック名の横には、リクエスト タイプが色分けされた凡例があります。

レンダリングをブロックするリクエストには、右上に赤い三角形が表示されます。

リクエストにカーソルを合わせると、次の情報が表示されるツールチップが表示されます。

  • リクエストの URL と、その実行に要した合計時間。
  • 優先度または優先度の変更(Medium -> High など)。
  • リクエストが Render blocking かどうか。
  • リクエストのタイミングの内訳(後述)。

リクエストをクリックすると、ネットワーク トラックに、イニシエータからリクエストへの矢印が描画されます。

また、[パフォーマンス] パネルの [概要] タブには、リクエストに関する詳細情報が表示されます。表示される情報には、初期優先度や(最終的な)優先度のフィールドなどがありますが、これらに限定されません。値が異なる場合は、録画中にリクエストの取得優先度が変更されています。詳細については、Fetch Priority API によるリソース読み込みの最適化をご覧ください。

[概要] タブには、リクエストのタイミングの詳細も表示されます。

[概要] タブのリクエスト時間の内訳。

www.google.com のリクエストは、左側の線(|–)、中央の暗い部分と明るい部分のあるバー、右側の線(–|)で表されます。

タイミングの詳細は [ネットワーク] タブで確認できます。[ネットワーク] トラック内のリクエストまたは [概要] タブ内のその URL を右クリックし、[ネットワーク パネルに表示] をクリックします。DevTools の [ネットワーク] パネルに移動し、対応するリクエストを選択します。[タイミング] タブを開きます。

ネットワーク パネルのリクエストの [タイミング] タブ。

これらの 2 つの内訳は次のように対応しています。

  • 左側の行(|–)は、イベントの Connection start グループまでを含みます。つまり、Request Sent より前の部分です。
  • バーの明るい部分は Request sentWaiting for server response です。
  • バーの暗い部分は Content download です。
  • 右側の線(–|)は、メインスレッドの待機に費やされた時間です。[ネットワーク] > [タイミング] タブには表示されません。

メモリ指標を表示する

[メモリ] チェックボックスをオンにすると、最後の記録のメモリ指標が表示されます。

[メモリ] チェックボックス。

DevTools の [Summary] タブの上に、新しい [Memory] グラフが表示されます。[NET] グラフの下に、[HEAP] という新しいグラフもあります。[HEAP] グラフには、[メモリ] グラフの [JS ヒープ] の線と同じ情報が表示されます。

メモリ指標。

この例では、[Summary] タブの上にメモリ指標が表示されています。

グラフ上の色付きの線は、グラフの上部にある色付きのチェックボックスに対応しています。チェックボックスをオフにすると、そのカテゴリがグラフから非表示になります。

グラフには、選択した録音の領域のみが表示されます。上の例の [メモリ] グラフには、録画開始から 1,000 ミリ秒あたりまでのメモリ使用量のみが表示されています。

録画の一部の時間を確認する

[ネットワーク] や [メイン] などのセクションを分析するときに、特定のイベントに要した時間をより正確に推定しなければならない場合があります。Shift キーを押しながら、左または右にドラッグして、録画の一部を選択します。選択した部分の下部に、その部分にかかった時間が DevTools に表示されます。

録画の一部の時間を確認する。

この例では、選択した部分の下部にある 488.53ms タイムスタンプが、その部分に要した時間を示しています。

スクリーンショットを表示する

スクリーンショットを有効にする方法については、録画中にスクリーンショットをキャプチャするをご覧ください。

[タイムラインの概要] にカーソルを合わせると、記録中のその時点でのページのスクリーンショットが表示されます。[タイムラインの概要] セクションには、[CPU]、[FPS]、[NET] のグラフが表示されます。

スクリーンショットを表示している。

[フレーム] セクションでフレームをクリックして、スクリーンショットを確認することもできます。DevTools の [概要] タブに、スクリーンショットの小さいバージョンが表示されます。

[概要] タブでスクリーンショットを表示している様子。

この例は、[フレーム] セクションで 195.5ms フレームをクリックしたとき、[概要] タブに表示される 195.5ms フレームのスクリーンショットです。

[概要] タブのサムネイルをクリックすると、スクリーンショットが拡大表示されます。

[概要] タブからスクリーンショットを拡大している様子。

この例は、[概要] タブでサムネイルをクリックした後の拡大したスクリーンショットです。

レイヤ情報を表示する

フレームに関する高度なレイヤ情報を表示するには:

  1. 高度な描画パフォーマンスの計測を有効にする
  2. [フレーム] セクションでフレームを選択します。DevTools では、レイヤに関する情報が新しい [レイヤ] タブ([イベントログ] タブの横)に表示されます。

[レイヤ] タブ。

レイヤにカーソルを合わせると、図でハイライト表示されます。

レイヤのハイライト表示。

この例では、レイヤ #39 にカーソルを合わせるとハイライト表示されます。

図を移動するには:

  • [パンモード] パンモード。 をクリックして、X 軸と Y 軸に沿って移動します。
  • [Rotate Mode] 回転モード。 をクリックして、Z 軸に沿って回転します。
  • [変換をリセット] 変換をリセットします。 をクリックして、図を元の位置にリセットします。

レイヤ分析の使用例:

ペイント プロファイラを表示する

ペイント イベントの詳細情報を表示するには:

  1. 高度な描画パフォーマンスの計測を有効にする
  2. [Main] トラックで [Paint] イベントを選択します。

[ペイント プロファイラ] タブ。

[レンダリング] タブでレンダリングのパフォーマンスを分析する

[レンダリング] タブの機能を使用して、ページのレンダリング パフォーマンスを可視化します。

[レンダリング] タブを開きます

FPS メーターを使用してフレーム/秒をリアルタイムで表示する

フレーム レンダリングの統計情報は、ビューポートの右上に表示されるオーバーレイです。ページの実行中に FPS のリアルタイム推定値を提供します。

フレーム レンダリング統計情報をご覧ください。

ペイント点滅でペイント イベントをリアルタイムで表示する

ペイント フラッシュを使用すると、ページ上のすべてのペイント イベントをリアルタイムで確認できます。

ペイントの点滅をご覧ください。

レイヤの枠線でレイヤのオーバーレイを表示する

[レイヤ境界] を使用すると、ページの上にレイヤ境界とタイルのオーバーレイを表示できます。

レイヤの境界をご覧ください。

スクロールのパフォーマンスの問題をリアルタイムで検出する

[スクロールのパフォーマンスの問題] を使用して、スクロールに関連するイベント リスナーがあり、ページのパフォーマンスに悪影響を及ぼす可能性があるページの要素を特定します。DevTools では、問題の可能性がある要素が青緑色で囲まれます。

スクロールのパフォーマンスの問題をご覧ください。