Objavljena je verzija 5.4.0 biblioteke za upravljanje memorijom jemalloc. Nudi alternativnu implementaciju malloc funkcija optimizovanu za smanjenje fragmentacije i pokretanje na višeprocesorskim sistemima. Da bi se riješili problemi zaključavanja na višejezgrenim sistemima, jemalloc koristi vlastito izolovano područje za alokaciju memorije za svaku jezgru CPU-a, omogućavajući linearnu skalabilnost kako se broj niti povećava.
U junu 2025. godine, autor projekta je prekinuo održavanje i premjestio jemalloc repozitorij u arhivski način rada, ali u martu ove godine, razvoj je nastavila kompanija Meta, koja koristi jemalloc u svojoj infrastrukturi. Biblioteka je prvobitno razvijena za FreeBSD i koristi se po defaultu na ovom operativnom sistemu od 2005. godine. Kod biblioteke je napisan u C-u i distribuiran pod BSD licencom.
Među promjenama:
- Logika za popunjavanje i brisanje tcache-a (Thread Local Cache-a), kao i raspoređivanje alokacije memorije, je pojednostavljena.
- Alokatori memorijskih stranica Page Allocator Classic (PAC) i HPA (Huge Page Allocator) su ujedinjeni. Uklonjen je složeni mehanizam indirektnih poziva putem vtable (PAI vtable).
- Radi pojednostavljenja održavanja i proširenja platforme, sve operacije zavisne od platforme premještaju se u odvojene zaglavne datoteke.
- Slanje mallctl komandi je pojednostavljeno, a infrastruktura za generisanje i prikazivanje statistike je redizajnirana.
- Dodana je zastavica EXTENT_ALLOC_FLAG_PINNED, koja omogućava označavanje nepreuzimljivih regija mapiranja memorije, kao što su HugeTLB stranice, za prioritetnu ponovnu upotrebu. Dodani su novi mallctl interfejsi za dobijanje statistike korištenja zakačene memorije: stats.pinned, stats.arenas..pinned
- Sinhronizovani sadržaj statistike malloc-a u ljudski čitljivom i JSON formatu.
- Uklonjeni su zastarjeli parametri lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div i lg_tcache_flush_large_div.
izvor: opennet.ru
