Facebook publikoi kodin burimor të memlab

facebook-memlab

MemLab është një kornizë për gjetjen e rrjedhjeve të kujtesës JavaScript

Kohët e fundit lajmi dha se Facebook ka marrë vendimin për të nxjerrë kodin burim të kompletit të mjeteve memlab, e cila është projektuar për të analizuar pjesë të gjendjes së kujtesës ndahet në mënyrë dinamike (grumbull), përcaktoni një strategji për të optimizuar punën me kujtesën dhe për të zbuluar rrjedhjet e kujtesës që ndodhin kur ekzekutimi i kodit JavaScript. 

Kuadri u krijua për të analizuar shkaqet e konsumit të lartë të memories kur punoni me faqet e internetit dhe aplikacionet në internet. Për shembull, memlab u përdor për të analizuar konsumin e kujtesës kur përdor një version të ri të faqes Facebook.com, i cili zbuloi rrjedhje që shkaktuan një përplasje të shfletuesit nga ana e klientit për shkak të rraskapitjes së memories së lirë.

Njerëzit që përdorin aplikacionet tona të uebit shpesh do të vërejnë problemet e performancës dhe rregullimet funksionale menjëherë. Humbja e kujtesës, megjithatë, është një histori tjetër. Nuk vërehet menjëherë, sepse konsumon një pjesë të memories në të njëjtën kohë, duke ndikuar në të gjithë sesionin e internetit dhe duke i bërë ndërveprimet e mëvonshme më të ngadalta dhe më pak të përgjegjshme.

Për të ndihmuar zhvilluesit tanë të adresojnë këtë, ne krijuam MemLab, një kornizë testimi memorie JavaScript që automatizon zbulimin e rrjedhjeve dhe e bën të lehtë gjetjen e rrjedhjeve të kujtesës. Ne kemi përdorur MemLab në Meta për të përmbajtur me sukses rritjen e paqëndrueshme të kujtesës dhe për të identifikuar rrjedhjet e kujtesës dhe mundësitë e optimizimit të kujtesës në produktet dhe infrastrukturën tonë.

Përdorimi i lartë i kujtesës ka një ndikim statistikisht të rëndësishëm dhe negativ në ngarkesën e faqes dhe performancën e ndërveprimit (sa kohë duhet për të ngarkuar një faqe ose për të kryer një ndërveprim)
Metrikat e angazhimit të përdoruesve (përdoruesit aktivë, koha e kaluar në sit, numri i aktiviteteve të kryera)

Shkaqet e rrjedhjeve të kujtesës kur ekzekutoni kodin JavaScript mund të jetë prania e referencave të objekteve të fshehura, kështu mbledhësi i mbeturinave nuk mund të çlirojë kujtesën i zënë nga objekti, ruajtja e paarsyeshme e vlerave ose zbatimi i një rrotullimi të pafund pa nxjerrë artikujt e vjetër të listës.

Për shembull, në kodin e mëposhtëm të Chrome, rrjedhja e kujtesës ndodh për shkak të objektit "obj", edhe pse është vendosur në null, sepse Chrome ruan referenca të brendshme për objektet e paraqitura për t'i lejuar ato të inspektohen më vonë në tastierën e uebit.

Funksionimi bazë i Memlab, është në vijim:

  1. Së pari bën zbulimin e rrjedhjeve të kujtesës në shfletues, Memlab ju lejon të krahasoni automatikisht fotografitë dinamike të kujtesës, të zbuloni rrjedhjet e kujtesës dhe të grumbulloni rezultatet.
  2. Një API për kalimin e grumbullit të orientuar nga objekti që ju lejon të zbatoni algoritmet tuaja të zbulimit të rrjedhjeve dhe të zbatoni sisteme për analizimin e fotografive të çastit të grumbullit. Analizimi i grumbullit mbështetet për shfletuesit e bazuar në motorin Chromium, si dhe për platformat Node.js, Electron dhe Hermes.
  3. Ndërfaqja e linjës së komandës dhe API për të gjetur mundësi për të optimizuar përdorimin e kujtesës.
  4. Një sistem pohimi për Node.js që ju lejon të krijoni teste njësie dhe të ekzekutoni programe të bazuara në Node.js për të ndarë gjendjen tuaj, për të testuar kujtesën tuaj ose për të shkruar pohime të avancuara.
  5. Grupimi i gjurmëve të mbajtjes, MemLab grupon të gjitha gjurmët e mbajtjes së bashku dhe shfaq një gjurmë për secilin grup objektesh të filtruara që ndajnë gjurmë të ngjashme mbajtjeje. Gjurma përfshin gjithashtu informacione për korrigjimin e gabimeve siç janë nyjet mbizotëruese dhe madhësitë e ruajtura.
  6. Duke raportuar rrjedhje, MemLab mund të ekzekutohet në intervale të rregullta gjatë gjithë ditës për të marrë një sinjal të vazhdueshëm në lidhje me regresionet e kujtesës. Çdo regresion i ri shtohet në një panel kontrolli të brendshëm, ku grumbullohen dhe klasifikohen gjurmët e grumbulluara të të gjitha rrjedhjeve të zbuluara të kujtesës. Zhvilluesit më pas mund të klikojnë dhe të shikojnë vetitë e objektit në gjurmën e mbajtjes për çdo rrjedhje memorie.

Më në fund nëse jeni të interesuar, duhet të dini se kodi Memlab është me burim të hapur nën licencën MIT dhe mund të mësoni më shumë rreth tij Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.