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

Nancy Li
Nancy Li
Dale St. Marthe
Dale St. Marthe

[Performance] パネルを使用して、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 アクションバーの緑色のノードボタンをクリックします。
    • アドレスバーに「chrome://inspect」と入力して、次のいずれかをクリックします。

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

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

CPU のプロファイリングを行う

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

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

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

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

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

    タイムラインの概要。

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

    [ボトムアップ] タブ。

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

    [Call Tree] タブ。

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

    [イベントログ] タブ。

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

      deno --inspect file-name.js

      次に、Node 用の DevTools を開きます

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