Ein häufiges Problem bei der Arbeit an einem JavaScript-Node.js-Projekt ist der Fehler „JavaScript Heap out of Memory“. Dieser Fehler tritt normalerweise auf, wenn der Node.js von Ihrem System zugewiesene Standardspeicher nicht ausreicht, um ein großes Projekt auszuführen.

Der Fehler tritt häufig auf, unabhängig davon, ob Sie Ihr Projekt unter Windows, macOS oder einer Linux-Distribution wie Ubuntu ausführen. Glücklicherweise gibt es ein paar einfache Korrekturen, die helfen können, den Fehler „JavaScript Heap out of Memory“ zu beheben.

Was ist Heap-Speicher?

Bevor Sie sich mit der Behebung des Fehlers befassen, ist es hilfreich, dies zu tun verstehen, was Heap-Speicher ist und wie Programme es verwenden.

Auf dem Systemheap zugewiesener Speicher wird auch als dynamisch zugewiesener Speicher bezeichnet. Es ist Sache des Programmierers, den verfügbaren Speicher so zu verwenden, wie er es für richtig hält. Noch wichtiger ist, dass die Heap-Größe für ein Programm von dem ihm zugewiesenen verfügbaren virtuellen Speicher abhängt.

instagram viewer

Wenn Sie ein relativ großes Projekt ausführen, benötigt es möglicherweise mehr Speicher als der standardmäßig zugewiesene Chunk. Dies kann dazu führen, dass Ihr Projekt abstürzt und der Fehler „JavaScript Heap out of Memory“ protokolliert wird.

So beheben Sie JavaScript Heap Out of Memory unter Windows

Unabhängig von Ihrer IDE ist der Fix „JavaScript Heap out of Memory“ identisch.

Du kannst Fügen Sie über die Systemsteuerung eine Umgebungsvariable hinzu um den einem Node.js-Projekt zugewiesenen Arbeitsspeicher zu erhöhen.

  1. Öffne das Startmenü, suchen nach Erweiterte Systemeinstellungen, und wählen Sie die beste Übereinstimmung aus.
  2. Klicken Sie im Dialogfeld auf Umgebungsvariablen, dann klicken Sie auf Neu von beiden Systemvariablen oder Benutzervariablen. Ersteres gilt für alle Benutzer auf Ihrem Computer, während letzteres nur Ihr aktuelles Konto betrifft
  3. In dem Variablennamen Feld eingeben NODE_OPTIONS. In dem Variabler Wert Feld eingeben --max-old-space-size=4096. Dieser Wert weist Node.js 4 GB virtuellen Speicher zu. Um einen anderen Wert festzulegen, multiplizieren Sie die benötigte Menge in GB mit 1024 (der Variablenwert muss in MB angegeben werden).
  4. Klicke auf OK, um Ihre Änderungen zu speichern, und klicken Sie dann auf Sich bewerben und schließlich klicken OK einmal mehr. Starten Sie Ihr Projekt neu, damit die Änderungen wirksam werden.

Sie können eine Umgebungsvariable auch über ein Windows PowerShell-Terminal festlegen.

Starten Sie ein PowerShell-Terminal, geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

$env: NODE_OPTIONS="--max-old-space-size=4096"

Wenn Sie den Heap-Speicher nur vorübergehend erhöhen möchten, führen Sie den folgenden Befehl in einem PowerShell-Terminal aus, bevor Sie Ihr Projekt ausführen:

einstellen NODE_OPTIONS=--max-old-space-size=4096

Sobald Sie diesen Befehl eingegeben haben, können Sie Ihr Projekt mit bereitstellen/ausführen npm laufen dev oder Ihr eigenes Skript.

Denken Sie daran, immer die benötigte Speichergröße in MB einzugeben. Andernfalls kann es zu unerwartetem Verhalten in Ihrem Programm kommen. Es ist auch wichtig, nicht den gesamten verfügbaren Speicher zuzuweisen, da dies zu einem erheblichen Systemausfall führen kann.

So beheben Sie den Fehler „JavaScript Heap Out of Memory“ unter macOS und Linux

Unter macOS und Linux ist der Heap-Memory-Fix ​​sehr ähnlich. Du solltest eine Umgebungsvariable exportieren die die Menge an virtuellem Speicher angibt, die Node.js zugewiesen ist.

Geben Sie in Ihrem Terminal vor dem Ausführen Ihres Projekts den folgenden Befehl ein und drücken Sie die Eingabetaste:

Export NODE_OPTIONS=--max-old-space-size=4096

Dadurch werden dem Ausführungsbereich von Node.js 4 GB virtueller Speicher zugewiesen. Um eine andere Speichergröße einzustellen, ersetzen Sie 4096 mit der erforderlichen Menge in MB.

Sie können den obigen Befehl zu Ihrer Konfigurationsdatei hinzufügen, um eine Wiederholung des Vorgangs zu vermeiden. Gehen Sie dazu genauso vor Prozess zum Setzen Ihrer PATH-Variablen.

Vermeiden Sie den Fehler „JavaScript Heap Out of Memory“.

Sie können diesen Fehler vermeiden, indem Sie sicherstellen, dass Ihr Programm frei von Speicherlecks ist. Die richtige Speicherverwaltung ist entscheidend, wenn Sie Ihre Programme schreiben, insbesondere in einer niedrigen Programmiersprache.

Während das Erhöhen des zugewiesenen Speichers das Problem vorübergehend behebt, sollten Sie die Grundursache finden und beheben.