Bola vydaná verzia 5.4.0 knižnice na správu pamäte jemalloc. Ponúka alternatívnu implementáciu funkcií malloc optimalizovaných na zníženie fragmentácie a spustenie na viacprocesorových systémoch. Na riešenie problémov so zamykaním na viacjadrových systémoch používa jemalloc vlastnú izolovanú oblasť alokácie pamäte pre každé jadro CPU, čo umožňuje lineárnu škálovateľnosť so zvyšujúcim sa počtom vlákien.
V júni 2025 autor projektu ukončil údržbu a presunul repozitár jemalloc do archívneho režimu, ale v marci tohto roku vývoj obnovila spoločnosť Meta, ktorá vo svojej infraštruktúre používa jemalloc. Knižnica bola pôvodne vyvinutá pre FreeBSD a v tomto operačnom systéme sa štandardne používa od roku 2005. Kód knižnice je napísaný v jazyku C a distribuovaný pod licenciou BSD.
Medzi zmenami:
- Logika plnenia a mazania vyrovnávacej pamäte tcache (Thread Local Cache), ako aj alokácie pamäte, bola zjednodušená.
- Alokátory pamäťových stránok Page Allocator Classic (PAC) a HPA (Huge Page Allocator) boli zjednotené. Zložitý mechanizmus nepriamych volaní cez vtable (PAI vtable) bol odstránený.
- Pre zjednodušenie údržby a rozširovania platformy sa všetky operácie závislé od platformy presúvajú do samostatných hlavičkových súborov.
- Odosielanie príkazov mallctl bolo zjednodušené a infraštruktúra na generovanie a zobrazovanie štatistík bola prepracovaná.
- Bol pridaný príznak EXTENT_ALLOC_FLAG_PINNED, ktorý umožňuje označiť neprepínateľné oblasti mapovania pamäte, ako napríklad stránky HugeTLB, na prioritné opätovné použitie. Boli pridané nové rozhrania mallctl na získanie pripnutých štatistík využitia pamäte: stats.pinned, stats.arenas..pinned
- Synchronizovaný obsah štatistík malloc v čitateľnom formáte a formáte JSON.
- 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
