我安装了heapdump nodejs模块来转储堆对象。
使用此代码(nodejs6.9.1),
'use strict'
const heapdump = require('heapdump')
heapdump.writeSnapshot()
const obj = {
test: 2,
foo: 6.4,
wow: true,
a: { }
}
heapdump.writeSnapshot()
console.log(obj) // <-- make sure obj lives until here 我已经打印了两个堆转储。
将它们都导入到chrome dev工具中并切换到比较模式,我希望至少能看到obj对象(以及其他一些值)。
相反,我只看到这些值:
(compiled code)
(array)
(system)
(concatenated
(string)为什么?
编辑:将代码移动到setTimeout中,转储差异正确地显示两个对象
setTimeout(() => {
heapdump.writeSnapshot()
const obj = {
test: 2,
foo: 6.4,
wow: true,
a: { }
}
heapdump.writeSnapshot()
console.log(obj)
}, 1000)注意: test和foo属性不在转储差异中。
发布于 2017-01-29 19:17:47
此代码说明了我对此问题的注释
heapdump.writeSnapshot()
const obj = {
test: 2,
foo: 6.4,
wow: true,
a: { }
}
heapdump.writeSnapshot(function(err, filename) { // this is the callback
console.log(obj);
})https://stackoverflow.com/questions/41797463
复制相似问题