Facebook te pibliye kòd sous memlab

facebook-memlab

MemLab se yon fondasyon pou jwenn fuites memwa JavaScript

Dènyèman nouvèl la te kraze sa Facebook te pran desizyon pou lage kòd sous la nan twous zouti a memlab, ki se fèt pou analize pòsyon eta memwa a atribye ba dinamik (pakèt), detèmine yon estrateji pou optimize travay la ak memwa epi detekte fuites memwa ki rive lè egzekite kòd JavaScript. 

Fondasyon an te kreye pou analize sa ki lakòz gwo konsomasyon memwa lè w ap travay ak sit entènèt ak aplikasyon entènèt. Pou egzanp, memlab te itilize pou analize konsomasyon memwa lè w ap itilize yon nouvo vèsyon nan sit Facebook.com, ki te revele fwit ki te lakòz yon aksidan navigatè bò kliyan akòz fatig memwa gratis.

Moun ki sèvi ak aplikasyon entènèt nou yo pral souvan remake pwoblèm pèfòmans ak koreksyon fonksyonèl touswit. Yon pèt memwa, sepandan, se yon istwa diferan. Li pa imedyatman aparan, paske li konsome yon moso nan memwa nan yon moman, ki afekte tout sesyon entènèt la epi ki fè entèraksyon ki vin apre yo pi dousman ak mwens reponn.

Pou ede devlopè nou yo rezoud pwoblèm sa a, nou te kreye MemLab , yon fondasyon tès memwa JavaScript ki otomatize deteksyon koule epi fè li fasil pou jwenn fuit memwa. Nou te itilize MemLab sou Meta avèk siksè genyen kwasans memwa ki pa dirab epi idantifye fwit memwa ak opòtinite optimize memwa nan pwodwi nou yo ak enfrastrikti.

Segondè itilizasyon memwa gen yon enpak estatistik enpòtan ak negatif sou chaj paj ak pèfòmans entèraksyon (konbyen tan li pran pou chaje yon paj oswa fè yon entèraksyon)
Paramèt angajman itilizatè (itilizatè aktif, tan pase sou sit, kantite aktivite ki fèt)

Kòz yo nan fwit memwa lè w ap egzekite kòd JavaScript ka prezans nan referans objè kache, se konsa Pèseptè fatra pa ka libere memwa okipe pa objè a, kachèt ki pa rezonab nan valè, oswa mete ann aplikasyon woulo enfini san yo pa degèpi ansyen atik lis yo.

Pa egzanp, nan kòd Chrome sa a, koule memwa a rive akòz objè "obj" la, menmsi li se nil, paske Chrome kenbe referans entèn nan objè yo rann pou pèmèt yo enspekte pita nan konsole entènèt la.

Operasyon debaz Memlab, se sa ki annapre yo:

  1. Li fè deteksyon fuit memwa nan navigatè a an premye, Memlab pèmèt ou otomatikman konpare snapshots memwa dinamik, detekte fwit memwa, ak rezilta total.
  2. Yon API travèse pil ki oryante sou objè ki pèmèt ou aplike pwòp algoritm deteksyon fwit ou yo epi aplike sistèm pou analize snapshots pil. Analiz pil yo sipòte pou navigatè ki baze sou motè Chromium, ansanm ak platfòm Node.js, Electron ak Hermes.
  3. Koòdone liy kòmand ak API pou jwenn opòtinite pou optimize itilizasyon memwa.
  4. Yon sistèm afimasyon pou Node.js ki pèmèt ou kreye tès inite epi kouri pwogram ki baze sou Node.js pou divize pwòp eta ou, teste memwa ou oswa ekri deklarasyon avanse.
  5. Gwoup tras retansyon, MemLab gwoupe tout tras retansyon ansanm epi montre yon tras pou chak gwoup objè filtre ki pataje tras retansyon menm jan an. Tras la gen ladan tou enfòmasyon debogaj tankou nœuds domine ak gwosè kenbe.
  6. Lè yo rapòte fwit, MemLab ka kouri nan entèval regilye pandan tout jounen an pou jwenn yon siyal kontinyèl sou regression memwa. Nenpòt nouvo regression yo ajoute nan yon tablodbò entèn, kote yo kolekte epi klase tras retansyon yo nan tout fwit memwa detekte yo. Lè sa a, devlopè yo ka klike sou epi wè pwopriyete objè nan tras la kenbe pou chak koule memwa.

Finalman si w enterese, ou ta dwe konnen ke kòd Memlab se sous louvri anba lisans MIT la epi ou ka aprann plis sou li Nan lyen sa a.


Kontni an nan atik la respekte prensip nou yo nan etik editoryal. Pou rapòte yon erè klike sou isit la.

Se pou premye a fè kòmantè

Kite kòmantè ou

Adrès imèl ou pa pral dwe pibliye.

*

*

  1. Responsab pou done yo: Miguel Ángel Gatón
  2. Objektif done yo: Kontwòl SPAM, jesyon kòmantè.
  3. Lejitimasyon: konsantman ou
  4. Kominikasyon nan done yo: done yo pa pral kominike bay twazyèm pati eksepte pa obligasyon legal.
  5. Done depo: baz done anime pa rezo Occentus (Inyon Ewopeyen)
  6. Dwa: Nenpòt ki lè ou ka limite, refè ak efase enfòmasyon ou yo.