Facebook har slÀppt koden för ramverket för att upptÀcka minneslÀckor i JavaScript

Företaget Facebook (förbjudet i RF) har slÀppt kÀllkoden för verktyget memlab, som Àr avsett för att analysera tillstÄndet hos dynamiskt fördelat minne (heap), bestÀmma strategier för att optimera minnesanvÀndning och identifiera minneslÀckor som uppstÄr vid körning av kod skriven i JavaScript. Koden Àr öppen under MIT-licensen.

Ramen skapades för att granska orsakerna till hög minnesanvÀndning vid arbete med webbplatser och webbapplikationer. Till exempel genomfördes en analys av minnesanvÀndningen vid anvÀndning av den nya versionen av Facebook.com med hjÀlp av memlab, vilket ledde till att man upptÀckte minneslÀckor som orsakade att webblÀsaren pÄ klientsidan kraschade pÄ grund av brist pÄ ledigt minne.

Orsakerna till minneslÀckor vid körning av JavaScript-kod kan vara förekomsten av dolda referenser till objekt, vilket gör att skrÀpsamlaren inte kan frigöra minne som upptas av objektet, oklokt cachande av vÀrden eller implementering av oÀndlig scrollbar utan att ta bort gamla element frÄn listan. Till exempel i nedanstÄende kod uppstÄr en minneslÀcka i Chrome pÄ grund av objektet 'obj', trots att det tilldelas vÀrdet null, eftersom Chrome sparar interna referenser till de visade objekten för att möjliggöra senare inspektion i webbkonsolen. var obj = {}; console.log(obj); obj = null;

Huvudfunktioner i memlab:

  • Identifiering av minneslĂ€ckor i webblĂ€saren. Memlab gör det möjligt att automatiskt jĂ€mföra snapshots av dynamiskt minnestillstĂ„nd, identifiera minneslĂ€ckor och aggregat resultat.
  • Objektorienterat API för att iterera över heapen, vilket möjliggör implementering av egna algoritmer för att upptĂ€cka lĂ€ckor och genomföra analys av heap-snapshots. Heap-analys stöds för webblĂ€sare baserade pĂ„ Chromium-motorn, samt för plattformar som Node.js, Electron och Hermes.
  • KommandoradsgrĂ€nssnitt och API för att finna möjligheter att optimera minnesanvĂ€ndning.
  • Ett pĂ„stĂ„endesystem för Node.js, som gör det möjligt att skapa enhetstester och köra program baserade pĂ„ Node.js för att skapa snapshots av eget tillstĂ„nd, kontrollera sitt minne eller skriva avancerade pĂ„stĂ„ende- kontroller.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster