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

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

CPU プロファイルとは

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

Node 用 DevTools を開く

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

    Node.js

    node --inspect file-name.js

    Deno

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

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

      • [デバイス] の [Open dedicated DevTools for Node]。
      • プロファイリングするターゲットの [Inspect]。

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

CPU をプロファイリングする

CPU をプロファイリングするには、[パフォーマンス] パネルを開き、 [記録] ボタンを 2 回クリックして、プロファイリングを開始して終了します。

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

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

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

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

    タイムラインの概要。

  • [**ボトムアップ**]: このタブを使用して、記録の選択した部分を検査し、個々のアクティビティに費やされた集計時間を確認します。

    [ボトムアップ] タブ。

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

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

  • [イベントログ]: このタブには、記録の選択した部分のアクティビティが発生順に表示されます。

    [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. 次のいずれかの方法でコードを実行します。

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

    • コマンドラインで以下を実行します。

      Node.js

      node --inspect file-name.js

      Deno

      deno --inspect file-name.js

      次に、Node 用 DevTools を開きます

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