Společnost Meta* oznámila obnovení vývoje knihovny pro správu paměti jemalloc, jejíž repozitář byl v červnu loňského roku převeden do archivačního režimu. Knihovna jemalloc nabízí alternativní implementaci funkcí malloc, optimalizovanou pro snížení fragmentace a běh na víceprocesorových systémech.
Bylo zaznamenáno, že společnost Meta si uvědomila výhody používání jemalloc ve své infrastruktuře a rozhodla se obnovit práci na kódu této knihovny za účelem snížení nákladů na údržbu, modernizace kódové základny, zbavení se technického dluhu a přizpůsobení alokátoru novým typům zátěže a současnému vybavení. Vývoj bude pokračovat formou otevřeného projektu, který bude společně rozvíjen s komunitou a vítá zapojení externích účastníků.
Knihovna jemalloc byla vyvinuta Jasonem Evansem v roce 2005 pro FreeBSD 7.0, poté byla portována do NetBSD a integrována do Firefoxu. V roce 2009 autor jemalloc přešel pracovat do společnosti Facebook, kde byla tato knihovna využívána v interních projektech. V roce 2017 Jason odešel z Facebooku a vývoj pokračoval zbylým týmem ve Facebooku. Po přejmenování na Meta se priority společnosti změnily, vývoj knihovny ustrnul a soustředil se pouze na vnitřní potřeby, zatímco veřejná kódová základna postupem času degradovala. K udržení veřejné knihovny v chodu bylo potřeba významného refaktoringu, ale Jason nebyl ochoten trávit svůj čas touto prací a proto před 10 měsíci převedl repozitář do archivačního režimu.
Mezi plány, které společnost Facebook zamýšlela realizovat po obnovení projektu, patří:
- Snížení nahromaděného technického dluhu, provedení refaktoringu a úklidu kódové základny, zlepšení knihovny pro zachování účinnosti, spolehlivosti a jednoduchosti použití.
- Pokračování vývoje alokátoru HPA (Huge-Page Allocator) pro optimalizaci spotřeby zdrojů CPU pomocí efektivnějšího využití velkých stránek paměti (transparent hugepage).
- Zavedení změn pro zvýšení efektivity práce s pamětí spojených s vylepšením balení struktur, cachování a čištění uvolněných bloků paměti.
- Přidání optimalizací pro architekturu AArch64 (ARM64).
Zdroj: opennet.ru
