Microsoft MIT litsenziyasi ostida kutubxona ochdi
Mimalloc-ning asosiy xususiyati uning ixcham amalga oshirilishi (3500 satrdan kam kod) va juda yuqori ishlashdir. IN
Ishlashni baholash uchun mavjud bo'lganlar to'plami
Yuqori mahsuldorlikka asosan bepul ro'yxatni taqsimlash orqali erishiladi. Bitta katta ro'yxat o'rniga mimalloc har biri xotira sahifasiga bog'langan bir qator kichikroq ro'yxatlardan foydalanadi. Ushbu yondashuv parchalanishni kamaytiradi va xotiradagi ma'lumotlarning joylashishini oshiradi. Xotira sahifasi - o'xshash o'lchamdagi bloklarning guruhlangan to'plami. 64 bitli tizimlarda sahifa hajmi odatda 64 KB ni tashkil qiladi. Agar sahifada ishg'ol qilingan bloklar qolmasa, u to'liq bo'shatiladi va xotira operatsion tizimga qaytariladi, bu esa uzoq muddatli dasturlarda xotira xarajatlarini va parchalanishni kamaytiradi.
Kutubxona ulanish bosqichida kiritilishi yoki allaqachon yig'ilgan dastur uchun yuklanishi mumkin (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). Kutubxona ham taqdim etadi
Kutubxonani xavfsiz rejimda qurish mumkin, unda blok chegaralarida xotirani tekshirishning maxsus sahifalari (qo'riqlash sahifalari) almashtiriladi va bloklarni taqsimlashning randomizatsiyasi va bo'shatilgan bloklar ro'yxatini shifrlash qo'llaniladi. Bunday chora-tadbirlar to'pga asoslangan bufer to'lib ketishidan foydalanishning eng keng tarqalgan usullarini blokirovka qilishga imkon beradi. Xavfsiz rejimni yoqsangiz, unumdorlik taxminan 3% ga kamayadi.
Mimallokning xususiyatlari orasida, shuningdek, katta parchalanish tufayli shishiradi bilan bog'liq muammolarga moyil emasligi ham qayd etilgan. Eng yomon holatda, xotira iste'moli metadata uchun 0.2% ga oshadi va taqsimlangan xotira uchun 16.7% ga yetishi mumkin. Resurslarga kirishda nizolarni oldini olish uchun mimalloc faqat atom operatsiyalaridan foydalanadi.
Manba: opennet.ru