Visual Studio Codeを使用してNodeJSアプリケーションのプロファイルを作成できますか?



Can I Profile Nodejs Applications Using Visual Studio Code



解決:

Chromeの開発ツールで利用できるプロファイリングやヒープダンプなどを開始するために私が知っているプラ​​グイン/サポートはありません。ただし、VS Codeデバッガーは、開発ツールデバッガーと一緒に機能します。

VS Codeから開始し、デバッグを開始します。次に、Chrome / Chromiumブラウザーの任意のタブから開発ツールを開き、node.jsデバッグプロセスが実行されていることを示す緑色のアイコンを探します(node --inspectを介して手動で実行):



ここに画像の説明を入力してください

この緑色のアイコンをクリックすると、node.jsプロセスをデバッグするためのブラウザー開発ツール機能の多くが表示されます。記憶とプロファイルタブ。




Visual Studio Code 1.45(2020年4月)は、プロファイリングを含むJavascriptデバッグ機能を統合しているため、役立つはずです。

新しいJavaScriptデバッガー

今月は、新しいJavaScriptデバッガーの進歩を続けました。
これはデフォルトでInsiderにインストールされ、VS CodeStableのMarketplaceからインストールできます。

を有効にすることで、既存の起動構成で使用を開始できます。 debug.javascript.usePreview 設定。



今月追加されたいくつかの新機能は次のとおりです。

プロファイリングサポート

コールスタックビューの新しい[プロファイル]ボタンをクリックするか、を使用して、Node.jsまたはブラウザアプリケーションからCPUプロファイルをキャプチャできます。 デバッグ:パフォーマンスプロファイルを取得する 指図。

実行したら、プロファイルを実行する期間を選択できます。プロファイルを停止するまで、一定期間、または別のブレークポイントに到達するまでです。

プロファイルが終了すると、ワークスペースフォルダーに保存され、VSCodeで視覚化されます。
プロファイルを開くと、機能レベルおよび特定の「ホット」ラインのパフォーマンス情報を含むコードレンズがファイルに追加されます。
他の多くのツールでキャプチャされたプロファイルとは異なり、記録されたプロファイルはソースマップに対応しています。

JSデバッグプロファイリング


cheesusは、プロファイラー出力の行番号に問題があるコメントで言及しています。
したがって、microsoft / vscode-js-デバッグの問題559:

これは、その場所がコンパイルされたコードにのみ存在する関数内にあるためです。
実際には、元のファイルにソースマップを戻そうとしますが、その場所で使用するマッピングはありません。

https://camo.githubusercontent.com/24b6e6f18cade2b5c8a621ded5241dc752896d00/68747470733a2f2f6d656d65732e706565742e696f2f696d672f32302d30372d38376265353862372d34633630265353862372d3463363265353862372d34

ターゲットをに変更した場合es6以降-InternetExplorerまたはNodeバージョンをターゲットにしていない限り、これは最近実行できます<= 4 -- TS does not need to generate this stuff and line numbers work.
コードもより高速に実行されます。これが最新のマッピングです

このデバッガーは、ノード8以降のみをサポートします。
このバグは、デバッガー自体がサポートするものより古いバージョンのNode用にコンパイルされたコードでインプレース変換を使用するときに、古いJavaScriptバージョンをターゲットにする場合にのみ存在するという事実と、これを修正するための複雑さのために、この問題を閉じます。範囲外として。


はい、多くの方法があります。

に行くpackage.jsonとセット:

{\その他の情報 'スクリプト':{'デバッグ': 'ノード--inspect-brk'}}

その後、useコマンドを実行します。npm run debug yourFile.js

または、1行で実行できますnode --inspect-brk yourFile.js

この後:クロームを開いて行きますchrome:// inspect

数秒待って、リモートターゲットが表示されたら、検査する

ここに画像の説明を入力してください

あなたが使用することができますdebbuger;コード内でブレークポイントを作成します。

詳細については、ドキュメントを参照してください。

別の方法として、プラグインを使用できますVS code'Debugger for Chrome 'を実行し、ガイドに従ってください。