K dispozici je knihovna pro správu paměti jemalloc 5.3.1

Po 4 letech od vydání poslední aktualizace je k dispozici vydání knihovny pro správu paměti jemalloc 5.3.1, která nabízí alternativní implementaci funkcí malloc, optimalizovaných pro snížení fragmentace a efektivní práci na vícejádrových systémech. Pro řešení problémů se zámky na vícejádrových systémech používá jemalloc pro každé CPU své izolované oblasti alokace paměti, což umožňuje dosáhnout lineární škálovatelnosti s rostoucím počtem vláken.

V červnu 2025 autor projektu ukončil jeho podporu a převedl repozitář jemalloc do archivačního režimu, avšak před měsícem obnovila vývoj společnost Meta, která jemalloc využívá ve své infrastruktuře. Knihovna byla původně vyvinuta pro FreeBSD a od roku 2005 je používána jako výchozí v této operativní soustavě. Kód knihovny je napsán v jazyce C a je distribuován pod licencí BSD.

Mezi změnami:

  • Byla implementována funkce pvalloc, která může být užitečná při nahrazování alokátoru paměti libc.
  • V ladících sestaveních je zahrnut režim detekce dvojího volání funkce free(). Pro nastavení velikosti zásobníku, v rámci kterého se provádí skenování, byl přidán parametr debug_double_free_max_scan.
  • Byla přidána stavební volba „—enable-pageid“ pro označování tagů při mapování paměti za použití prctl s příznakem PR_SET_VMA. Po aktivaci lze mapování sledovat přes /proc//maps.
  • Byl přidán parametr „prof_bt_max“, který umožňuje nastavit maximální hloubku zásobníku pro profilování.
  • Byla přidána stavební volba „—enable-force-getenv“ pro využití běžné funkce getenv() místo chráněné secure_getenv().
  • Byla přidána stavební volba „—disable-dss“ pro zakázání používání funkce sbrk().
  • Byl přidán parametr „tcache_ncached_max“ pro omezení počtu prvků v časové mezipaměti.
  • Byl přidán parametr „calloc_madvise_threshold“ pro nastavení mechanismu jádra madvise nebo funkce memset pro nulování paměti alokované prostřednictvím funkce calloc.
  • Byla přidána stavební volba „—disable-user-config“ pro zakázání načítání nastavení z souboru /etc/malloc.conf nebo proměnné prostředí MALLOC_CONF.
  • Byl přidán parametr „process_madvise_max_batch“ pro omezení počtu bloků paměti pro každou dávkovou operaci madvise.
  • Byl přidán parametr „disable_large_size_classes“ pro deaktivaci nového algoritmu výpočtu velikosti přidělované paměti, který snižuje režijní náklady při přidělování bloků větších než 4 stránky paměti.
  • Do nástroje mallctl byly přidány možnosti: opt.prof_bt_max, arena.<i>.name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage a approximate_stats.active.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster