2017-01-22 1 views
0

Я установил модуль nodejs heapdump, чтобы сбросить кучный объект.Объект не найден в сравнении с heapdump

Используя этот код (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 

Я распечатаны две кучи отвалов.

Импортируйте оба из них в инструменты для обработки хрома и переключитесь в режим сравнения, я аспект, чтобы увидеть объект obj по крайней мере (с некоторыми другими значениями).

Вместо этого, я вижу только те значения:

(compiled code) 
(array) 
(system) 
(concatenated 
(string) 

Почему?

EDIT: перемещение кода в SetTimeout, свалка дифф показывает два объекта правильно

setTimeout(() => { 
    heapdump.writeSnapshot() 
    const obj = { 
    test: 2, 
    foo: 6.4, 
    wow: true, 
    a: { } 
    } 
    heapdump.writeSnapshot() 
    console.log(obj) 
}, 1000) 

NB: тест и Foo свойство является не самосвал дифф.

+0

вы должны использовать действительный ** обратный вызов ** как документы предложил: [узел headump] (https://github.com/bnoordhuis/node- heapdump) .. автор действительно осознает, что ** «заминка» ** эффект – ymz

ответ

0

Этот код иллюстрирует мой комментарий по этому вопросу

heapdump.writeSnapshot() 
const obj = { 
test: 2, 
foo: 6.4, 
wow: true, 
a: { } 
} 
heapdump.writeSnapshot(function(err, filename) { // this is the callback 
console.log(obj); 
})