Facebook a lansat codul sursă al memlab

facebook-memlab

MemLab este un cadru pentru găsirea scurgerilor de memorie JavaScript

Recent s-a dat vestea asta Facebook a luat decizia de a lansa codul sursă a trusei de scule memlab, care este conceput pentru a analiza porțiuni din starea memoriei alocate dinamic (heap), determinați o strategie de optimizare a memoriei și detectarea scurgerilor de memorie care apar atunci când execută cod JavaScript. 

Cadrul a fost creat pentru a analiza cauzele consumului mare de memorie atunci când lucrați cu site-uri web și aplicații web. De exemplu, memlab a fost folosit pentru a analiza consumul de memorie atunci când se folosește o nouă versiune a site-ului Facebook.com, care a dezvăluit scurgeri care au cauzat blocarea browserului pe partea client din cauza epuizării memoriei libere.

Persoanele care folosesc aplicațiile noastre web vor observa adesea probleme de performanță și corectitudine funcțională imediat. O pierdere de memorie, însă, este o altă poveste. Nu se observă imediat, deoarece consumă o porțiune de memorie la un moment dat, afectând întreaga sesiune web și făcând interacțiunile ulterioare mai lente și mai puțin receptive.

Pentru a ajuta dezvoltatorii noștri să rezolve acest lucru, am creat MemLab, un cadru de testare a memoriei JavaScript care automatizează detectarea scurgerilor și facilitează localizarea scurgerilor de memorie. Am folosit MemLab la Meta pentru a limita cu succes creșterile nesustenabile de memorie și pentru a identifica pierderile de memorie și oportunitățile de optimizare a memoriei în produsele și infrastructura noastră.

Utilizarea ridicată a memoriei are un impact semnificativ statistic și negativ asupra încărcării paginii și a performanței interacțiunii (cât timp durează încărcarea unei pagini sau efectuarea unei interacțiuni)
Valori de implicare a utilizatorilor (utilizatori activi, timpul petrecut pe site, numărul de activități efectuate)

Cauzele scurgerilor de memorie la executarea codului JavaScript poate fi prezența referințelor de obiecte ascunse, așa Colectorul de gunoi nu poate elibera memoria ocupat de obiect, stocarea nerezonabilă a valorilor sau implementarea derulării infinite fără a elimina elementele vechi din listă.

De exemplu, în următorul cod Chrome, scurgerea memoriei are loc din cauza obiectului „obj”, chiar dacă este setat la null, deoarece Chrome menține referințe interne la obiectele redate pentru a le permite să fie inspectate ulterior în consola web.

Funcționarea de bază a Memlab, este următorul:

  1. Mai întâi efectuând detectarea scurgerilor de memorie în browser, Memlab vă permite să comparați automat instantanee ale memoriei dinamice, să detectați scurgerile de memorie și să acumulați rezultatele.
  2. Un API de traversare a heap-ului orientat pe obiecte care vă permite să implementați propriii algoritmi de detectare a scurgerilor și să implementați sisteme pentru analizarea instantaneelor ​​heap. Analiza heap este acceptată pentru browserele bazate pe motorul Chromium, precum și pentru platformele Node.js, Electron și Hermes.
  3. Interfață de linie de comandă și API pentru a găsi oportunități de optimizare a utilizării memoriei.
  4. Un sistem de afirmații pentru Node.js care vă permite să creați teste unitare și să rulați programe bazate pe Node.js pentru a vă împărți propria stare, a vă testa memoria sau a scrie aserțiuni avansate.
  5. Retention Trace Grouping, MemLab grupează toate urmele de retenție și afișează o urmă pentru fiecare grup de obiecte filtrate care partajează urme de retenție similare. Urmărirea include, de asemenea, informații de depanare, cum ar fi nodurile dominatoare și dimensiunile păstrate.
  6. Raportând scurgeri, MemLab poate fi rulat la intervale regulate de-a lungul zilei pentru a obține un semnal continuu despre regresiile memoriei. Orice regresie nouă este adăugată la un tablou de bord intern, unde sunt colectate și clasificate urmele de retenție grupate ale tuturor scurgerilor de memorie detectate. Dezvoltatorii pot apoi să facă clic și să vizualizeze proprietățile obiectelor din urmă de reținere a fiecărei scurgeri de memorie.

În cele din urmă daca esti interesat, trebuie să știți că codul Memlab este open source sub licența MIT și puteți afla mai multe despre el În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.