Elérhető a jemalloc 5.3.1 memória kezelésére szolgáló könyvtár

Négy évvel a legutóbbi frissítés közzététele után megjelent a jemalloc 5.3.1 memória kezelő könyvtár, amely alternatív megvalósítást kínál a malloc funkciókhoz, optimalizálva a fragmentáció csökkentésére és a többprocesszoros rendszerek működésére. A többmagos rendszerek blokkolási problémáinak megoldására a jemalloc minden CPU mag számára külön izolált memóriaelosztó területet használ, így lineárisan skálázható a szálak számának növekedésével.

2025 júniusában a projekt szerzője leállította a támogatást és archiválta a jemalloc repository-t, de egy hónappal ezelőtt a Meta cég, amely jemalloc-t használ az infrastruktúrájában, újraindította a fejlesztést. A könyvtárat eredetileg a FreeBSD számára fejlesztették ki, és a 2005 óta alapértelmezettként használják ezen az operációs rendszeren. A könyvtár kódja C nyelven íródott, és BSD licenc alatt kerül forgalmazásra.

A változtatások közül:

  • A pvalloc funkció implementálva lett, amely hasznos lehet a libc memóriaallokátor lecseréléséhez.
  • A hibakeresési build-ekben hozzá lett adva a dupla free() hívás észlelésének módja. A vizsgálat során használható verem méretének beállításához be lett vezetve a debug_double_free_max_scan paraméter.
  • Hozzáadva a —enable-pageid build opció a memória leképezésnél a prctl PR_SET_VMA flag használatával történő címkék beállításához. A bekapcsolás után a leképezés követhető lesz a /proc//maps alatt.
  • Hozzáadva a prof_bt_max paraméter, amely lehetővé teszi a maximális veremmélység beállítását a profilozáshoz.
  • Hozzáadva a —enable-force-getenv build opció, amely lehetővé teszi a hagyományos getenv() funkció használatát a védett secure_getenv() helyett.
  • Hozzáadva a —disable-dss build opció az sbrk() funkció használatának letiltásához.
  • Hozzáadva a tcache_ncached_max paraméter a szálak cache-jében tárolt elemek számának korlátozásához.
  • Hozzáadva a calloc_madvise_threshold paraméter a madvise rendszerszintű mechanizmus vagy a memset funkció használatának bekapcsolásához a calloc függvényen keresztül lefoglalt memória nullázásához.
  • Hozzáadva a —disable-user-config build opció a /etc/malloc.conf fájlból vagy a MALLOC_CONF környezeti változóból származó beállítások betöltésének letiltásához.
  • Hozzáadva a process_madvise_max_batch paraméter a madvise batch műveletekhez felhasznált memória blokkok számának korlátozásához.
  • Hozzáadva a "disable_large_size_classes" paraméter a nagyobb, több mint 4 oldalas memória blokkok allokálásához szükséges költségek csökkentésére optimalizáló új algoritmus kikapcsolásához.
  • A mallctl segédprogramhoz új opciók kerültek bevezettek: opt.prof_bt_max, arena.<i>.name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage és approximate_stats.active.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster