Գրեթե չորս տարվա ընդմիջումից հետո (տե՛ս «jemalloc ամեն ինչ») տեղի ունեցավ հատկացնողի 5.3.1-ի թողարկումը jemalloc – malloc(3)-ի իրականացում, որը շեշտը դնում է մասնատման կանխարգելման և մասշտաբային զուգահեռականության աջակցության վրա։
Նոր թողարկումը ներառում է ավելի քան 390 «commit»՝ սխալների շտկումներով, նոր գործառույթներով, կատարողականի օպտիմալացմամբ և փոխադրելիության բարելավումներով։
Նախագիծը գրված է C լեզվով և տարածվում է BSD լիցենզիայով։
Նոր առանձնահատկություններ.
- pvalloc(3) աջակցություն։
- կրկնակի անվճար հայտնաբերվեց debug կառուցվածքում։
- Ավելացվել է --enable-pageid կոմպիլյացիայի տարբերակը՝ հիշողության մեջ քարտեզագրված նշումները միացնելու համար։
- Ավելացվել է prof_bt_max գործարկման պարամետրը՝ պրոֆիլավորման համար առավելագույն կուտակման խորությունը կառավարելու համար։
- Ավելացվել է compile --enable-force-getenv տարբերակը՝ secure_getenv-ի փոխարեն getenv օգտագործելու համար։
- Ավելացվել է --disable-dss կոմպիլյացիայի տարբերակը՝ sbrk(2)-ի օգտագործումը անջատելու համար։
- Ավելացվել է tcache_ncached_max կոմպիլյացիայի տարբերակը՝ թելերի քեշում տարրերի քանակը կառավարելու համար։
- Ավելացվել է calloc_madvise_threshold կատարողական պարամետրը՝ որոշելու համար, թե արդյոք calloc-ը կանչելիս հատկացված հիշողության բլոկները զրոյացնելու համար օգտագործվում է միջուկը, թե մեմսեթը։
- Ավելացվել է --disable-user-config compile-time տարբերակը՝ /etc/malloc.conf ֆայլից կամ MALLOC_CONF միջավայրի փոփոխականից կարգավորումների ընթերցումը գործարկման ժամանակ անջատելու համար։
- Ավելացվել է disable_large_size_classes գործարկման պարամետրը՝ նոր հասանելի չափի հաշվարկման ալգորիթմը միացնելու համար, որը նվազագույնի է հասցնում հիշողության ծանրաբեռնվածությունը մեծ հիշողության բլոկներ հատկացնելիս, այսինքն՝ չափսով >= 4 * PAGE;
- Միացվել է process_madvise-ի օգտագործումը և ավելացվել է process_madvise_max_batch գործարկման պարամետրը՝ յուրաքանչյուր madvise "batch"-ում հիշողության տիրույթների առավելագույն քանակը կառավարելու համար։
- mallctl ինտերֆեյսները ավելացվել են՝
- opt.prof_bt_max;
- arena.
- thread.tcache.max՝ ընթացիկ թելի tcache_max-ը փոխելու և ստանալու համար։
- thread.tcache.ncached_max.write և thread.tcache.ncached_max.read_sizeclass-ը՝ ընթացիկ թելի ncached_max-ը փոխելու և ստանալու համար։
- arenas.hugepage՝ օգտագործված hugepage չափը վերադարձնելու համար, որը նույնպես արտահանվում է malloc stats։
- approximate_stats.active՝ ակտիվ բայթերի ընթացիկ քանակի մոտավոր արժեքը ստանալու համար, որը չպետք է համեմատվի այլ ստացված վիճակագրության հետ։
- Շատ սխալներ նույնպես շտկվել են, և փաստաթղթավորումը բարելավվել է։
Source: linux.org.ru
