サーチ…


前書き

この記事の目的は、nodejsアプリケーションのプロファイリングを開始し、この結果を理解してバグやメモリリークを捕捉する方法です。アプリケーションを実行するnodejsは、多くの点でブラウザ上で動作するWebサイトに似たv8エンジンプロセスに過ぎず、基本的にノードアプリケーションのWebサイトプロセスに関連するすべてのメトリックを取得できます。

私の好みのツールは、chrome devtoolsまたはchrome inspectorとノードインスペクタを組み合わせたものです。

備考

ノードインスペクタはノードbebugプロセスにアタッチできません。この場合、devtoolsでデバッグブレークポイントを取得できなくなります。devtoolsタブを複数回リフレッシュして、デバッグモードになっているかどうかを数秒待ってください。

再起動しない場合は、コマンドラインからノードインスペクタを再起動します。

単純なノードアプリケーションのプロファイリング

ステップ1 :マシン上にnpmを使用してノードインスペクタパッケージをインストールする

$ npm install -g node-inspector

ステップ2 :ノードインスペクタサーバを起動する

$ node-inspector

ステップ3 :ノードアプリケーションのデバッグを開始する

$ node --debug-brk your/short/node/script.js

ステップ4 :Chromeブラウザでhttp://127.0.0.1:8080/?port=5858を開きます 。また、左パネルにあるnodejsアプリケーションのソースコードとchrom-devツールのインタフェースが表示されます。また、アプリケーションのデバッグ中にデバッグブレークオプションを使用したため、コードの実行はコードの最初の行で停止します。

ここに画像の説明を入力

ステップ5 :これは、プロファイリングタブに切り替えてアプリケーションのプロファイリングを開始する簡単な部分です。特定のメソッドやフローのプロファイルを取得したい場合は、そのコードが実行される直前にコード実行がブレークポイントになっていることを確認してください。

ここに画像の説明を入力

ステップ6 :CPUプロファイルまたはヒープダンプ/スナップショットまたはヒープ割り当てを記録したら、結果を同じウィンドウで表示したり、ローカルドライブに保存して後で分析したり、他のプロファイルと比較することができます。

この記事を使用して、プロファイルを読む方法を知ることができます:



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow