node.js - 从 Node.js 分析核心转储的工具

标签 node.js heap-memory instrumentation coredump

如果我使用 gcore 对 Node.js 进程进行代码转储,那么分析它的最佳工具是什么?

灵感来自: Tool for analyzing java core dump

在我的具体情况下,我有兴趣调查一些内存泄漏,所以我真的很想得到一些堆分析。通用工具甚至仪器包和技术也受到欢迎。我发现 Node.js 非常有趣,但是运行时分析工具还没有。

最佳答案

为了调查崩溃,我发现 node-segfault-handler成为无价之宝。这是我编写的一个模块,用于在带有信号的硬崩溃事件中获取 native 代码堆栈跟踪 - 例如,导致 SIGSEGV 的 NULL 的 deref

为了调查内存/分配问题,以下是我迄今为止收集的一些数据:

1) Blog post by Dave Patheco - 作者谈到使用 MDB 插件来获取 JS 堆栈等。遗憾的是,据我所知,该插件的源代码从未发布(也没有任何二进制形式)。

2) Postmortem Debugging in Dynamic Environments - ACM 队列文章也由 Dave Patheco 撰写(链接自博客文章)。虽然它有助于很好地阅读背景资料,但这篇文章中并没有很多具体的工具和技术。

3) node-panic - 一个纯 JS 工具,用于在断言失败类型崩溃的情况下转储状态。无助于调试源自 native 代码错误(SIGSEGV 等)的崩溃

4) Joyent: Debugging Production Systems - Bryan Cantrill 谈论他推荐的工具和技术(感谢 crickeys)。

关于node.js - 从 Node.js 分析核心转储的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704331/

相关文章:

java - 加载检测类时避免注入(inject)

html - 在单独的页面上显示帖子信息的困难

node.js - (node.js) 如何在 JSON 文件中使用环境变量

java - PermGen和Heap,区别及其意义

c++ - vector<int*>.push_back() 正在覆盖 front() 指向的值

java - 使用 javaagent 运行时获取 "java.lang.NoClassDefFoundError"

node.js - Mongoose :Query#exec 的目的是什么

node.js - $group by 之后的动态键

c - free() 上的段错误

java - 在加载之前检测编译代码的缺点