2016-06-03 7 views
6

NodeJS richiede la funzione, che carica i moduli, ha una "cache" (che è un oggetto).Il nodo richiede che la garbage cache venga raccolta?

Le voci sono questa cache sono garbage collection una volta che non uso più il modulo? (Con conseguente caricamento dal disco se usato di nuovo)

Penso che la risposta è "no", ma non ho trovato alcun riferimento sul web

risposta

7

le iscrizioni è questa cache sono garbage collection volta Non sto più utilizzando il modulo ?

No. I moduli caricati con require() vengono memorizzati nella cache a tempo indeterminato indipendentemente dal fatto che sia stato utilizzato o meno.

La memoria per le variabili/oggetti Javascript utilizzati dal modulo è garbage collection soggetta a tutte le normali regole della garbage collection (quando non esiste un codice live che abbia ancora un riferimento alla variabile/oggetto). Tuttavia, la cache del modulo mantiene un riferimento al modulo caricato in modo tale che il codice o qualsiasi variabile di livello del modulo non siano garbage collection a meno che un modulo non venga rimosso manualmente dalla cache.

Ecco uno link to the node.js doc sull'argomento.

Caching

moduli vengono memorizzate nella cache dopo la prima volta che vengono caricati. Questo significa (tra le altre cose) che ogni chiamata a richiedere ('pippo') otterrà esattamente lo stesso oggetto restituito, se si risolve nello stesso file .

Se si desidera rimuovere manualmente un modulo dalla cache, che è descritto qui:

unloading code/modules

Anche se, questo permetterà tutte le variabili a livello di modulo per essere garbage collection, dato il modo in node.js è strutturato Non penso che in realtà scaricherà il codice dalla memoria.

Problemi correlati