A JavaScript Node.js projekten végzett munka során gyakori probléma a „JavaScript kupac memória” hiba. Ez a hiba általában akkor fordul elő, ha a rendszer által a Node.js számára lefoglalt alapértelmezett memória nem elegendő egy nagy projekt futtatásához.

A hiba gyakori, ha a projektet Windowson, macOS-en vagy Linux-disztribúción, például Ubuntu-n futtatja. Szerencsére van néhány egyszerű javítás, amely segíthet megoldani a „JavaScript kupac memória” hibát.

Mi az a kupac memória?

Mielőtt megvizsgálná a hiba kijavítását, hasznos megérteni, mi az a kupac memória és hogyan használják a programok.

A rendszerkupacon lefoglalt memóriát dinamikusan lefoglalt memóriának is nevezik. A programozó feladata, hogy a rendelkezésre álló memóriát saját belátása szerint használja-e. Ennél is fontosabb, hogy egy program kupacmérete a számára lefoglalt virtuális memória mennyiségétől függ.

Ha egy viszonylag nagy projektet futtat, akkor több memóriát igényelhet, mint az alapértelmezetten lefoglalt darab. Ez a projekt összeomlását és a „JavaScript kupac kimerült a memóriából” hibaüzenetet okozhatja.

instagram viewer

A JavaScript-halom memória kijavítása Windows rendszeren

Az IDE-től függetlenül a „JavaScript kupac memória” hibajavítás azonos.

tudsz adjon hozzá egy környezeti változót a Vezérlőpulton keresztül hogy növelje a Node.js projekthez lefoglalt memóriát.

  1. Nyissa meg a Start menü, keressen Haladó rendszerbeállítások, és válassza ki a Legjobb egyezést.
  2. A párbeszédpanelen kattintson a gombra Környezeti változók, majd kattintson a gombra Új bármelyikből Rendszerváltozók vagy Felhasználói változók. Az előbbi a számítógépén lévő összes felhasználóra vonatkozik, míg az utóbbi csak a jelenlegi fiókjára
  3. Ban,-ben Változó neve mezőbe írja be NODE_OPTIONS. Ban,-ben Változó érték mezőbe írja be --max-old-space-size=4096. Ez az érték 4 GB virtuális memóriát foglal le a Node.js számára. Más érték beállításához szorozza meg a GB-ban igényelt összeget 1024-gyel (a változó értékének MB-ban kell lennie).
  4. Kattintson rendben a módosítások mentéséhez, majd kattintson a gombra Alkalmaz és végül kattintson rendben még egyszer. Indítsa újra a projektet, hogy a változtatások életbe lépjenek.

Környezeti változót a Windows PowerShell terminálon keresztül is beállíthat.

Indítson el egy PowerShell terminált, írja be az alábbi parancsot, és nyomja meg az Enter billentyűt:

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

Ha csak ideiglenesen szeretné növelni a kupacmemóriát, futtassa az alábbi parancsot egy PowerShell-terminálon a projekt futtatása előtt:

készlet NODE_OPTIONS=--max-old-space-size=4096

Miután megadta ezt a parancsot, telepítheti/futtathatja projektjét a használatával npm futás dev vagy a saját forgatókönyvét.

Ne felejtse el mindig megadni a szükséges memóriaméretet MB-ban. Ennek elmulasztása váratlan viselkedést okozhat a programban. Az is létfontosságú, hogy ne foglalja le a teljes rendelkezésre álló memóriát, mivel ez jelentős rendszerhibát okozhat.

A JavaScript-halom memóriahiba javítása macOS és Linux rendszeren

MacOS és Linux rendszeren a kupac memóriajavítás nagyon hasonló. Neked kellene környezeti változó exportálása amely a Node.js számára lefoglalt virtuális memória mennyiségét határozza meg.

A terminálon a projekt futtatása előtt írja be a következő parancsot, és nyomja meg az Enter billentyűt:

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

Ez 4 GB virtuális memóriát foglal le a Node.js végrehajtási területéhez. Eltérő memóriamennyiség beállításához cserélje ki 4096 a szükséges összeggel MB-ban.

A fenti parancsot hozzáadhatja a konfigurációs fájlhoz, hogy elkerülje a folyamat megismétlődését. Ehhez kövesse ugyanezt folyamat a PATH változó beállításához.

Kerülje el a JavaScript-halom megtelt memóriát

Ezt a hibát elkerülheti, ha gondoskodik arról, hogy programja mentes legyen a memóriaszivárgástól. A megfelelő memóriakezelés kulcsfontosságú a programok írásakor, különösen alacsony szintű nyelveken.

Míg a lefoglalt memória növelése átmenetileg megoldja a problémát, meg kell találnia a kiváltó okot, és meg kell oldania.