Avaldati mäluhaldusteegi jemalloc 5.4.0 väljalase, mis pakub malloc-funktsioonide alternatiivset teostust, mis on optimeeritud killustumise vähendamiseks ja tööks mitmeprotsessorilistes süsteemides. Lukustustega seotud probleemide lahendamiseks mitmetuumalistes süsteemides kasutab jemalloc iga CPU tuuma jaoks eraldi isoleeritud mälueraldusala, mis võimaldab saavutada lõimearvu kasvades lineaarse skaleeruvuse.
2025. aasta juunis lõpetas projekti autor hoolduse ja viis jemalloci hoidla arhiivirežiimi, kuid tänavu märtsis taaskäivitas arenduse ettevõte Meta, kes kasutab jemalloci oma infrastruktuuris. Algselt töötati teek välja FreeBSD jaoks ning selles operatsioonisüsteemis on see vaikimisi kasutusel alates 2005. aastast. Teegi kood on kirjutatud C-keeles ja seda levitatakse BSD litsentsi alusel.
Muudatuste seas:
- Lihtsustati tcache'i (Thread Local Cache) täitmise ja tühjendamise loogikat ning mälueralduse suunamist.
- Ühtlustati mälulehtede eraldajad PAC (Page Allocator Classic) ja HPA (Huge Page Allocator). Eemaldati keerukas kaudsete väljakutsete mehhanism vtable'i kaudu (PAI vtable).
- Hoolduse lihtsustamiseks ja platvormide toe laiendamiseks viidi kõik platvormispetsiifilised toimingud eraldi päisefailidesse.
- Lihtsustati mallctl-käskude suunamist ning uuendati statistika genereerimise ja väljastamise taristut.
- Lisati lipp EXTENT_ALLOC_FLAG_PINNED, mis võimaldab märkida mitteväljatõrjutavaid mälu kaardistamise alasid, näiteks HugeTLB lehti, et neid eelistatult uuesti kasutada. Kinnitatud mälu kasutuse statistika saamiseks lisati uued mallctl-liidesed: stats.pinned, stats.arenas..pinned, stats.arenas..extents..npinned, stats.arenas..extents..pinned_bytes ja stats.arenas..mutexes.extents_pinned.{counter} .
- malloci statistika sisu viidi kooskõlla loetavas ja JSON-vormingus.
- Eemaldati aegunud parameetrid lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div ja lg_tcache_flush_large_div.
Allikas: opennet.ru
