我尝试为导致某些问题的节点应用创建火焰图,虽然我能够使用Xcode对其进行剖析并获取其CPU跟踪,但节点perf
当我不清楚地退出时,地图不会转储到/tmp/perf-30001.map
(不幸的是,我遇到的问题是不允许我干净地退出Node应用程序)。我正在使用--perf-basic-prof
标志运行应用。
有没有办法让Node连续或在任何退出时转储内存映射?
答案 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');
});