Бараг дөрвөн жилийн завсарлага авсны дараа (үзнэ үү "jemalloc бүх зүйл») хуваарилагчийн 5.3.1 хувилбарыг гаргасан Жемаллок – хуваагдлаас урьдчилан сэргийлэх болон өргөтгөх боломжтой зэрэгцээ байдлыг дэмжихэд анхаарлаа хандуулдаг malloc(3)-ийн хэрэгжилт.
Шинэ хувилбарт алдааны засвар, шинэ функцууд, гүйцэтгэлийн оновчлол болон зөөврийн сайжруулалт бүхий 390 гаруй коммент багтсан болно.
Төслийг C хэл дээр бичсэн бөгөөд BSD лицензийн дагуу түгээсэн.
Шинэ боломжууд:
- pvalloc(3) дэмжлэг.
- дибаг хийх явцад давхар үнэгүй илэрсэн;
- Санах ойн зураглалын тэмдэглэгээг идэвхжүүлэхийн тулд --enable-pageid эмхэтгэх сонголтыг нэмсэн.
- Профайл үүсгэх хамгийн их стекийн гүнийг хянахын тулд prof_bt_max ажиллах хугацааны параметрийг нэмсэн;
- secure_getenv-ийн оронд getenv ашиглахын тулд --enable-force-getenv хөрвүүлэх сонголтыг нэмсэн;
- sbrk(2)-г ашиглахыг идэвхгүй болгохын тулд --disable-dss эмхэтгэх сонголтыг нэмсэн;
- Thread cache дахь зүйлсийн тоог хянахын тулд tcache_ncached_max хөрвүүлэх сонголтыг нэмсэн.
- calloc-г дуудах үед хуваарилагдсан санах ойн блокуудыг тэглэхэд цөм эсвэл memset ашиглагдаж байгаа эсэхийг тодорхойлохын тулд calloc_madvise_threshold ажиллах хугацааны параметрийг нэмсэн;
- Ажиллах үеийн /etc/malloc.conf файл эсвэл MALLOC_CONF орчны хувьсагчаас тохиргоог уншихыг идэвхгүй болгохын тулд --disable-user-config compile-time сонголтыг нэмсэн.
- Том хэмжээтэй санах ойн блокуудыг хуваарилах үед, өөрөөр хэлбэл хэмжээ >= 4 * PAGE үед санах ойн ачааллыг хамгийн бага байлгадаг шинэ боломжтой хэмжээг тооцоолох алгоритмыг идэвхжүүлэхийн тулд ажиллах үеийн disable_large_size_classes параметрийг нэмсэн;
- process_madvise-ийн хэрэглээг идэвхжүүлж, madvise "багц" бүрт санах ойн бүсийн хамгийн их тоог хянахын тулд process_madvise_max_batch ажиллах хугацааны параметрийг нэмсэн;
- mallctl интерфэйсүүд нэмэгдсэн:
- opt.prof_bt_max;
- арена.
- thread.tcache.max файлыг өөрчилж, одоогийн thread-н tcache_max утгыг авахын тулд;
- thread.tcache.ncached_max.write болон thread.tcache.ncached_max.read_sizeclass-ийг өөрчилж, одоогийн thread-н ncached_max утгыг авахын тулд;
- arenas.hugepage нь ашигласан hugepage хэмжээг буцаах бөгөөд мөн malloc статистик руу экспортлогдоно;
- approximate_stats.active функц нь одоогийн идэвхтэй байтын ойролцоо утгыг авах бөгөөд үүнийг бусад олж авсан статистиктай харьцуулж болохгүй.
- Мөн олон алдааг засч, баримт бичгийг сайжруулсан.
Эх сурвалж: linux.org.ru
