TypeScript Node.jsアプリケーションのプロファイリングを行うためのツールを探しています。これは、コードソース全体を変更することなく行えます。
プロファイリングとは、次のような結果を出力する特定のツールを使用してアプリケーションを起動することです。
メソッド|消費されたメモリ|消費時間
a()| 1024 | 20ms…。
私はいくつかのインターネット調査を行い、これを見つけました: https://github.com/screepers/screeps-TypeScript-profiler
しかし、それを使用して、(@ Profilerデコレーターを追加することにより)コード全体を編集する必要があり、メソッドを自動的に検出するための何かを探しています。
ご協力いただきありがとうございます!
V8 CPUおよびメモリプロファイリングには WebStorm IDE を使用できます。ガイドは次のとおりです: https:// www.jetbrains.com/help/webstorm/v8-cpu-and-memory-profiling.html 。
コードの一部を変更する必要はありません。 V8プロファイリングを実行し、ヒープスナップショットを取得して、有用なビューsnapshot diffs。
デフォルトのWebstormガイドを使用できますが、Node 12の場合は バグ があり、CLIでエラーが発生します:bad option: --log-timer-events
。
ExpressおよびSocket.ioサーバーを使用するTypeScriptプロジェクトの場合、 ts-node-dev ツールを使用して、不明なすべてのパラメーターをts-node
に渡し、次にnode
に渡します。したがって、ts-node
を使用する場合も同じアプローチを適用できます。 --prof
および--logfile=logfile-profiling.log
引数を手動で設定します。これが私の設定例です:
バグを回避するために(--prof =-logfileを手動で設定します)記録CPUプロファイリング情報を無効にし、有効にしますヒープスナップショットの取得を許可します。
次に、この構成のデバッグを実行します。アプリのデバッグ中に新しいヒープスナップショットを取得するには、左側のパネルの下部にあるアイコンをクリックします。
ヒープスナップショットとCPUプロファイリングログはプロジェクトフォルダーに保存され、メニュー[ツール]> [V8プロファイリング]> [V8ヒープスナップショットの分析]から分析できます。 CPUログの場合:V8プロファイリングログを分析します。 CPUプロファイリングログは間隔を置いて作成されるため、アプリを実行して新しいログを同時に開くことができます。