Biblioteket til hukommelsesstyring jemalloc 5.3 er offentliggjort

Udgivelsen af biblioteket til hukommelsesstyring jemalloc 5.4.0 introducerer en alternativ implementering af malloc-funktionerne, optimeret til at reducere fragmentering og fungere på multiprocessorsystemer. For at løse problemer med låsning på flerkernet systemer benytter jemalloc en isoleret hukommelsesallokeringszone for hver CPU-kerne, hvilket muliggør lineær skalerbarhed, når antallet af tråde vokser.

I juni 2025 stoppede projektforfatteren vedligeholdelsen og overførte jemalloc-repositoriet til arkivtilstand, men i marts i år genoptog Meta-virksomheden udviklingen, som anvender jemalloc i sin infrastruktur. Biblioteket blev oprindeligt udviklet til FreeBSD og anvendes i denne OS som standard siden 2005. Koden til biblioteket er skrevet i C og distribueres under BSD-licensen.

Blandt ændringerne:

  • Logikken bag udfyldning og nulstilling af tcache (Thread Local Cache) samt håndtering af hukommelsesallokering er forenklet.
  • Hukommelsessiderallocators PAC (Page Allocator Classic) og HPA (Huge Page Allocator) er blevet ensrettet. Den komplicerede mekanisme til indirekte opkald gennem vtable (PAI vtable) er blevet fjernet.
  • For at forenkle vedligeholdelsen og udvidelsen af platforme er alle platform-afhængige operationer flyttet til separate headerfiler.
  • Håndteringen af mallctl-kommandoer er forenklet, ligesom infrastrukturen til generering og output af statistikker er blevet redesignede.
  • Flaget EXTENT_ALLOC_FLAG_PINNED er blevet tilføjet, hvilket gør det muligt at mærke uudtrækkelige hukommelsesområder for mapping, såsom HugeTLB-sider, til prioriteret genbrug. Nye mallctl-grænseflader er blevet tilføjet for at få statistik over brugen af fastlåst hukommelse: stats.pinned, stats.arenas.<i>.pinned, stats.arenas.<i>.extents.<j>.npinned, stats.arenas.<i>.extents..pinned_bytes og stats.arenas.<i>.mutexes.extents_pinned.{counter}.
  • Indholdet af malloc-statistikken er blevet synkroniseret i læsbart og JSON-format.
  • Uddaterede parametre som lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div og lg_tcache_flush_large_div er blevet fjernet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster