Objavljena biblioteka za upravljanje memorijom jemalloc 5.3

Objavljena je različica knjižnice za upravljanje pomnilnikom jemalloc 5.4.0, ki ponuja alternativno implementacijo funkcij malloc, optimizirano za zmanjšanje fragmentacije in delovanje na večprocesorskih sistemih. Za reševanje težav z blokadami na večjedrnih sistemih jemalloc uporablja ločeno območje za dodeljevanje pomnilnika za vsak CPU, kar omogoča linearno razširljivost s povečanjem števila niti.

Junija 2025 je avtor projekta prenehal s podporo in preučil repozitorij jemalloc v arhivski način, vendar je marca letos podjetje Meta ponovno začelo z razvojem, ker jemalloc uporablja v svoji infrastrukturi. Knjižnica je bila prvotno razvita za FreeBSD in se v tej operacijski sistem uporablja privzeto od leta 2005. Koda knjižnice je napisana v jeziku C in je distribuirana pod licenco BSD.

Med spremembami:

  • Poenostavljena je logika polnjenja in ponastavitve tcache (Thread Local Cache) ter upravljanje dodeljevanja pomnilnika.
  • Unified Pages Allocators PAC (Page Allocator Classic) in HPA (Huge Page Allocator). Odstranjen je zapleten mehanizem posrednih klicev prek vtable (PAI vtable).
  • Za poenostavitev vzdrževanja in širjenja platform so vse operacije, odvisne od platforme, premaknjene v ločene glave.
  • Poenostavljeno je upravljanje ukazov mallctl ter ponovno zasnovana infrastruktura za generiranje in izhod statistike.
  • Dodana je zastavica EXTENT_ALLOC_FLAG_PINNED, ki omogoča označevanje neodstranljivih območij za mapiranje pomnilnika, kot so naslovi HugeTLB, za prednostno ponovno uporabo. Za pridobitev statistike o uporabi fiksnega pomnilnika so dodani novi vmesniki mallctl: stats.pinned, stats.arenas.<i>.pinned, stats.arenas.<i>.extents.<j>.npinned, stats.arenas.<i>.extents..pinned_bytes in stats.arenas.<i>.mutexes.extents_pinned.{counter}.
  • Sinhronizirane so vsebine statistike malloc v berljivem in JSON formatu.
  • Odstranjeni so zastareli 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 in lg_tcache_flush_large_div.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster