Po takmer štyroch rokoch pauzy (pozri „jemalloc všetko“) sa vydala verzia 5.3.1 alokátora jemalloc – implementácia malloc(3), ktorá sa zameriava na predchádzanie fragmentácii a podporu škálovateľnej paralelnosti.
Nová verzia obsahuje viac ako 390 commitov s opravami chýb, novými funkciami, optimalizáciou výkonu a vylepšenou prenositeľnosťou.
Projekt je napísaný v jazyku C a je distribuovaný pod licenciou BSD.
Nové možnosti:
- podpora pvalloc(3).
- detekcia dvojitého uvoľnenia pamäte v debugovacej zostave;
- pridaná možnosť kompilácie —enable-pageid pre povolenie anotácie zobrazenej pamäte.
- pridaný parameter runtime prof_bt_max na kontrolu maximálnej hĺbky zásobníka pre profilovanie;
- pridaná možnosť kompilácie —enable-force-getenv pre používanie getenv namiesto secure_getenv;
- pridaná možnosť kompilácie —disable-dss pre vypnutie použitia sbrk(2);
- pridaná možnosť kompilácie tcache_ncached_max na kontrolu počtu prvkov v cache vlákien.
- pridaný parameter runtime calloc_madvise_threshold na určenie, či sa použije kernel alebo memset na nulovanie pridelených blokov pamäte pri volaní calloc;
- pridaná možnosť kompilácie —disable-user-config pre vypnutie čítania v čase behu konfigurácií z súboru /etc/malloc.conf alebo z premennej prostredia MALLOC_CONF;
- pridaný parameter runtime disable_large_size_classes na zaistenie fungovania nového algoritmu výpočtu dostupnej veľkosti, ktorý minimalizuje režijné náklady na pamäť pri alokácii veľkých blokov pamäte, teda s veľkosťou >= 4 * PAGE;
- povolené používanie process_madvise a pridaný parameter runtime process_madvise_max_batch na kontrolu maximálneho počtu pamäťových regiónov v každej „dávke“ madvise;
- pridané rozhrania mallctl:
- opt.prof_bt_max;
- arena.. pre zmenu a získavanie mien „arény“;
- thread.tcache.max pre zmenu a získanie tcache_max aktuálneho vlákna;
- thread.tcache.ncached_max.write a thread.tcache.ncached_max.read_sizeclass pre zmenu a získanie ncached_max aktuálneho vlákna;
- arenas.hugepage na vrátenie použitej veľkosti hugepage, tiež exportovanej do štatistiky malloc;
- approximate_stats.active pre získanie približného údaju o aktuálnom objeme aktívnych bajtov, ktorý by sa nemal porovnávať s inými získanými štatistikami.
- tiež opravené mnohé chyby a vylepšená dokumentácia.
Zdroj: linux.org.ru
