【问题标题】:Profiling of a TypeScript Node.js application分析 TypeScript Node.js 应用程序
【发布时间】:2020-04-15 11:25:18
【问题描述】:

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

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

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

a() | 1024 | 20ms ….

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

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

感谢您的帮助!

【问题讨论】:

    标签: node.js typescript profiling ts-node


    【解决方案1】:

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

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

    您可以使用默认的 Webstorm 指南,但是,对于节点 12,有 a bug,您将在 CLI 中收到错误:bad option: --log-timer-events

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

    禁用 Record CPU profiling info 以避免错误(我们手动设置了 --prof 和 --logfile)并启用 允许拍摄堆快照

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

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

    【讨论】:

    • 至少--log-internal-timer-events 还在工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多