Levinud probleem JavaScript Node.js projektiga töötamisel on tõrge „JavaScripti hunnik mälust”. See tõrge ilmneb tavaliselt siis, kui teie süsteemi poolt Node.js-ile eraldatud vaikemälust ei piisa suure projekti käitamiseks.

Viga on tavaline olenemata sellest, kas käitate oma projekti Windowsis, macOS-is või Linuxi distributsioonis, nagu Ubuntu. Õnneks on mõned lihtsad parandused, mis aitavad lahendada tõrke „JavaScripti hunnik mälust”.

Mis on kuhjamälu?

Enne vea parandamist on kasulik teha mõista, mis on kuhjamälu ja kuidas programmid seda kasutavad.

Süsteemihunnikule eraldatud mälu nimetatakse ka dünaamiliselt eraldatud mäluks. Programmeerija ülesanne on kasutada olemasolevat mälu vastavalt oma äranägemisele. Veelgi olulisem on see, et programmi hunniku suurus sõltub sellele eraldatud saadaolevast virtuaalmälust.

Kui käitate suhteliselt suurt projekti, võib see nõuda rohkem mälu kui vaikimisi eraldatud osa. See võib põhjustada teie projekti kokkuvarisemise ja tõrketeate „JavaScripti kuhja mälust väljas” logimise.

Kuidas parandada Windowsi JavaScripti kuhja mälu

Olenemata teie IDE-st on parandus „JavaScripti mälu otsas” identne.

Sa saad lisage juhtpaneeli kaudu keskkonnamuutuja Node.js projektile eraldatud mälu suurendamiseks.

  1. Ava Menüü Start, otsima Süsteemi täpsemad sättedja valige parim vaste.
  2. Klõpsake dialoogiboksis nuppu Keskkonnamuutujad, seejärel klõpsake nuppu Uus kummastki Süsteemi muutujad või Kasutaja muutujad. Esimene kehtib kõigi teie arvuti kasutajate kohta, teine ​​aga ainult teie praegune konto
  3. Aastal Muutuja nimi sisestage välja NODE_OPTIONS. Aastal Muutuv väärtus sisestage välja --max-old-space-size=4096. See väärtus eraldab Node.js-ile 4 GB virtuaalmälu. Erineva väärtuse määramiseks korrutage nõutav summa GB-ga 1024-ga (muutuja väärtus peab olema MB-des).
  4. Kliki Okei muudatuste salvestamiseks klõpsake nuppu Rakenda ja lõpuks klõpsake Okei korra veel. Muudatuste jõustumiseks taaskäivitage projekt.

Keskkonnamuutuja saate määrata ka Windows PowerShelli terminali kaudu.

Käivitage PowerShelli terminal, tippige allolev käsk ja vajutage sisestusklahvi:

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

Kui soovite kuhjamälu ainult ajutiselt suurendada, käivitage enne projekti käivitamist PowerShelli terminalis allolev käsk:

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

Kui olete selle käsu sisestanud, saate oma projekti juurutada/käivitada kasutades npm käivita dev või oma skripti.

Ärge unustage alati sisestada vajalik mälumaht MB-des. Kui te seda ei tee, võib teie programm põhjustada ootamatut käitumist. Samuti on oluline mitte eraldada kogu vaba mälu, kuna see võib põhjustada olulise süsteemirikke.

JavaScripti kuhja mälutõrke parandamine macOS-is ja Linuxis

MacOS-is ja Linuxis on kuhjamälu parandus väga sarnane. Sa peaksid keskkonnamuutuja eksportimine mis määrab Node.js-ile eraldatud virtuaalmälu mahu.

Enne projekti käivitamist sisestage terminalis järgmine käsk ja vajutage sisestusklahvi:

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

See eraldab Node.js täitmisruumile 4 GB virtuaalmälu. Erineva mälumahu määramiseks asendage 4096 nõutava summaga MB-des.

Protsessi kordamise vältimiseks saate ülaltoodud käsu oma konfiguratsioonifaili lisada. Selleks järgige sama muutuja PATH seadistamise protsess.

Vältige JavaScripti kuhja mälu tühjenemise viga

Saate seda viga vältida, kui veendute, et teie programmis pole mälulekkeid. Õige mäluhaldus on programmide kirjutamisel ülioluline, eriti madala tasemega keeles.

Kuigi eraldatud mälu suurendamine lahendab probleemi ajutiselt, peaksite leidma algpõhjuse ja selle parandama.