[パフォーマンス] パネルで Node.js のパフォーマンスをプロファイリングする

[Performance] パネルを使用して、Node.js アプリケーションと Deno アプリケーションのパフォーマンスをプロファイリングします。

CPU プロファイルとは

CPU プロファイルは、一定期間における CPU の使用状況を示すレポートです。これにより、CPU 時間を最も多く使用したプログラム、実行中のプロセス、各状態に費やされた時間などを確認できます。CPU プロファイルを使用すると、パフォーマンスのボトルネックを特定し、CPU リソースの使用率を最適化できます。

Node で DevTools を開く

  1. コマンドラインで次のコマンドを実行します。

    Node.js

    node --inspect file-name.js
    

    ディーノ

    deno --inspect file-name.js
    
  2. 次のいずれかの方法で Node 用 DevTools に接続します。

    • DevTools を開き、上部の DevTools アクションバーにある緑色の [Node] ボタンをクリックします。
    • アドレスバーに「chrome://inspect」と入力し、次のいずれかをクリックします。

      • [デバイス] でノード専用の DevTools を開きます
      • プロファイリングするターゲットの下で検査します。

    Node 用 DevTools を開くすべての方法。

CPU のプロファイリング

CPU をプロファイリングするには、[Performance] パネルを開き、[radio_button_checked Record] ボタンを 2 回クリックして、プロファイリングの開始と終了を行います。

[Record] ボタンと VM インスタンス セレクタ。

プロファイリング結果を分析する

録画を停止すると、[パフォーマンス] パネルでは、録画に関するデータが「プロファイル」に整理されて表示されます。プロファイリング データを分析するには、次のタブを使用します。

  • タイムラインの概要。上部のアクティビティ バーの下にあります。タイムラインに CPU と正味のアクティビティ グラフを表示します。パフォーマンスのボトルネックを特定するために使用します。

    タイムラインの概要。

  • ボトムアップ: このタブでは、記録中の選択した部分を調べ、個々のアクティビティにかかった時間の集計を確認できます。

    [ボトムアップ] タブ。

  • Call Tree: このタブには、録音の選択部分のルート アクティビティが表示されます。また、ルート アクティビティには、コールスタックがネストされています。このタブを使用して、最も多くの作業を引き起こしているアクティビティを特定します。

    [Call Tree] タブ。

  • Event Log: このタブには、選択した録画部分のアクティビティが表示された順に一覧表示されます。

    [Event Log] タブ。

console.profile() コマンドを使用したプロファイル

DevTools では、console.profile() コマンドを使用して JavaScript CPU パフォーマンスをプロファイリングできます。このコマンドをコードに追加してからファイルを実行するか、コードをコピーしてコンソールに貼り付けます。[パフォーマンス] パネルに結果が表示されます。

このコマンドを使用する手順は次のとおりです。

  1. コードは console.profile()console.profileEnd() で囲みます。次に例を示します。

    console.profile( profile ${i} );
    // Code to be profiled
    doSomething();
    console.profileEnd();
    
  2. 次のいずれかの方法でコードを実行します。

    • コンソールを使用している場合は、Node 用 DevTools を開きコンソールにコードを貼り付けて Enter キーを押します。

    • コマンドラインで次のコマンドを実行します。

      Node.js

      node --inspect file-name.js
      

      ディーノ

      deno --inspect file-name.js
      

      次に、Node 用 DevTools を開きます

プロファイルが完成すると、結果が自動的に [パフォーマンス] パネルに表示されます。