Inilabas ng Facebook ang source code ng memlab

facebook-memlab

Ang MemLab ay isang framework para sa paghahanap ng JavaScript memory leaks

Kamakailan-lamang na ang balita ay sinira iyon Nagpasya ang Facebook na ilabas ang source code ng tool kit memlab, na kung saan ay idinisenyo upang pag-aralan ang mga bahagi ng estado ng memorya dynamically allocated (heap), tumukoy ng diskarte para ma-optimize ang trabaho gamit ang memory at makita ang mga memory leaks na nangyayari kapag pagpapatupad ng JavaScript code. 

Ang frame ay nilikha upang pag-aralan ang mga sanhi ng mataas na pagkonsumo ng memorya kapag nagtatrabaho sa mga website at web application. Halimbawa, ginamit ang memlab upang suriin ang pagkonsumo ng memorya kapag gumagamit ng bagong bersyon ng Facebook.com site, na nagsiwalat ng mga paglabas na nagdulot ng pag-crash ng browser sa panig ng kliyente dahil sa pagkaubos ng libreng memorya.

Ang mga taong gumagamit ng aming mga web application ay madalas na makapansin ng mga isyu sa pagganap at pag-aayos sa pagganap kaagad. Ang pagkawala ng memorya, gayunpaman, ay ibang kuwento. Hindi ito agad napapansin, dahil nakakakonsumo ito ng isang tipak ng memory sa isang pagkakataon, na nakakaapekto sa buong web session at ginagawang mas mabagal at hindi gaanong tumutugon ang mga kasunod na pakikipag-ugnayan.

Upang matulungan ang aming mga developer na tugunan ito, gumawa kami ng MemLab , isang JavaScript memory testing framework na nag-o-automate ng leak detection at ginagawang madali ang paghahanap ng mga memory leaks. Ginamit namin ang MemLab sa Meta upang matagumpay na maglaman ng hindi napapanatiling paglaki ng memorya at tukuyin ang mga pagtagas ng memorya at mga pagkakataon sa pag-optimize ng memorya sa aming mga produkto at imprastraktura.

Ang paggamit ng mataas na memorya ay may makabuluhang istatistika at negatibong epekto sa pag-load ng pahina at pagganap ng pakikipag-ugnayan (gaano katagal bago mag-load ng page o magsagawa ng pakikipag-ugnayan)
Mga sukatan ng pakikipag-ugnayan ng user (mga aktibong user, oras na ginugol sa site, bilang ng mga aktibidad na ginawa)

Ang mga sanhi ng pagtagas ng memorya kapag nag-execute ng JavaScript code maaaring ang pagkakaroon ng mga nakatagong object reference, kaya basurero ay hindi maaaring magbakante ng memorya inookupahan ng bagay, hindi makatwirang pag-cache ng mga halaga, o pagpapatupad ng walang katapusang scroll nang hindi inaalis ang mga lumang item sa listahan.

Halimbawa, sa sumusunod na code ng Chrome, nangyayari ang memory leak dahil sa object na "obj", kahit na nakatakda ito sa null, dahil pinapanatili ng Chrome ang mga panloob na sanggunian sa mga na-render na object upang payagan silang ma-inspeksyon sa ibang pagkakataon sa web console.

Ang pangunahing operasyon ng Memlab, ay ang mga sumusunod:

  1. Ginagawa muna nito ang pagtuklas ng memory leak sa browser, pinapayagan ka ng Memlab na awtomatikong ihambing ang mga dynamic na snapshot ng memorya, makita ang mga pagtagas ng memorya, at pinagsama-samang mga resulta.
  2. Isang object-oriented na heap traversal API na nagbibigay-daan sa iyong ipatupad ang sarili mong mga algorithm sa pag-detect ng pagtagas at ipatupad ang mga system para sa pag-parse ng mga snapshot ng heap. Sinusuportahan ang heap parsing para sa mga browser batay sa Chromium engine, gayundin para sa mga platform ng Node.js, Electron, at Hermes.
  3. Command line interface at API para makahanap ng mga pagkakataon para ma-optimize ang paggamit ng memory.
  4. Isang assertion system para sa Node.js na nagbibigay-daan sa iyong lumikha ng mga unit test at magpatakbo ng mga program na nakabatay sa Node.js upang hatiin ang sarili mong estado, subukan ang iyong memorya, o magsulat ng mga advanced na assertion.
  5. Pagpapangkat ng retention trace, pinagsama-sama ng MemLab ang lahat ng retention trace at nagpapakita ng trace para sa bawat grupo ng mga na-filter na bagay na nagbabahagi ng mga katulad na retention trace. Kasama rin sa trace ang impormasyon sa pag-debug tulad ng mga nangingibabaw na node at mga nananatiling laki.
  6. Sa pamamagitan ng pag-uulat ng mga pagtagas, ang MemLab ay maaaring patakbuhin sa mga regular na pagitan sa buong araw upang makakuha ng tuluy-tuloy na signal tungkol sa mga regression ng memorya. Ang anumang mga bagong regression ay idinaragdag sa isang panloob na dashboard, kung saan kinokolekta at inuuri ang pinagsama-samang mga bakas ng pagpapanatili ng lahat ng nakitang pagtagas ng memorya. Maaaring i-click at tingnan ng mga developer ang mga property ng object sa hold trace para sa bawat memory leak.

Sa wakas kung interesado ka, dapat mong malaman na ang Memlab code ay open source sa ilalim ng lisensya ng MIT at maaari kang matuto nang higit pa tungkol dito Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.