Po skoraj štiriletnem premoru (glej "jemalloc vse») je izšla različica 5.3.1 alokatorja jemalloc – implementacija malloc(3), ki poudarja preprečevanje fragmentacije in podporo za skalabilno sočasnost.
Nova izdaja vključuje več kot 390 sprememb s popravki napak, novimi funkcijami, optimizacijami delovanja in izboljšavami prenosljivosti.
Projekt je napisan v jeziku C in distribuiran pod licenco BSD.
Nove možnosti:
- Podpora za pvalloc(3).
- v razhroščevalni gradnji zaznan dvojni prosti kod;
- Dodana je možnost prevajanja --enable-pageid za omogočanje anotacije, preslikane v pomnilnik.
- Dodan je bil izvajalni parameter prof_bt_max za nadzor največje globine sklada za profiliranje;
- Dodana možnost prevajanja --enable-force-getenv za uporabo getenv namesto secure_getenv;
- Dodana možnost prevajanja --disable-dss za onemogočanje uporabe sbrk(2);
- Dodana je možnost prevajanja tcache_ncached_max za nadzor števila elementov v predpomnilniku niti.
- Dodan je bil izvajalni parameter calloc_madvise_threshold, ki določa, ali se za ničlo dodeljenih pomnilniških blokov pri klicu funkcije calloc uporablja jedro ali memset;
- Dodana je možnost prevajanja --disable-user-config za onemogočanje branja konfiguracij iz datoteke /etc/malloc.conf ali iz okoljske spremenljivke MALLOC_CONF med izvajanjem.
- Dodan je bil parameter izvajalnega okolja disable_large_size_classes, ki omogoča nov algoritem za izračun velikosti, ki zmanjšuje porabo pomnilnika pri dodeljevanju velikih pomnilniških blokov, tj. z velikostjo >= 4 * PAGE;
- Omogočena je bila uporaba process_madvise in dodan je bil izvajalni parameter process_madvise_max_batch za nadzor največjega števila pomnilniških območij v vsaki "paketi" madvise;
- dodani vmesniki mallctl:
- opt.prof_bt_max;
- arena.
- thread.tcache.max za spremembo in pridobitev tcache_max trenutne niti;
- thread.tcache.ncached_max.write in thread.tcache.ncached_max.read_sizeclass za spremembo in pridobitev ncached_max trenutne niti;
- arenas.hugepage za vrnitev uporabljene velikosti hugepage, izvožene tudi v statistiko malloc;
- approximate_stats.active za pridobitev približne vrednosti trenutne količine aktivnih bajtov, ki je ne smemo primerjati z drugimi pridobljenimi statistikami.
- Odpravljenih je bilo tudi veliko hroščev in izboljšana je bila dokumentacija.
Vir: linux.org.ru
