MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Изтриване на големи Javascript обекти, когато процесът изчерпва паметта

delete в javascript НЕ се използва за изтриване на променливи или освобождаване на памет. Използва се САМО за премахване на свойство от обект. Може да намерите тази статия на delete оператор добро четене.

Можете да премахнете препратка към данните, съхранявани в променлива, като зададете променливата на нещо като null . Ако няма други препратки към тези данни, това ще ги направи допустими за събиране на боклук. Ако има други препратки към този обект, той няма да бъде изчистен от паметта, докато няма повече препратки към него (напр. няма начин вашият код да стигне до него).

Що се отнася до това, което причинява натрупването на памет, има редица възможности и ние не можем да видим достатъчно от вашия код, за да знаем какви препратки могат да бъдат задържани, които биха попречили на GC да освободи неща.

Ако това е единичен, дълго работещ процес без прекъсвания в изпълнението, може също да се наложи да стартирате ръчно събирача на отпадъци, за да се уверите, че получава шанс да изчисти нещата, които сте освободили.

Ето няколко статии за проследяване на използването на вашата памет в node.js:http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/ и https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/ .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb не може да се свърже с localhost, но може да се свърже с IP адреса на localhost

  2. Кеширане на MongoDB връзки в Django

  3. Как да търсите в масив от масив от обекти в mongodb

  4. Защо MongoDB не използва Index Intersection?

  5. Djongo ArrayField 'Item' не може да се абонира