分析 TypeScript Node.js 应用程序

abd*_*_05 7 profiling node.js typescript ts-node

我正在寻找一种工具来对 TypeScript Node.js 应用程序进行分析,而无需修改整个代码源。

我的意思是分析:使用某些特定工具启动应用程序,其输出结果如下:

方法 | 消耗内存| 消耗的时间

() | 1024 | 20 毫秒……

我做了一些互联网研究,发现了这个:https : //github.com/screepers/screeps-typescript-profiler

但是使用它,我不得不编辑整个代码(通过添加@Profiler 装饰器),我正在寻找一些可以自动检测方法的东西。

谢谢你的帮助!

mil*_*cek 5

您可以使用WebStorm IDE进行 V8 CPU 和内存分析。这是一个指南:https : //www.jetbrains.com/help/webstorm/v8-cpu-and-memory-profiling.html

无需更改代码的任何部分。您可以运行V8 Profiling,获取堆快照并查看有用的快照差异

您可以使用默认的 Webstorm 指南,但是,对于 Node 12,存在一个错误,您将在 CLI 中收到错误:bad option: --log-timer-events

对于带有 Express 和 Socket.io 服务器的 Typescript 项目,我将它与ts-node-dev工具一起使用,该工具只是将所有未知参数传递ts-nodenode. 因此,您可以在使用ts-node. 手动设置--prof--logfile=logfile-profiling.log参数。这是我的示例配置:

运行配置

禁用 Record CPU profiling info以避免错误(我们手动设置 --prof 和 --logfile )并启用 Allowtaking take heap snapshots

V8 分析配置

然后为此配置运行调试。要拍摄新的堆快照,请在调试应用程序时单击左侧面板的底部图标:

底部的堆快照图标

堆快照和 CPU 分析日志将存储在您的项目文件夹中,您可以从菜单工具 > V8 分析 > 分析 V8 堆快照以及 CPU 日志分析它们分析 V8 分析日志。CPU 分析日志按时间间隔创建,因此您可以运行应用程序并同时打开新日志。