Microsoft MIT лицензиясы бойынша кітапхана ашты
Mimalloc-тың негізгі ерекшелігі - оның ықшам орындалуы (3500 код жолынан аз) және өте жоғары өнімділік. IN
Өнімділікті бағалау үшін бар жиынтығы
Жоғары өнімділікке негізінен тегін тізімді бөлуді пайдалану арқылы қол жеткізіледі. Бір үлкен тізімнің орнына mimalloc әрқайсысы жад бетіне байланыстырылған кішірек тізімдер қатарын пайдаланады. Бұл тәсіл фрагментацияны азайтады және жадтағы деректердің орналасуын арттырады. Жад беті - өлшемдері ұқсас блоктардың топтастырылған жиыны. 64 биттік жүйелерде бет өлшемі әдетте 64 КБ болады. Егер бетте бос тұрған блоктар қалмаса, ол толығымен босатылады және жад операциялық жүйеге қайтарылады, бұл жад шығындарын және ұзақ жұмыс істейтін бағдарламаларда фрагментацияны азайтады.
Кітапхананы байланыстыру сатысында қосуға немесе әлдеқашан жиналған бағдарламаға («LD_PRELOAD=/usr/bin/libmimalloc.so myprogram») жүктеуге болады. Кітапхана да қамтамасыз етеді
Кітапхананы қауіпсіз режимде құруға болады, онда блок шекараларында жадты тексерудің арнайы беттері (қорғау беттері) ауыстырылады, блоктарды бөлудің рандомизациясы және босатылған блоктардың тізімдерін шифрлау қолданылады. Мұндай шаралар үймеге негізделген буфердің толып кетуін пайдаланудың ең көп таралған әдістерін блоктауға мүмкіндік береді. Қауіпсіз режимді қосқанда өнімділік шамамен 3%-ға төмендейді.
Мималлоктың ерекшеліктерінің арасында үлкен фрагментацияға байланысты ісіну проблемаларына сезімтал еместігі де атап өтіледі. Ең нашар жағдайда жадты тұтыну метадеректер үшін 0.2%-ға артады және бөлінген жад үшін 16.7%-ға жетуі мүмкін. Ресурстарға қатынасу кезінде қақтығыстарды болдырмау үшін mimalloc тек атомдық операцияларды пайдаланады.
Ақпарат көзі: opennet.ru