Et almindeligt problem, når du arbejder på et JavaScript Node.js-projekt, er fejlen "JavaScript-bunken mangler hukommelse". Denne fejl opstår normalt, når standardhukommelsen, der er allokeret af dit system til Node.js, ikke er nok til at køre et stort projekt.

Fejlen er almindelig, uanset om du kører dit projekt på Windows, macOS eller en Linux-distribution som Ubuntu. Heldigvis er der et par nemme rettelser, der kan hjælpe med at løse fejlen "JavaScript-bunke ud af hukommelse".

Hvad er Heap Memory?

Før du ser på at rette fejlen, er det nyttigt at forstå, hvad heap memory er og hvordan programmer bruger det.

Hukommelse allokeret på systemheapen kaldes også dynamisk allokeret hukommelse. Det er op til programmøren at bruge den tilgængelige hukommelse, som de finder passende. Endnu vigtigere er, at heapstørrelsen for et program afhænger af den tilgængelige virtuelle hukommelse, der er allokeret til det.

Hvis du kører et relativt stort projekt, kan det kræve mere hukommelse end den standardtildelte del. Dette kan få dit projekt til at gå ned og logge fejlen "JavaScript-bunke ud af hukommelse".

instagram viewer

Sådan rettes JavaScript-bunken uden hukommelse på Windows

Uanset din IDE er rettelsen "JavaScript-bunke tom for hukommelse" identisk.

Du kan tilføje en miljøvariabel gennem kontrolpanelet for at øge den hukommelse, der er allokeret til et Node.js-projekt.

  1. Åbn Start menu, søge efter Avancerede systemindstillingerog vælg det bedste match.
  2. Klik på i dialogboksen miljøvariabler, og klik derefter på Ny fra enten Systemvariabler eller Brugervariable. Førstnævnte gælder for alle brugere på din computer, mens sidstnævnte kun påvirker din nuværende konto
  3. I den Variabel navn felt ind NODE_OPTIONS. I den Variabel værdi felt ind --max-gammel-space-size=4096. Denne værdi vil allokere 4 GB virtuel hukommelse til Node.js. For at indstille en anden værdi skal du gange det nødvendige beløb i GB med 1024 (variabelværdien skal være i MB).
  4. Klik på Okay for at gemme dine ændringer, og klik derefter på ansøge og klik til sidst Okay en gang til. Genstart dit projekt for at ændringerne træder i kraft.

Du kan også indstille en miljøvariabel gennem en Windows PowerShell-terminal.

Start en PowerShell-terminal, skriv nedenstående kommando og tryk på Enter:

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

Hvis du kun ønsker at øge heap-hukommelsen midlertidigt, skal du køre nedenstående kommando i en PowerShell-terminal, før du kører dit projekt:

sæt NODE_OPTIONS=--max-gammel-space-size=4096

Når du har indtastet denne kommando, kan du implementere/køre dit projekt ved hjælp af npm køre dev eller dit eget manuskript.

Husk altid at indtaste den nødvendige hukommelsesstørrelse i MB. Hvis du ikke gør det, kan det forårsage uventet adfærd i dit program. Det er også vigtigt ikke at allokere hele din tilgængelige hukommelse, da dette kan forårsage en betydelig systemfejl.

Sådan rettes JavaScript Heap Out of Memory-fejl på macOS og Linux

På macOS og Linux er heap memory fixet meget ens. Du burde eksportere en miljøvariabel der angiver mængden af ​​virtuel hukommelse, der er allokeret til Node.js.

Indtast følgende kommando i din terminal, før du kører dit projekt, og tryk på Enter:

eksport NODE_OPTIONS=--max-gammel-space-size=4096

Dette vil allokere 4 GB virtuel hukommelse til udførelsen af ​​Node.js. Udskift for at indstille en anden mængde hukommelse 4096 med det nødvendige beløb i MB.

Du kan tilføje ovenstående kommando til din konfigurationsfil for at undgå at gentage processen. For at gøre det, følg det samme proces til indstilling af din PATH-variabel.

Undgå JavaScript-bunke-fejl uden hukommelse

Du kan undgå denne fejl ved at sikre, at dit program er fri for hukommelseslækager. Korrekt hukommelsesstyring er afgørende, når du skriver dine programmer, især på et lavt niveau sprog.

Mens en forøgelse af den tildelte hukommelse midlertidigt løser problemet, bør du finde årsagen og rette den.