Facebook hapi kodin e framework-ut për identifikimin e rrjedhjeve të memories në JavaScript

Kompania Facebook (e ndaluar në RF) bëri të disponueshëm kodin burimor të mjetit memlab, i destinuar për analizimin e kopjeve të gjendjes së memories dinamike (heaps), përcaktimin e strategjive të optimizimit të punës me memorien dhe identifikimin e rrjedhjeve të memories që ndodhin gjatë ekzekutimit të kodit në gjuhën JavaScript. Kodi është i hapur nën licencën MIT.

Framework-u është krijuar për të analizuar arsyet e konsumit të madh të memories gjatë punës me faqet web dhe aplikacionet web. Për shembull, me ndihmën e memlab është bërë analiza e konsumit të memories gjatë përdorimit të versionit të ri të faqes Facebook.com, e cila identifikoi rrjedhje që çuan në mbylljen e papritur të shfletuesit në anën e klientit për shkak të shterimit të memories së lirë.

Arsyet e rrjedhjeve tĂ« memories gjatĂ« ekzekutimit tĂ« kodit JavaScript mund tĂ« jenĂ« pranimi i lidhjeve tĂ« fshehura me objekte, pĂ«r shkak tĂ« tĂ« cilave mbledhĂ«si i mbeturinave nuk mund tĂ« lirojĂ« memorien e zĂ«nĂ« nga objekti, ruajtja e paarsyeshme e vlerave ose implementimi i rrotullimit tĂ« pafund pa largimin e elementeve tĂ« vjetra nga lista. PĂ«r shembull, nĂ« kodin e mĂ«poshtĂ«m nĂ« Chrome, ndodhin rrjedhje tĂ« memories pĂ«r shkak tĂ« objektit “obj”, megjithĂ«se i jepet vlera null, sepse Chrome ruan lidhje tĂ« brendshme me objektet e dukshme pĂ«r tĂ« mundĂ«suar inspektimin e tyre tĂ« mĂ«vonshĂ«m nĂ« konsolĂ«n web. var obj = {}; console.log(obj); obj = null;

Mundësitë kryesore të memlab:

  • Identifikimi i rrjedhjeve tĂ« memories nĂ« shfletues. Memlab lejon krahasimin automatik tĂ« kopjeve tĂ« gjendjes sĂ« memories dinamike, identifikimin e rrjedhjeve tĂ« memories dhe agregimin e rezultateve.
  • API objektor pĂ«r iterimin e heaps, qĂ« lejon implementimin e algoritmeve tĂ« veta pĂ«r identifikimin e rrjedhjeve dhe realizimin e sistemeve tĂ« analizĂ«s sĂ« kopjeve tĂ« gjendjes sĂ« heaps. Analiza e heaps mbĂ«shtetet pĂ«r shfletuesit e bazuar nĂ« motorin Chromium, si dhe pĂ«r platformat Node.js, Electron dhe Hermes.
  • NjĂ« ndĂ«rfaqe komandash dhe API pĂ«r gjetjen e mundĂ«sive pĂ«r optimizimin e pĂ«rdorimit tĂ« memories.
  • NjĂ« sistem assert-esh pĂ«r Node.js, i cili lejon krijimin e testeve unit dhe ekzekutimin e programeve bazuar nĂ« Node.js pĂ«r krijimin e kopjeve tĂ« gjendjes sĂ« vet, verifikimin e memories sĂ« saj ose shkruan provime tĂ« rozsishme assert.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster