Facebook allibero el codi font de memlab

Facebook-memlab

MemLab és un marc per trobar fuites de memòria de JavaScript

Fa poc es va donar a conèixer la notícia que Facebook ha pres la decisió d'alliberar el codi font del kit d'eines memlab, El qual està dissenyat per analitzar porcions de l'estat de la memòria assignada dinàmicament (heap), determinar una estratègia per optimitzar el treball amb memòria i detectar fuites de memòria que ocorren quan executant codi JavaScript. 

el marc va ser creat per analitzar les causes de l'alt consum de memòria quan es treballa amb llocs web i aplicacions web. Per exemple, es va fer servir memlab per analitzar el consum de memòria quan es feia servir una nova versió del lloc Facebook.com, que va revelar fugues que van provocar un bloqueig del navegador al costat del client a causa de l'esgotament de la memòria lliure.

Les persones que usen les nostres aplicacions web sovint notaran problemes de rendiment i correcció funcional immediatament. Una pèrdua de memòria, però, és una història diferent. No és perceptible immediatament, perquè consumeix una part de la memòria alhora, cosa que afecta tota la sessió web i fa que les interaccions posteriors siguin més lentes i menys receptives.

Per ajudar els nostres desenvolupadors a abordar això, creem MemLab , un marc de prova de memòria de JavaScript que automatitza la detecció de fuites i facilita la localització de les fuites de memòria. Hem utilitzat MemLab a Meta per contenir amb èxit els augments de memòria insostenibles i identificar fuites de memòria i oportunitats d'optimització de memòria als nostres productes i infraestructura.

L'alt ús de memòria té un impacte estadísticament significatiu i negatiu en la càrrega de pàgines i el rendiment de la interacció (quant de temps porta carregar una pàgina o realitzar una interacció)
Mètriques de participació de l'usuari (usuaris actius, temps de permanència al lloc, nombre d'activitats realitzades)

Les causes de les fuites de memòria en executar codi JavaScript poden ser la presència de referències ocultes a objectes, Per la qual cosa el recol·lector d'escombraries no pot alliberar la memòria ocupada per l'objecte, l'emmagatzematge en memòria cau irraonable de valors o la implementació de desplaçament infinit sense desallotjar elements de llista antics.

Per exemple, en el codi de Chrome següent, la pèrdua de memòria es produeix a causa de l'objecte «obj», encara que estigui configurat com a nul, perquè Chrome manté referències internes als objectes representats per permetre que s'inspeccionin més tard a la consola web.

El funcionament bàsic de Memlab, és el següent:

  1. Primer fa la detecció de pèrdues de memòria al navegador, Memlab permet comparar automàticament instantànies de memòria dinàmica, detectar fuites de memòria i afegir resultats.
  2. Una API transversal de munt orientada a objectes que permet implementar els seus propis algorismes de detecció de fuites i implementar sistemes per analitzar instantànies de munt. L'anàlisi de munt és compatible amb navegadors basats en el motor Chromium, així com per a les plataformes Node.js, Electron i Hermes.
  3. Interfície de línia d'ordres i API per trobar oportunitats per optimitzar l'ús de la memòria.
  4. Un sistema dʻafirmació per a Node.js que permet crear proves unitàries i executar programes basats en Node.js per dividir el seu propi estat, provar la seva memòria o escriure afirmacions avançades.
  5. Agrupació de rastres de retenció, MemLab agrupa tots els rastres de retenció i mostra un rastre per a cada grup d'objectes filtrats que comparteixen rastres de retenció similars. El seguiment també inclou informació de depuració, com a nodes dominadors i mides retingudes.
  6. Reportant les fugides, MemLab es pot executar en intervals regulars al llarg del dia per obtenir un senyal continu sobre les regressions de memòria. Qualsevol nova regressió s'afegeix a un tauler intern, on es recopilen i classifiquen els rastres de retenció agrupats de totes les fuites de memòria detectades. Després, els desenvolupadors poden fer clic i veure les propietats dels objectes al rastre de retenció de cada pèrdua de memòria.

Finalment si estàs interessat, has de saber que Memlab codi és de codi obert sota la llicència MIT i pots conèixer més sobre això en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.