Po téměř čtyřleté pauze (viz „jemalloc vše„) byl vydán 5.3.1 alokátor jemalloc – implementace malloc(3), která se zaměřuje na prevenci fragmentace a podporu škálovatelné paralelnosti.
Nové vydání obsahuje více než 390 commitů s opravami chyb, novými funkcemi, optimalizací výkonu a zlepšením přenositelnosti.
Projekt je napsán v jazyce C a je distribuován pod licencí BSD.
Nové funkce:
- podpora pvalloc(3).
- zjištění dvojného uvolnění paměti v ladicí verzi;
- byla přidána možnost kompilace —enable-pageid pro zahrnutí anotace zobrazené paměti.
- byl přidán runtime parametr prof_bt_max pro řízení maximální hloubky zásobníku pro profilování;
- byla přidána možnost kompilace —enable-force-getenv pro používání getenv místo secure_getenv;
- byla přidána možnost kompilace —disable-dss pro zakázání používání sbrk(2);
- byla přidána možnost kompilace tcache_ncached_max pro řízení počtu prvků v cache vláken.
- byl přidán runtime parametr calloc_madvise_threshold pro určení, zda se pro nulování alokovaných bloků paměti při volání malloc používá jádro nebo memset;
- byla přidána možnost kompilace —disable-user-config pro zakázání čtení runtime konfigurací z souboru /etc/malloc.conf nebo z proměnné prostředí MALLOC_CONF;
- byl přidán runtime parametr disable_large_size_classes pro zajištění fungování nového algoritmu výpočtu dostupné velikosti, který minimalizuje režijní náklady na paměť při alokaci velkých bloků paměti, tedy s velikostí >= 4 * PAGE;
- bylo zahrnuto použití process_madvise a přidán runtime parametr process_madvise_max_batch pro řízení maximálního počtu paměťových oblastí v každé „šarži“ madvise;
- byly přidány rozhraní mallctl:
- opt.prof_bt_max;
- arena..name pro změnu a získání jmen „aren“;
- thread.tcache.max pro změnu a získání tcache_max aktuálního vlákna;
- thread.tcache.ncached_max.write a thread.tcache.ncached_max.read_sizeclass pro změnu a získání ncached_max aktuálního vlákna;
- arenas.hugepage pro vrácení používané velikosti hugepage, také exportované do statistik malloc;
- approximate_stats.active pro získání přibližné hodnoty aktuálního objemu aktivních bajtů, kterou nelze porovnávat s jinými získanými statistickými údaji.
- bylo také opraveno mnoho chyb a zlepšena dokumentace.
Zdroj: linux.org.ru
