Kompania Meta* njoftoi rifillimin e zhvillimit të bibliotekës së menaxhimit të memories jemalloc, depoja e së cilës në qershor të vitit të kaluar ishte kaluar në modalitet arkivimi. Biblioteka jemalloc ofron një implementim alternativ të funksioneve malloc, të optimizuar për të ulur fragmentimin dhe për punë në sisteme shumëprocesorike.
Theksohet se Meta i kuptoi përfitimet e përdorimit të jemalloc në infrastrukturën e saj dhe vendosi të rifillojë punën mbi kodin e kësaj biblioteke për të ulur kostot e mirëmbajtjes, për të modernizuar bazën e kodit, për të eliminuar borxhin teknik dhe për ta përshtatur allocator-in me lloje të reja ngarkesash dhe pajisje bashkëkohore. Zhvillimi do të vazhdojë si një projekt i hapur, i zhvilluar së bashku me komunitetin dhe i hapur për kontributet e pjesëmarrësve të jashtëm.
Biblioteka jemalloc u krijua nga Jason Evans në vitin 2005 për FreeBSD 7.0, pas së cilës u portua në NetBSD dhe u integrua në Firefox. Në vitin 2009, autori i jemalloc kaloi për të punuar në Facebook, ku kjo bibliotekë përdorej në projekte të brendshme. Në vitin 2017, Jason u largua nga Facebook dhe zhvillimi vazhdoi nga ekipi i mbetur në Facebook. Pas riemërtimit në Meta, prioritetet e kompanisë ndryshuan, zhvillimi i bibliotekës ngeci, puna u përqendrua vetëm te nevojat e brendshme dhe baza publike e kodit me kalimin e kohës u degradua. Për ta mbajtur në funksion bibliotekën publike kërkohej një refaktorim i konsiderueshëm, por Jason nuk ishte i gatshëm të shpenzonte kohën e tij për këtë punë dhe për këtë arsye, 10 muaj më parë, e kaloi depon në modalitet arkivimi.
Ndër planet që Facebook synon të realizojë pas ringjalljes së projektit janë:
- Ulja e borxhit teknik të akumuluar, kryerja e refaktorimit dhe pastrimit të bazës së kodit, si edhe përmirësimi i bibliotekës për të ruajtur efikasitetin, besueshmërinë dhe thjeshtësinë e përdorimit.
- Vazhdimi i zhvillimit të allocator-it HPA (Huge-Page Allocator) për të optimizuar konsumin e burimeve CPU përmes përdorimit më efikas të faqeve të mëdha të memories (transparent hugepage).
- Zbatimi i ndryshimeve për të rritur efikasitetin e punës me memorien, të lidhura me përmirësimin e paketimit të strukturave, caching dhe pastrimin e blloqeve të liruara të memories.
- Shtimi i optimizimeve për arkitekturën AArch64 (ARM64).
Burimi: opennet.ru
