A Facebook a JavaScript memórialeak-elemző keretrendszer kódját nyilvánosságra hozta.

A Facebook (tiltott Oroszországban) közzétette a memlab eszközkészlet forráskódját, amelynek célja a dinamikusan elosztott memória (halom) állapotának elemzése, a memóriahasználat optimalizálási stratégiáinak meghatározása és a memória-leak-ek azonosítása, amelyek a JavaScript kód futtatása során fordulnak elő. A kód MIT licenc alatt érhető el.

A keretrendszert arra fejlesztették ki, hogy feltárja a jelentős memóriafogyasztás okait weboldalak és webalkalmazások használata során. Például a memlab segítségével elemezték a Facebook.com új verziója által generált memóriafogyasztást, amely lehetővé tette a memória-leak-ek azonosítását, amelyek a böngésző kliensoldali összeomlásához vezettek a szabad memória kimerülése miatt.

A JavaScript kódexek memória-leak-jeinek okai közé tartozhatnak a rejtett objektum-hivatkozások, amelyek miatt a szemétgyűjtő nem tudja felszabadítani az objektum által használt memóriát, a nem ésszerű értékek gyorsítótárazása, vagy az öreg listaelemek kiszorítása nélküli végtelen görgetés implementációja. Például az alábbi kód esetében a Chrome-ban memória-leak lép fel az "obj" objektum miatt, annak ellenére, hogy null értéket kap, mivel a Chrome megőrzi a megjelenített objektumok belső hivatkozásait, hogy lehetővé tegye az azok későbbi ellenőrzését a webkonzolon. var obj = {}; console.log(obj); obj = null;

A memlab fő jellemzői:

  • Memória-leak-ek azonosítása a böngészőben. A memlab automatikusan összehasonlítja a dinamikus memória állapotfelvételeit, azonosítja a memória-leak-eket és aggregálja az eredményeket.
  • Objektum-orientált API a halom bejárásához, amely lehetővé teszi saját memória-leak azonosító algoritmusok és a halom állapotfelvételeinek elemzési rendszereinek implementálását. A halomelemzés támogatott a Chromium alapú böngészők, valamint a Node.js, Electron és Hermes platformok számára.
  • Parancssori felület és API a memóriahasználat optimalizálásának lehetőségeinek keresésére.
  • Assert rendszer Node.js-hez, amely lehetővé teszi egységtesztek készítését és Node.js alapú programok futtatását a saját állapotának felmérésére, memóriájának ellenőrzésére vagy kiterjesztett assert ellenőrzések írására.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster