Een veelvoorkomend probleem bij het werken aan een JavaScript Node.js-project is de fout "JavaScript-heap vol geheugen". Deze fout treedt meestal op wanneer het standaardgeheugen dat door uw systeem aan Node.js is toegewezen, niet voldoende is om een ​​groot project uit te voeren.

De fout komt vaak voor, of u uw project nu uitvoert op Windows, macOS of een Linux-distributie zoals Ubuntu. Gelukkig zijn er een paar eenvoudige oplossingen die kunnen helpen bij het oplossen van de fout "JavaScript-heap vol geheugen".

Wat is heapgeheugen?

Voordat u de fout gaat herstellen, is het handig om: begrijpen wat heap-geheugen is en hoe programma's het gebruiken.

Geheugen toegewezen op de systeemheap wordt ook dynamisch toegewezen geheugen genoemd. Het is aan de programmeur om het beschikbare geheugen naar eigen goeddunken te gebruiken. Wat nog belangrijker is, is dat de heapgrootte voor een programma afhankelijk is van het beschikbare virtuele geheugen dat eraan is toegewezen.

Als u een relatief groot project uitvoert, heeft dit mogelijk meer geheugen nodig dan de standaard toegewezen chunk. Dit kan ertoe leiden dat uw project crasht en de "JavaScript-heap uit het geheugen"-fout logt.

instagram viewer

Hoe JavaScript-heap vol geheugen op Windows te repareren

Ongeacht uw IDE, is de oplossing "JavaScript-heap vol geheugen" identiek.

Jij kan een omgevingsvariabele toevoegen via het Configuratiescherm om het geheugen toegewezen aan een Node.js-project te vergroten.

  1. Open de Start menu, zoeken naar Geavanceerde systeeminstellingenen selecteer de Beste overeenkomst.
  2. Klik in het dialoogvenster op Omgevingsvariabelenen klik vervolgens op Nieuw van een van beide Systeemvariabelen of Gebruikersvariabelen. De eerste is van toepassing op alle gebruikers op uw computer, terwijl de laatste alleen van invloed is op uw huidige account
  3. In de Variabele naam veld invoeren NODE_OPTIONS. In de Variabele waarde veld invoeren --max-old-space-size=4096. Deze waarde wijst 4 GB virtueel geheugen toe aan Node.js. Om een ​​andere waarde in te stellen, vermenigvuldigt u het benodigde bedrag in GB met 1024 (de variabelewaarde moet in MB zijn).
  4. Klik op Oké om uw wijzigingen op te slaan en klik vervolgens op Van toepassing zijn en klik tenslotte op Oké nog een keer. Start uw project opnieuw om de wijzigingen door te voeren.

U kunt ook een omgevingsvariabele instellen via een Windows PowerShell-terminal.

Start een PowerShell-terminal, typ de onderstaande opdracht en druk op Enter:

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

Als u het heapgeheugen slechts tijdelijk wilt vergroten, voert u de onderstaande opdracht uit in een PowerShell-terminal voordat u uw project uitvoert:

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

Nadat u deze opdracht hebt ingevoerd, kunt u uw project implementeren/uitvoeren met npm run dev of je eigen script.

Denk eraan om de vereiste geheugengrootte altijd in MB in te voeren. Als u dit niet doet, kan dit onverwacht gedrag in uw programma veroorzaken. Het is ook van vitaal belang om niet uw volledige beschikbare geheugen toe te wijzen, omdat dit een aanzienlijke systeemstoring kan veroorzaken.

Hoe JavaScript Heap Out of Memory Error op macOS en Linux te repareren

Op macOS en Linux lijkt de heap-geheugenfix erg op elkaar. Je zou moeten een omgevingsvariabele exporteren die de hoeveelheid virtueel geheugen specificeert die is toegewezen aan Node.js.

Voer in uw terminal, voordat u uw project uitvoert, de volgende opdracht in en druk op Enter:

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

Hiermee wordt 4 GB virtueel geheugen toegewezen aan de uitvoeringsruimte van Node.js. Om een ​​andere hoeveelheid geheugen in te stellen, vervangt u 4096 met het benodigde bedrag in MB.

U kunt de bovenstaande opdracht aan uw configuratiebestand toevoegen om herhaling van het proces te voorkomen. Volg hiervoor hetzelfde proces voor het instellen van uw PATH-variabele.

Vermijd JavaScript-heap vol geheugenfout

U kunt deze fout voorkomen door ervoor te zorgen dat uw programma geen geheugenlekken bevat. Goed geheugenbeheer is cruciaal bij het schrijven van uw programma's, vooral in een taal op laag niveau.

Hoewel het vergroten van het toegewezen geheugen het probleem tijdelijk zal oplossen, moet u de hoofdoorzaak vinden en oplossen.