Meta* har meddelat att de Äterupptar utvecklingen av minneshanteringsbiblioteket jemalloc, vars repository arkiverades i juni förra Äret. Jemalloc-biblioteket erbjuder en alternativ implementering av malloc-funktioner, optimerad för att minska fragmentering och fungera pÄ flerprocessor-system.
Det pÄpekas att Meta har insett fördelarna med att anvÀnda jemalloc i sin infrastruktur och har beslutat att Äteruppta arbetet med koden för detta bibliotek för att minska kostnaderna för underhÄll, modernisering av kodbasen, eliminering av teknisk skuld och anpassning av allokeraren för nya typer av belastning och aktuell hÄrdvara. Utvecklingen kommer att fortsÀtta som ett öppet projekt som utvecklas tillsammans med communityt och vÀlkomnar deltagande frÄn externa parter.
Jemalloc-biblioteket utvecklades av Jason Evans 2005 för FreeBSD 7.0, och portades sedan till NetBSD och integrerades i Firefox. à r 2009 började skaparen av jemalloc arbeta för Facebook, dÀr detta bibliotek anvÀndes i interna projekt. à r 2017 lÀmnade Jason Facebook, och utvecklingen fortsattes av det kvarvarande teamet frÄn Facebook. Efter omdöpt till Meta förÀndrades företagets prioriteringar, utvecklingen av biblioteket stoppades, och arbetet fokuserades endast pÄ interna behov, medan den offentliga kodbasen med tiden försÀmrades. För att hÄlla den offentliga biblioteket flytande krÀvdes en betydande omarbetning, men Jason var inte beredd att lÀgga tid pÄ detta arbete och dÀrför arkiverade han repositoryt för 10 mÄnader sedan.
Bland de planer som Facebook har avsett att genomföra efter Äteruppvaknandet av projektet:
- Minska den tekniska skulden, genomföra refaktorering och rengöring av kodbasen, förbÀttra biblioteket för att sÀkerstÀlla effektivitet, tillförlitlighet och anvÀndarvÀnlighet.
- Fortsatt utveckling av HPA (Huge-Page Allocator) för att optimera CPU-resursanvÀndning genom mer effektiv anvÀndning av stora minnessidor (transparent hugepage).
- Ăndringar för att öka effektiviteten i minneshantering relaterade till förbĂ€ttrad strukturpackning, cache och rensning av frigjorda minnesblock.
- TillÀgg av optimeringar för AArch64-arkitektur (ARM64).
KĂ€lla: opennet.ru
