Deyarli to'rt yillik tanaffusdan so'ng (qarang "jemalloc hamma narsa») ajratuvchining 5.3.1 versiyasi chiqarildi jemalloc – malloc(3) ning parchalanishning oldini olish va masshtablanadigan parallellikni qo'llab-quvvatlashga urg'u beradigan amalga oshirilishi.
Yangi nashrda xatolarni tuzatish, yangi funksiyalar, ishlashni optimallashtirish va ko'chma yaxshilanishlar bilan birga 390 dan ortiq commitlar mavjud.
Loyiha C tilida yozilgan va BSD litsenziyasi ostida tarqatilgan.
Yangi xususiyatlar:
- pvalloc(3) ni qo'llab-quvvatlash.
- disk raskadrovka tizimida ikki marta bepul aniqlandi;
- Xotira xaritasidagi annotatsiyani yoqish uchun --enable-pageid kompilyatsiya opsiyasi qo'shildi.
- Profillash uchun maksimal stek chuqurligini boshqarish uchun prof_bt_max ish vaqti parametri qo'shildi;
- secure_getenv o'rniga getenv dan foydalanish uchun --enable-force-getenv kompilyatsiya opsiyasi qo'shildi;
- sbrk(2) dan foydalanishni o'chirish uchun --disable-dss kompilyatsiya opsiyasi qo'shildi;
- Mavzu keshidagi elementlar sonini boshqarish uchun tcache_ncached_max kompilyatsiya opsiyasi qo'shildi.
- calloc chaqirilganda ajratilgan xotira bloklarini nolga tenglashtirish uchun yadro yoki memset ishlatilishini aniqlash uchun calloc_madvise_threshold ish vaqti parametri qo'shildi;
- Ish vaqtida /etc/malloc.conf faylidan yoki MALLOC_CONF muhit o'zgaruvchisidan konfiguratsiyalarni o'qishni o'chirish uchun --disable-user-config compile-time opsiyasi qo'shildi.
- Katta hajmdagi xotira bloklarini ajratishda, ya'ni hajmi >= 4 * PAGE bilan xotira yukini minimallashtiradigan yangi mavjud o'lchamni hisoblash algoritmini yoqish uchun ish vaqti parametri disable_large_size_classes qo'shildi;
- process_madvise dan foydalanishni yoqdi va har bir madvise "batch" da maksimal xotira mintaqalarini boshqarish uchun process_madvise_max_batch ish vaqti parametrini qo'shdi;
- mallctl interfeyslari qo'shildi:
- opt.prof_bt_max;
- arena.
- thread.tcache.max faylini o'zgartirish va joriy oqimning tcache_max qiymatini olish uchun;
- thread.tcache.ncached_max.write va thread.tcache.ncached_max.read_sizeclass funksiyalarini o'zgartirib, joriy oqimning ncached_max qiymatini olish uchun;
- arenas.hugepage ishlatilgan hugepage hajmini qaytarish uchun ishlatiladi, shuningdek, malloc statistikasiga eksport qilinadi;
- approximate_stats.active funksiyasidan foydalanib, joriy faol baytlar miqdorining taxminiy qiymatini oling, bu boshqa olingan statistika bilan taqqoslanmasligi kerak.
- Ko'pgina xatolar ham tuzatildi va hujjatlar yaxshilandi.
Manba: linux.org.ru
