sql >> Databáze >  >> NoSQL >> MongoDB

Mazání velkých objektů Javascriptu, když procesu dochází paměť

delete v javascriptu se NEpoužívá k mazání proměnných ani k uvolnění paměti. Používá se POUZE k odstranění vlastnosti z objektu. Můžete najít tento článek na delete operátor dobré čtení.

Odkaz na data uložená v proměnné můžete odstranit nastavením proměnné na něco jako null . Pokud na tato data nejsou žádné další odkazy, bude to způsobilé pro sběr odpadu. Pokud existují další odkazy na tento objekt, nebude vymazán z paměti, dokud na něj nebudou žádné další odkazy (např. váš kód se k němu nebude moci dostat).

Pokud jde o to, co způsobuje akumulaci paměti, existuje řada možností a ve skutečnosti nevidíme dost vašeho kódu, abychom věděli, jaké odkazy by se mohly držet, aby GC neuvolnil věci.

Pokud se jedná o jediný, dlouho běžící proces bez přerušení v provádění, možná budete muset ručně spustit garbage collector, abyste se ujistili, že dostane příležitost vyčistit věci, které jste vydali.

Zde je několik článků o sledování využití paměti v node.js:http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/ a https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/ .



  1. Nelze připojit sdílené složky Azure jako svazek mongodb v instancích kontejneru Azure

  2. Funkce MapReduce v MongoDB - Seskupení dokumentu podle ID

  3. Jak inicializovat sadu replikace mongodb bez volání rs.initiate()?

  4. Mongoose - způsobeno ::11000 E11000 index chyby duplicitního klíče?