Facebook on avanud JavaScripti mälulekkeid tuvastava raamistiku lähtekoodi

Facebook (keelatud Venemaal) avaldas memlab tööriista lähtekoodid, mis on mõeldud dünaamiliselt jaotatud mälu (heap) seisundilõikude analüüsimiseks, mälu kasutamise optimeerimise strateegiate määratlemiseks ja mälu lekkide tuvastamiseks, mis tekivad JavaScripti koodi käitamise käigus. Kood on avatud MIT litsentsi alusel.

Raamistiku loomine põhines põhjuse analüüsil, miks mälu tarbimine on suur, töötades veebilehtede ja veebirakendustega. Näiteks analüüsiti memlabi abil mälu kasutust Facebook.com uue versiooni kasutamisel, mis võimaldas tuvastada lekkeid, mis viisid klientidele brauseri kokkuvarisemiseni vaba mälu ammendumise tõttu.

JavaScripti koodi käitamise käigus võivad mälu leket põhjustada varjatud viidete esinemine objektidele, mis takistavad prügikoristuselt allokatsiooni vabastamist, mõistlikud väärtuste vahemikud või lõpmatu kerimise teostamine vanade loendielementide asendamata jätmisega. Näiteks allpool toodud koodis ilmneb Chrome'is mälu leke objekti "obj" tõttu, vaatamata sellele, et sellele antakse väärtus null, kuna Chrome säilitab sisemised viidatud muudatud objektidele, et võimaldada nende järgmist kontrollimist veebikonsolis. var obj = {}; console.log(obj); obj = null;

Memlabi peamised funktsioonid:

  • Mälu leketes tuvastamine brauseris. Memlab võimaldab automaatselt võrrelda dünaamilise mälu seisundilõike, tuvastada mälu lekkeid ja koguda tulemusi.
  • Objektorienteeritud API, mis võimaldab heap'i läbimist, et arendada oma lekete tuvastamise algoritme ja rakendada heap'i seisundilõikude analüüsi. Toetatakse heap'i analüüsi Chromiumi põhiste brauserite ja samuti Node.js, Electron ja Hermese platvormide jaoks.
  • Käskude rida ja API mälu kasutamise optimeerimise võimaluste leidmiseks.
  • Assert-süsteem Node.js jaoks, mis võimaldab luua unit-testid ja käivitada Node.js baasil programme oma seisundilõikude loomiseks, mälu kontrollimiseks või laiaulatuslike assert-kontrollide kirjutamiseks.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster