jemalloc xotira boshqaruv kutubxonasining 5.4.0 versiyasi chiqarildi. U parchalanishni kamaytirish va ko'p protsessorli tizimlarda ishlash uchun optimallashtirilgan malloc funksiyalarining muqobil amalga oshirilishini taklif etadi. Ko'p yadroli tizimlarda qulflash muammolarini hal qilish uchun jemalloc har bir protsessor yadrosi uchun o'zining izolyatsiya qilingan xotira ajratish maydonidan foydalanadi, bu esa oqimlar soni ortishi bilan chiziqli masshtablanishni ta'minlaydi.
2025-yil iyun oyida loyiha muallifi texnik xizmat ko'rsatishni to'xtatdi va jemalloc omborini arxiv rejimiga o'tkazdi, ammo shu yilning mart oyida o'z infratuzilmasida jemallocdan foydalanadigan Meta tomonidan ishlab chiqish qayta boshlandi. Kutubxona dastlab FreeBSD uchun ishlab chiqilgan va 2005-yildan beri ushbu operatsion tizimda sukut bo'yicha ishlatilgan. Kutubxona kodi C tilida yozilgan va BSD litsenziyasi ostida tarqatilgan.
O'zgarishlar orasida:
- tcache (Thread Local Cache) ni to'ldirish va tozalash mantig'i, shuningdek, xotira ajratishni dispetcherlash soddalashtirildi.
- Page Allocator Classic (PAC) va HPA (Huge Page Allocator) xotira sahifasi ajratgichlari birlashtirildi. vtable (PAI vtable) orqali bilvosita qo'ng'iroqlarning murakkab mexanizmi olib tashlandi.
- Texnik xizmat ko'rsatishni va platformani kengaytirishni soddalashtirish uchun platformaga bog'liq barcha operatsiyalar alohida sarlavha fayllariga ko'chiriladi.
- mallctl buyruqlarini yuborish soddalashtirildi va statistikani yaratish va ko'rsatish infratuzilmasi qayta loyihalashtirildi.
- EXTENT_ALLOC_FLAG_PINNED bayrog'i qo'shildi, bu HugeTLB sahifalari kabi oldindan aytib bo'lmaydigan xotira xaritalash mintaqalarini ustuvor qayta foydalanish uchun belgilash imkonini beradi. Qadalgan xotiradan foydalanish statistikasini olish uchun yangi mallctl interfeyslari qo'shildi: stats.pinned, stats.arenas..pinned
- Malloc statistikasi tarkibini odam o'qiy oladigan va JSON formatlarida sinxronlashtirildi.
- Eskirgan lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div va lg_tcache_flush_large_div parametrlari olib tashlandi.
Manba: opennet.ru
