Kompanija Meta* shpalli rifillimin e zhvillimit të bibliotekës së menaxhimit të memories jemalloc, e cila u arkivua në qershor të vitit të kaluar. Biblioteka jemalloc ofron një implementim alternativ të funksioneve malloc, të optimizuara për të reduktuar fragmentimin dhe për të funksionuar në sisteme me shumë procesorë.
ĂshtĂ« e dukshme se kompania Meta ka njohur pĂ«rfitimet e pĂ«rdorimit tĂ« jemalloc nĂ« infrastrukturĂ«n e saj dhe ka vendosur tĂ« rifillojĂ« punĂ«n mbi kodin e kĂ«saj biblioteke pĂ«r tĂ« ulur kostot e mbĂ«shtetjes, pĂ«rmirĂ«simin e kodit ekzistues, pĂ«r tĂ« eliminuar borxhin teknik dhe pĂ«r tĂ« adaptuar alokatorin pĂ«r lloje tĂ« reja ngarkese dhe pajisje aktuale. Zhvillimi do tĂ« vazhdojĂ« nĂ« formĂ«n e njĂ« projekti tĂ« hapur, tĂ« zhvilluar nĂ« bashkĂ«punim me komunitetin dhe do tĂ« mirĂ«presĂ« pjesĂ«marrjen e palĂ«ve tĂ« treta.
Biblioteka jemalloc u zhvillua nga Jason Evans në vitin 2005 për FreeBSD 7.0, dhe më pas u portua në NetBSD dhe u integrua në Firefox. Në vitin 2009, autori i jemalloc kaloi në punë në Facebook, ku kjo bibliotekë u përdor në projekte të brendshme. Në vitin 2017, Jason u largua nga Facebook, dhe zhvillimi u vazhdua nga ekipi i mbetur në Facebook. Pas ribërjes si Meta, prioritetet e kompanisë ndryshuan, zhvillimi i bibliotekës u ndal dhe u përqendrua vetëm në nevojat e brendshme, ndërsa kodi publik me kalimin e kohës degradoi. Për të mbajtur bibliotekën publike në lëvizje, nevojitej një refaktorizim i konsiderueshëm, por Jason nuk ishte i gatshëm të shpenzonte kohën e tij për këtë punë dhe prandaj 10 muaj më parë e arkivoi repositorin.
Disa nga planet që kompania Facebook kishte parashikuar të realizonte pas ringjalljes së projektit janë:
- Reduktimi i borxhit teknik të akumuluar, zhvillimi i refaktorizimit dhe pastrimi i bazës së kodit, përmirësimi i bibliotekës për të ruajtur efikasitetin, besueshmërinë dhe lehtësinë e përdorimit.
- Vazhdim i zhvillimit të alokatorit HPA (Huge-Page Allocator) për optimizimin e konsumit të burimeve të CPU-së përmes përdorimit më efikas të faqeve të mëdha të memories (transparent hugepage).
- Blerja e ndryshimeve për rritjen e efikasitetit në punën me memorien, që lidhen me përmirësimin e paketimit të strukturave, caching dhe pastrimin e bllokëve të lirë të memories.
- Shtimi i optimizimeve për arkitekturën AArch64 (ARM64).
Burimi: opennet.ru
