Pogosta težava med delom na projektu JavaScript Node.js je napaka »JavaScript heap of memory«. Ta napaka se običajno pojavi, ko privzeti pomnilnik, ki ga vaš sistem dodeli Node.js, ni dovolj za izvajanje velikega projekta.
Napaka je pogosta, ne glede na to, ali izvajate projekt v sistemu Windows, macOS ali distribuciji Linuxa, kot je Ubuntu. Na srečo obstaja nekaj preprostih popravkov, ki lahko pomagajo odpraviti napako »JavaScript heap of memory«.
Kaj je kopični pomnilnik?
Preden se lotite odpravljanja napake, je koristno, da razumeti, kaj je kopični pomnilnik in kako ga programi uporabljajo.
Pomnilnik, dodeljen na kopici sistema, se imenuje tudi dinamično dodeljen pomnilnik. Programer mora uporabiti razpoložljivi pomnilnik, kot se mu zdi primerno. Še pomembneje je, da je velikost kopice za program odvisna od razpoložljivega navideznega pomnilnika, ki mu je dodeljen.
Če izvajate razmeroma velik projekt, bo morda potreboval več pomnilnika kot privzeto dodeljen kos. To lahko povzroči, da se vaš projekt zruši in zabeleži napako »JavaScript heap of memory of memory«.
Kako popraviti kopico pomnilnika JavaScript v sistemu Windows
Ne glede na vaš IDE je popravek »JavaScript heap of memory« enak.
Ti lahko dodajte spremenljivko okolja prek nadzorne plošče za povečanje pomnilnika, dodeljenega projektu Node.js.
- Odprite Start meni, Išči Napredne sistemske nastavitvein izberite Najboljše ujemanje.
- V pogovornem oknu kliknite na Spremenljivke okolja, nato kliknite na Novo od bodisi Sistemske spremenljivke oz Uporabniške spremenljivke. Prvo velja za vse uporabnike vašega računalnika, drugo pa samo za vaš trenutni račun
- V Ime spremenljivke polje enter NODE_OPTIONS. V Spremenljiva vrednost polje enter --max-old-space-size=4096. Ta vrednost bo Node.js dodelila 4 GB navideznega pomnilnika. Če želite nastaviti drugo vrednost, pomnožite želeni znesek v GB z 1024 (vrednost spremenljivke mora biti v MB).
- Kliknite na v redu da shranite spremembe, nato kliknite Prijavite se in na koncu kliknite v redu še enkrat. Znova zaženite projekt, da bodo spremembe začele veljati.
Spremenljivko okolja lahko nastavite tudi prek terminala Windows PowerShell.
Zaženite terminal PowerShell, vnesite spodnji ukaz in pritisnite Enter:
$env: NODE_OPTIONS="--max-old-space-size=4096"
Če želite samo začasno povečati pomnilnik kopice, zaženite spodnji ukaz v terminalu PowerShell, preden zaženete svoj projekt:
set NODE_OPTIONS=--max-old-space-size=4096
Ko vnesete ta ukaz, lahko uvedete/zaženete svoj projekt z uporabo npm run dev ali svoj scenarij.
Ne pozabite vedno vnesti zahtevane velikosti pomnilnika v MB. Če tega ne storite, lahko povzroči nepričakovano vedenje vašega programa. Prav tako je ključnega pomena, da ne dodelite celotnega razpoložljivega pomnilnika, saj lahko to povzroči znatno okvaro sistema.
Kako popraviti napako kopice pomnilnika JavaScript v sistemih macOS in Linux
V sistemih macOS in Linux je popravek pomnilnika kopice zelo podoben. Moral bi izvozite spremenljivko okolja ki določa količino navideznega pomnilnika, dodeljenega Node.js.
V terminalu, preden zaženete projekt, vnesite naslednji ukaz in pritisnite Enter:
izvoz NODE_OPTIONS=--max-old-space-size=4096
To bo dodelilo 4 GB navideznega pomnilnika izvajalnemu prostoru Node.js. Če želite nastaviti drugo količino pomnilnika, zamenjajte 4096 z zahtevano količino v MB.
Zgornji ukaz lahko dodate svoji konfiguracijski datoteki, da se izognete ponavljanju postopka. Če želite to narediti, sledite istemu postopek za nastavitev vaše spremenljivke PATH.
Izognite se napaki kopice pomnilnika JavaScript
Tej napaki se lahko izognete tako, da zagotovite, da vaš program ne pušča pomnilnika. Pravilno upravljanje pomnilnika je ključnega pomena pri pisanju vaših programov, zlasti v jeziku nizke ravni.
Čeprav bo povečanje dodeljenega pomnilnika začasno odpravilo težavo, bi morali najti glavni vzrok in ga odpraviti.