delete
i javascript bruges IKKE til at slette variabler eller frigøre hukommelse. Det bruges KUN til at fjerne en egenskab fra et objekt. Du kan muligvis finde denne artikel
på delete
operatør en god læsning.
Du kan fjerne en reference til dataene i en variabel ved at sætte variablen til noget som null
. Hvis der ikke er andre referencer til disse data, vil det gøre dem berettiget til affaldsindsamling. Hvis der er andre referencer til det objekt, vil det ikke blive ryddet fra hukommelsen, før der ikke er flere referencer til det (f.eks. ingen måde for din kode at komme til det).
Med hensyn til, hvad der forårsager hukommelsesophobningen, er der en række muligheder, og vi kan ikke rigtig se nok af din kode til at vide, hvilke referencer der kunne holdes på, som ville forhindre GC'en i at frigøre ting.
Hvis dette er en enkelt, langvarig proces uden pauser i udførelsen, skal du muligvis også køre skraldeopsamleren manuelt for at sikre, at den får en chance for at rydde op i ting, du har frigivet.
Her er et par artikler om at spore dit hukommelsesforbrug i node.js:http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/ og https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/ .