MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Usuwanie dużych obiektów JavaScript, gdy procesowi zabraknie pamięci

delete w javascript NIE służy do usuwania zmiennych lub zwalniania pamięci. Służy TYLKO do usunięcia właściwości z obiektu. Możesz znaleźć ten artykuł na delete operator dobrze czytać.

Możesz usunąć odniesienie do danych przechowywanych w zmiennej, ustawiając zmienną na coś takiego jak null . Jeśli nie ma innych odniesień do tych danych, to będzie kwalifikować się do zbierania śmieci. Jeśli istnieją inne odniesienia do tego obiektu, nie zostanie on wyczyszczony z pamięci, dopóki nie będzie już do niego odniesień (np. nie ma możliwości, aby Twój kod się do niego dostał).

Jeśli chodzi o to, co powoduje akumulację pamięci, istnieje wiele możliwości i tak naprawdę nie możemy zobaczyć wystarczająco dużo twojego kodu, aby wiedzieć, jakie referencje mogą być przechowywane, co uniemożliwiłoby GC uwolnienie rzeczy.

Jeśli jest to pojedynczy, długo działający proces bez przerw w wykonywaniu, może być konieczne ręczne uruchomienie modułu odśmiecania pamięci, aby upewnić się, że ma szansę na wyczyszczenie wydanych elementów.

Oto kilka artykułów na temat śledzenia zużycia pamięci w node.js:http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/ i 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. Wyszukiwanie agregacji Mongodb z warunkami

  2. wyrzuć nową mangusę.Error.MissingSchemaError(nazwa); ^ MongooseError:Schemat nie został zarejestrowany dla sprzedawcy modeli

  3. Znajdź i zwróć pierwszy pasujący dokument podrzędny z tablicy (Meteor / Mongo)

  4. Zakres paginacji podczas zapytań i sortowania dynamicznych, nieunikatowych pól w mongodb

  5. przyspieszyć przetwarzanie dużych zestawów wyników za pomocą rmongodb