مایکروسافت یک کتابخانه تحت مجوز MIT افتتاح کرده است
ویژگی کلیدی mimalloc اجرای فشرده آن (کمتر از 3500 خط کد) و عملکرد بسیار بالا است. که در
برای ارزیابی عملکرد، مجموعه ای از موجود
عملکرد بالا عمدتاً از طریق استفاده از اشتراک گذاری لیست رایگان به دست می آید. به جای یک لیست بزرگ، mimalloc از یک سری لیست های کوچکتر استفاده می کند که هر کدام به یک صفحه حافظه محدود می شوند. این رویکرد باعث کاهش تکه تکه شدن و افزایش موقعیت داده ها در حافظه می شود. صفحه حافظه مجموعه ای از بلوک های گروه بندی شده با اندازه مشابه است. در سیستم های 64 بیتی، اندازه صفحه معمولاً 64 کیلوبایت است. اگر هیچ بلوک اشغالی در صفحه باقی نمانده باشد، به طور کامل آزاد می شود و حافظه به سیستم عامل باز می گردد که باعث کاهش هزینه های حافظه و تکه تکه شدن در برنامه های طولانی مدت می شود.
کتابخانه را می توان در مرحله پیوند گنجاند یا برای یک برنامه از قبل مونتاژ شده بارگذاری کرد ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). کتابخانه نیز فراهم می کند
امکان ساخت کتابخانه در حالت امن وجود دارد که در آن صفحات بررسی حافظه ویژه (صفحات نگهبان) در مرزهای بلوک جایگزین می شوند و از توزیع تصادفی بلوک و رمزگذاری لیست بلوک های آزاد شده استفاده می شود. چنین اقداماتی مسدود کردن اکثر تکنیکهای رایج برای بهرهبرداری از سرریزهای بافر مبتنی بر پشته را ممکن میسازد. هنگامی که حالت ایمن را فعال می کنید، عملکرد تقریباً 3٪ کاهش می یابد.
از جمله ویژگی های mimalloc، همچنین اشاره شده است که به دلیل تکه تکه شدن زیاد، مستعد مشکلات نفخ نیست. در بدترین حالت، مصرف حافظه برای متادیتا 0.2 درصد افزایش می یابد و برای حافظه توزیع شده می تواند به 16.7 درصد برسد. برای جلوگیری از درگیری هنگام دسترسی به منابع، mimalloc فقط از عملیات اتمی استفاده می کند.
منبع: opennet.ru