Facebook a deschis codul framework-ului pentru detectarea scurgerilor de memorie în JavaScript

Compania Facebook (interzisă în RF) a deschis codul sursă al instrumentului memlab, destinat analizei instantaneelor stării memoriei dinamice (heap), identificării strategiilor de optimizare a utilizării memoriei și detectării scurgerilor de memorie care apar la executarea codului în limbajul JavaScript. Codul este disponibil sub licența MIT.

Framework-ul a fost creat pentru a analiza cauzele unui consum mare de memorie în timpul utilizării site-urilor web și aplicațiilor web. De exemplu, cu ajutorul memlab a fost analizat consumul de memorie utilizat de noua versiune a site-ului Facebook.com, ceea ce a permis identificarea scurgerilor care duceau la închiderea neașteptată a browserului pe client din cauza epuizării memoriei libere.

Cauzele scurgerilor de memorie la executarea codului JavaScript pot fi legături ascunse către obiecte, din cauza cărora garbage collector-ul nu poate elibera memoria ocupată de obiect, caching nerezonabil al valorilor sau implementarea scrolling-ului infinit fără a elimina elementele vechi din listă. De exemplu, în codul de mai jos în Chrome, scurgerea de memorie apare din cauza obiectului „obj”, chiar dacă acesta i se atribuie valoarea null, deoarece Chrome păstrează referințe interne la obiectele afișate pentru a permite inspectarea acestora în consola web. var obj = {}; console.log(obj); obj = null;

Funcționalitățile principale ale memlab:

  • Detectarea scurgerilor de memorie în browser. Memlab permite compararea automată a instantaneelor stării memoriei dinamice, identificarea scurgerilor de memorie și agregarea rezultatelor.
  • API orientat pe obiect pentru parcurgerea heap-ului, care permite implementarea propriilor algoritmi de detectare a scurgerilor și realizarea sistemelor de analiza instantaneelor stării heap-ului. Este suportată analiza heap-ului pentru browserele bazate pe motorul Chromium, precum și pentru platformele Node.js, Electron și Hermes.
  • Interfață de linie de comandă și API pentru căutarea oportunităților de optimizare a utilizării memoriei.
  • Sistem de aserți pentru Node.js, care permite crearea de teste unitare și executarea programelor bazate pe Node.js pentru a crea instantanee ale propriei stări, pentru a verifica propria memorie sau pentru a scrie aserți extinși.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster