sql >> Database teknologi >  >> NoSQL >> MongoDB

Sletning af store Javascript-objekter, når processen løber tør for hukommelse

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 artikeldelete 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/ .



  1. hvordan tæller man af indlejret mongodb php?

  2. ved at bruge module.exports på en usædvanlig måde

  3. MongoDB:fjern unik begrænsning

  4. Problem med at deserialisere redis-cache til objekter i Spring-boot