连续或在非干净退出时创建节点转储性能映射

时间:2015-05-29 20:33:55

标签: node.js performance

我尝试为导致某些问题的节点应用创建火焰图,虽然我能够使用Xcode对其进行剖析并获取其CPU跟踪,但节点perf当我不清楚地退出时,地图不会转储到/tmp/perf-30001.map(不幸的是,我遇到的问题是不允许我干净地退出Node应用程序)。我正在使用--perf-basic-prof标志运行应用。

有没有办法让Node连续或在任何退出时转储内存映射?

1 个答案:

答案 0 :(得分:0)

地图文件是连续写入的,请务必至少使用节点0.12并禁用kptr_restrict sudo sysctl kernel/kptr_restrict=0

如果你想在退出时进行内存转储,可以稍后在v8调试器中打开:

var heapdump = require('heapdump');
process.on('exit', function() {
  heapdump.writeSnapshot(Date.now() + '.heapsnapshot');
});