Po beveik ketverių metų pertraukos (žr.jemalloc viskas») įvyko skirstytuvo 5.3.1 išleidimas jemalloc – „malloc(3)“ įgyvendinimas, kuriame pabrėžiama fragmentacijos prevencija ir palaikomas keičiamo mastelio lygiagretumas.
Naujoje versijoje yra daugiau nei 390 pakeitimų su klaidų ištaisymais, naujomis funkcijomis, našumo optimizavimu ir perkeliamumo patobulinimais.
Projektas parašytas C kalba ir platinamas pagal BSD licenciją.
Naujos savybės:
- pvalloc(3) palaikymas.
- derinimo versijoje aptiktas dvigubai laisvas;
- Pridėta kompiliavimo parinktis „--enable-pageid“, kad būtų galima įjungti atminties susietą anotaciją.
- Pridėtas vykdymo laiko parametras prof_bt_max, skirtas valdyti maksimalų profiliavimo steko gylį;
- Pridėta kompiliavimo parinktis --enable-force-getenv, kad būtų naudojama „getenv“ vietoj „secure_getenv“;
- Pridėta kompiliavimo parinktis „--disable-dss“, skirta išjungti sbrk(2) naudojimą;
- Pridėta kompiliavimo parinktis tcache_ncached_max, skirta valdyti elementų skaičių gijos talpykloje.
- Pridėtas vykdymo laiko parametras calloc_madvise_threshold, skirtas nustatyti, ar iškviečiant calloc naudojamas branduolys, ar memset, kad būtų galima nulizuoti paskirstytus atminties blokus;
- Pridėta kompiliavimo metu naudojama parinktis „--disable-user-config“, skirta išjungti konfigūracijų skaitymą iš /etc/malloc.conf failo arba iš MALLOC_CONF aplinkos kintamojo vykdymo metu.
- Pridėtas vykdymo laiko parametras „disable_large_size_classes“, kad būtų galima įjungti naują dydžio skaičiavimo algoritmą, kuris sumažina atminties apkrovą skiriant didelius atminties blokus, t. y. kai dydis >= 4 * PAGE;
- Įgalintas „process_madvise“ naudojimas ir pridėtas vykdymo laiko parametras „process_madvise_max_batch“, skirtas valdyti maksimalų atminties regionų skaičių kiekvienoje „madvise“ „paketoje“;
- pridėtos mallctl sąsajos:
- opt.prof_bt_max;
- arena.
- thread.tcache.max, kad pakeistumėte ir gautumėte dabartinės gijos tcache_max;
- thread.tcache.ncached_max.write ir thread.tcache.ncached_max.read_sizeclass, kad pakeistumėte ir gautumėte dabartinės gijos ncached_max;
- „arenas.hugepage“, kad būtų grąžintas naudotas „hugepage“ dydis, taip pat eksportuotas į „malloc“ statistiką;
- approximate_stats.active, kad gautumėte apytikslę dabartinio aktyvių baitų kiekio vertę, kurios nereikėtų lyginti su kita gauta statistika.
- Taip pat ištaisyta daug klaidų ir patobulinta dokumentacija.
Šaltinis: linux.org.ru
