My node.js projekt cierpi wyciek pamięci, już ustawić zmienne null w zamknięciu, to znaczy, wiem kodu:zidentyfikować wyciek pamięci zamknięcia z memwatch-węzła
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
});
spowoduje wycieki pamięci, więc dodałem kod, który ustawił te zmienne na wartość null;
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
a = null;
b = null;
c = null;
});
Ale nadal mam przecieków, więc próbuję użyć memwatch-node
aby dowiedzieć się, co się dzieje z mojego kodu.
A wynik pokazuje, że closure
powoduje wyciek, ale nie jest wystarczająco określony, aby celować.
Mam JSON jak ten
{ what: 'Closure',
'+': 12521,
size: '520.52 kb',
'-': 5118,
size_bytes: 533016 },
I zastanawiam się, czy mogę uzyskać więcej szczegółowych informacji, o których zamknięcie jest nieszczelne.
Przypisałem nazwę dla wszystkich zamknięć, ale nadal nie działa.
To literalny obiekt. Sam w sobie nie ma nic wspólnego z "zamknięciem", poza tym, że jedna z jego właściwości jest ustawiona na łańcuch "Zamknięcie", który równie dobrze mógłby brzmieć "1982 Datsun Cherry". –
Więc jaki rodzaj obiektu by to zrobił? Sam nie ustalam "zamknięcia". – bxshi
Tak, jestem zawstydzony, mogę lepiej zobaczyć, o co teraz pytasz. Byłem w dokumentacji memwatch, ale nie mogę znaleźć dowodu sekcji 'what: 'Closure'' w raporcie diff. [This] (https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/) wskazuje, że zgłoszono wycieki zamknięcia, ale nie w ten sposób. To trochę zagmatwane. –