Po téměř čtyřleté přestávce (viz "jemalloc všechno») proběhlo vydání verze 5.3.1 alokátoru jemalloc – implementace malloc(3), která klade důraz na prevenci fragmentace a podporu škálovatelné souběžnosti.
Nová verze obsahuje přes 390 commitů s opravami chyb, novými funkcemi, optimalizacemi výkonu a vylepšeními přenositelnosti.
Projekt je napsán v jazyce C a distribuován pod licencí BSD.
Nové funkce:
- Podpora pro pvalloc(3).
- v ladicím sestavení zjištěno dvojité uvolnění;
- Přidána volba kompilace --enable-pageid pro povolení anotací mapovaných do paměti.
- Přidán běhový parametr prof_bt_max pro řízení maximální hloubky zásobníku pro profilování;
- Přidána volba kompilace --enable-force-getenv pro použití getenv místo secure_getenv;
- Přidána volba kompilace --disable-dss pro zakázání použití sbrk(2);
- Přidána volba kompilace tcache_ncached_max pro řízení počtu položek v mezipaměti vláken.
- Přidán běhový parametr calloc_madvise_threshold pro určení, zda se k vynulování alokovaných paměťových bloků při volání calloc použije jádro nebo memset;
- Přidána volba --disable-user-config při kompilaci pro zakázání čtení konfigurací ze souboru /etc/malloc.conf nebo z proměnné prostředí MALLOC_CONF za běhu.
- Přidán běhový parametr disable_large_size_classes pro povolení nového dostupného algoritmu pro výpočet velikosti, který minimalizuje režijní náklady na paměť při alokaci velkých paměťových bloků, tj. s velikostí >= 4 * PAGE;
- Povoleno použití process_madvise a přidán běhový parametr process_madvise_max_batch pro řízení maximálního počtu paměťových oblastí v každé „dávce“ madvise;
- přidána rozhraní mallctl:
- opt.prof_bt_max;
- arena.
- 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žité velikosti obrovské stránky, exportované také do statistik malloc;
- approximate_stats.active pro získání přibližné hodnoty aktuálního množství aktivních bajtů, která by neměla být porovnávána s jinými načtenými statistikami.
- Bylo také opraveno mnoho chyb a vylepšena dokumentace.
Zdroj: linux.org.ru
