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.
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.
- Nyissa meg a Start menü, keressen Haladó rendszerbeállítások, és válassza ki a Legjobb egyezést.
- 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
- 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).
- 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.