Bol zverejnený release knižnice na správu pamäte jemalloc 5.4.0, ktorá ponúka alternatívnu implementáciu funkcionality malloc, optimalizovanú na zníženie fragmentácie a fungovanie na viacprocesorových systémoch. Na riešenie problémov s blokovaním na viacerých jadrách používa jemalloc pre každé CPU jadro svoju izolovanú oblasť alokácie pamäte, čo umožňuje dosiahnuť lineárnu škálovateľnosť s rastúcim počtom vlákien.
V júni 2025 autor projektu prestal projekt podporovať a preložil repozitár jemalloc do archívneho režimu, no v marci tohto roka obnovila vývoj spoločnosť Meta, ktorá využíva jemalloc vo svojej infraštruktúre. Knižnica bola pôvodne vyvinutá pre FreeBSD a od roku 2005 sa v tejto OS používa ako predvolená. Kód knižnice je napísaný v jazyku C a šíri sa pod licenciou BSD.
Medzi zmenami:
- Zjednodušená logika plnenia a vyprázdňovania tcache (Thread Local Cache), ako aj spravovanie alokácií pamäte.
- Zjednotené alokátory strán pamäte PAC (Page Allocator Classic) a HPA (Huge Page Allocator). Odstránený bol komplikovaný mechanizmus nepriamych volaní cez vtable (PAI vtable).
- Pre zjednodušenie údržby a rozšírenia platforiem boli všetky platformovo závislé operácie presunuté do samostatných hlavičkových súborov.
- Zjednodušená správa príkazov mallctl, ako aj prepracovaná infraštruktúra generovania a výstupu štatistík.
- Pridaná vlajka EXTENT_ALLOC_FLAG_PINNED, ktorá umožňuje označovať nevytláčateľné oblasti mapovania pamäte, ako sú stránky HugeTLB, na ich prioritné opätovné využitie. Pre získanie štatistík o používaní priľnutej pamäte boli pridané nové rozhrania mallctl: stats.pinned, stats.arenas..pinned, stats.arenas..extents..npinned, stats.arenas..extents..pinned_bytes a stats.arenas..mutexes.extents_pinned.{counter}.
- Synchronizovaný obsah štatistík malloc vo čitateľných a JSON formátoch.
- Odstránené zastarané parametre lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div a lg_tcache_flush_large_div.
Zdroj: opennet.ru
