Mein Node.js Projekt leidet Speicher undicht identifizieren, habe ich bereits gesetzt Variablen auf null in Schließung, ich meine, ich Code wie folgt wissen:Speicherverlust des Verschlusses mit memwatch-Knoten
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
});
verursacht Speicherlecks, also füge ich Code hinzu, um diese Variablen auf null zu setzen;
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
a = null;
b = null;
c = null;
});
Aber ich habe immer noch undicht, so versuche ich memwatch-node
zu verwenden, um herauszufinden, was mit meinem Code falsch ist.
Und das Ergebnis zeigt, dass closure
verursacht das Leck, aber nicht ausreichend angegeben.
Ich habe die JSON wie diese
{ what: 'Closure',
'+': 12521,
size: '520.52 kb',
'-': 5118,
size_bytes: 533016 },
bekam Und ich frage mich, ob ich mehr spezifische Details bekommen könnte, um die undicht Schließung.
Ich habe Namen für alle Schließungen vergeben, aber immer noch nicht funktionieren.
Das ist ein Objekt Literal. An sich hat es nichts mit "closure" zu tun, abgesehen davon, dass eine seiner Eigenschaften auf die Zeichenfolge "Closure" gesetzt ist, was auch "1982 Datsun Cherry" sein könnte. –
Also welche Art von Objekt würde das tun? Ich setze keine "Schließung" von mir selbst. – bxshi
Ja, mir ist peinlich, ich kann besser sehen, worum es bei deiner Frage geht. Ich war in der Memwatch-Dokumentation, kann aber keine Beweise für einen 'Was: 'Closure'-Abschnitt in einem Diff-Bericht finden. [Dies] (https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/) zeigt an, dass Verschlusslecks gemeldet werden, aber nicht auf diese Weise. Es ist etwas verwirrend. –