Microsoft telah membuka perpustakaan di bawah lesen MIT
Ciri utama mimalloc ialah pelaksanaannya yang padat (kurang daripada 3500 baris kod) dan prestasi yang sangat tinggi. DALAM
Untuk menilai prestasi, satu set sedia ada
Prestasi tinggi dicapai terutamanya melalui penggunaan sharding senarai percuma. Daripada satu senarai besar, mimalloc menggunakan satu siri senarai yang lebih kecil, setiap satu daripadanya terikat pada halaman memori. Pendekatan ini mengurangkan pemecahan dan meningkatkan lokaliti data dalam ingatan. Halaman memori ialah set kumpulan blok dengan saiz yang serupa. Pada sistem 64-bit, saiz halaman biasanya 64 KB. Jika tiada blok yang diduduki ditinggalkan dalam halaman, ia dibebaskan sepenuhnya dan memori dikembalikan kepada sistem pengendalian, yang mengurangkan kos memori dan pemecahan dalam program yang berjalan lama.
Pustaka boleh disertakan pada peringkat memaut atau dimuatkan untuk program yang telah dipasang (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). Perpustakaan juga menyediakan
Ia adalah mungkin untuk membina perpustakaan dalam mod selamat, di mana halaman semakan memori khas (halaman pengawal) digantikan pada sempadan blok, dan rawak pengedaran blok dan penyulitan senarai blok yang dibebaskan digunakan. Langkah sedemikian membolehkan untuk menyekat teknik yang paling biasa untuk mengeksploitasi limpahan penimbal berasaskan timbunan. Apabila anda mendayakan Mod Selamat, prestasi menurun kira-kira 3%.
Antara ciri-ciri mimalloc, ia juga diperhatikan bahawa ia tidak terdedah kepada masalah kembung kerana pemecahan yang besar. Dalam senario terburuk, penggunaan memori meningkat sebanyak 0.2% untuk metadata dan boleh mencapai 16.7% untuk ingatan teragih. Untuk mengelakkan konflik apabila mengakses sumber, mimalloc hanya menggunakan operasi atom.
Sumber: opennet.ru