2017-07-22 2 views
-1

Im erfordern, um Module zu importieren, die lange Arrays enthalten.Node required: Entlade-Modul erfolgreich, aber Speicherauslastung immer noch hoch

Nach der Verwendung lösche ich erfolgreich den Cache und entferne das Löschen des Arrays, aber auf jedem neuen benötigten Modul nimmt meine Speicherbelegung zu.

Wie verhindere ich das?

**** EDITED ***** Code hinzugefügt

Array1.map(function(val,index){ 


      var requiredModuke = require("../moduleLocation/"+index) 

      var path = resolve.sync("../moduleLocation/"+index); 
      if (path){ 
      console.log("Path to module found:", path); 
      } 


       setTimeout(function(){ 


       delete require.cache[require.resolve(path)] 

       var numOfModulesLoaded= Object.keys(require.cache).length 

       console.log(numOfModulesLoaded) 



       },index*8000); 


    }) 
+0

überprüfen Sie uns den entsprechenden Code haben (was Sie denken, Sie entfernen) und beschreiben genau, wie Sie die Speichernutzung messen. Heap-Snapshots sind die nützlichste Methode, um zu sehen, wie viel Speicher der Javascript-Interpreter tatsächlich verwendet, und er kann Ihnen auch sagen, was die Hauptobjekte in diesem Heap sind. Wenn man sich den gesamten Prozessspeicher anschaut, kann man nicht sagen, wie viel davon tatsächlich verwendet wird, im Gegensatz zum Interpreter und bereit, bei Bedarf neu zugewiesen zu werden.n Es gibt viele Möglichkeiten, wie Leute getäuscht werden, was sie sehen oder wo Das Problem ist, ohne richtig zu messen. – jfriend00

+0

Code hinzugefügt, Überwachung mit Aktivitätsmonitor. Auch wenn ich dies für mehr als 50 Durchgänge der Schleife belasse, wird der Knoten mit err FATAL ERROR beendet: CALL_AND_RETRY_LAST Zuweisung fehlgeschlagen - JavaScript Heap nicht genügend Speicher –

Antwort

1

node.js die Module Caches, müssen Sie aus dem Cache löschen, um den Speicher freizugeben.

delete require.cache[require.resolve('ModulePath/ModuleName')] 

alle zwischengespeicherten/geladenen Module

console.log(require.cache); 
+0

Danke, aber ich mache das schon, ich habe Code und Stil aus dem Speicher –

Verwandte Themen