Bežným problémom pri práci na projekte JavaScript Node.js je chyba „Hodnota JavaScriptu nedostatok pamäte“. Táto chyba sa zvyčajne vyskytuje, keď predvolená pamäť alokovaná vaším systémom pre Node.js nestačí na spustenie veľkého projektu.

Chyba je bežná, či svoj projekt spúšťate v systéme Windows, MacOS alebo distribúcii Linuxu, ako je Ubuntu. Našťastie existuje niekoľko jednoduchých opráv, ktoré môžu pomôcť vyriešiť chybu „Hromadu JavaScriptu nedostatok pamäte“.

Čo je haldová pamäť?

Predtým, ako sa pozriete na opravu chyby, je užitočné pochopiť, čo je haldová pamäť a ako to programy využívajú.

Pamäť alokovaná na systémovej halde sa tiež nazýva dynamicky alokovaná pamäť. Je na programátorovi, aby využil dostupnú pamäť tak, ako uzná za vhodné. Ešte dôležitejšie je, že veľkosť haldy pre program závisí od dostupnej virtuálnej pamäte, ktorá je mu pridelená.

Ak máte spustený relatívne veľký projekt, môže vyžadovať viac pamäte ako predvolená pridelená časť. To môže spôsobiť zlyhanie vášho projektu a zaprotokolovanie chyby „Hromadu JavaScriptu nedostatok pamäte“.

instagram viewer

Ako opraviť nedostatok pamäte JavaScriptu v systéme Windows

Bez ohľadu na vaše IDE je oprava „Hodnota JavaScriptu nedostatok pamäte“ rovnaká.

Môžeš pridajte premennú prostredia prostredníctvom ovládacieho panela na zvýšenie pamäte pridelenej projektu Node.js.

  1. Otvor Úvodná ponuka, hľadať Rozšírené nastavenia systémua vyberte najlepšiu zhodu.
  2. V dialógovom okne kliknite na Premenné prostredia, potom kliknite na Nový z oboch Systémové premenné alebo Používateľské premenné. Prvý sa vzťahuje na všetkých používateľov vášho počítača, zatiaľ čo druhý sa týka iba vášho aktuálneho účtu
  3. V Názov premennej zadajte pole NODE_OPTIONS. V Variabilná hodnota zadajte pole --max-old-space-size=4096. Táto hodnota pridelí súboru Node.js 4 GB virtuálnej pamäte. Ak chcete nastaviť inú hodnotu, vynásobte požadovanú sumu v GB číslom 1024 (hodnota premennej musí byť v MB).
  4. Kliknite na OK uložte zmeny a potom kliknite na Použiť a nakoniec klikni OK ešte raz. Reštartujte projekt, aby sa zmeny prejavili.

Premennú prostredia môžete nastaviť aj prostredníctvom terminálu Windows PowerShell.

Spustite terminál PowerShell, zadajte nižšie uvedený príkaz a stlačte kláves Enter:

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

Ak chcete pamäť haldy zväčšiť iba dočasne, pred spustením projektu spustite nižšie uvedený príkaz v termináli PowerShell:

nastaviť NODE_OPTIONS=--max-old-space-size=4096

Po zadaní tohto príkazu môžete nasadiť/spustiť svoj projekt pomocou npm spustiť dev alebo vlastný skript.

Nezabudnite vždy zadať požadovanú veľkosť pamäte v MB. Ak tak neurobíte, môže to spôsobiť neočakávané správanie vášho programu. Je tiež dôležité, aby ste nevyhradili celú dostupnú pamäť, pretože to môže spôsobiť značné zlyhanie systému.

Ako opraviť chybu nedostatku pamäte v jazyku JavaScript v systémoch MacOS a Linux

V systémoch macOS a Linux je oprava haldy pamäte veľmi podobná. Mal by si exportovať premennú prostredia ktorý určuje množstvo virtuálnej pamäte alokovanej pre Node.js.

Vo svojom termináli pred spustením projektu zadajte nasledujúci príkaz a stlačte kláves Enter:

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

Tým sa pridelia 4 GB virtuálnej pamäte vykonávaciemu priestoru Node.js. Ak chcete nastaviť iné množstvo pamäte, vymeňte 4096 s požadovanou sumou v MB.

Vyššie uvedený príkaz môžete pridať do svojho konfiguračného súboru, aby ste sa vyhli opakovaniu procesu. Ak to chcete urobiť, postupujte rovnako proces nastavenia premennej PATH.

Vyvarujte sa chybe s nedostatkom pamäte v hromade JavaScriptu

Tejto chybe sa môžete vyhnúť tak, že zabezpečíte, aby váš program neobsahoval úniky pamäte. Správna správa pamäte je rozhodujúca pri písaní programov, najmä v jazyku nízkej úrovne.

Zatiaľ čo zvýšenie pridelenej pamäte dočasne vyrieši problém, mali by ste nájsť hlavnú príčinu a opraviť ju.