Knihovna pro správu paměti jemalloc 5.3.1 je nyní k dispozici.

Čtyři roky po předchozí aktualizaci je nyní k dispozici knihovna pro správu paměti jemalloc 5.3.1. Nabízí alternativní implementaci funkcí malloc optimalizovanou pro snížení fragmentace a běh na víceprocesorových systémech. Pro řešení problémů se zamykáním na vícejádrových systémech používá jemalloc pro každé jádro CPU vlastní izolovanou oblast alokace paměti, což umožňuje lineární škálovatelnost s rostoucím počtem vláken.

V červnu 2025 autor projektu ukončil údržbu a archivoval repozitář jemalloc, ale vývoj byl před měsícem obnoven společností Meta, která ve své infrastruktuře používá jemalloc. Knihovna byla původně vyvinuta pro FreeBSD a od roku 2005 se v tomto operačním systému standardně používá. Kód knihovny je napsán v jazyce C a 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 v libc.
  • Detekce dvojitého volání funkce free() je v ladicích sestaveních povolena. Byl přidán parametr debug_double_free_max_scan pro konfiguraci velikosti zásobníku použité pro skenování.
  • Přidána možnost sestavení „--enable-pageid“ pro nastavení tagů mapování paměti pomocí prctl s příznakem PR_SET_VMA. Po povolení lze mapování sledovat pomocí /proc/. /mapy.
  • Přidán parametr „prof_bt_max“, který umožňuje nastavit maximální hloubku zásobníku pro profilování.
  • Přidána volba sestavení „--enable-force-getenv“, která vynutí použití běžné funkce getenv() namísto funkce secure_getenv().
  • Přidána volba sestavení „--disable-dss“ pro zakázání použití funkce sbrk().
  • Přidán parametr „tcache_ncached_max“ pro omezení počtu položek v mezipaměti vláken.
  • Přidána volba „calloc_madvise_threshold“ pro konfiguraci, zda se k vynulování paměti alokované funkcí calloc použije mechanismus jádra madvise nebo funkce memset.
  • Přidána volba sestavení „--disable-user-config“ pro zakázání načítání nastavení ze souboru /etc/malloc.conf nebo proměnné prostředí MALLOC_CONF.
  • Přidán parametr „process_madvise_max_batch“ pro omezení počtu paměťových bloků pro každou dávkovou operaci madvise.
  • Přidán parametr „disable_large_size_classes“ pro deaktivaci nového algoritmu pro výpočet velikosti alokace paměti, který snižuje režijní náklady při alokaci bloků větších než 4 paměťové stránky.
  • Do utility mallctl byly přidány volby: opt.prof_bt_max, arena.name

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster