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

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

[パフォーマンス] パネルを使用して、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 のアクティビティのグラフがタイムラインに表示されます。これを使用して、パフォーマンスのボトルネックを特定します。

    タイムラインの概要。

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

    [ボトムアップ] タブ。

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

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

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

    [イベントログ] タブ。

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 を開きます

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