Microsoft-ը գրադարան է բացել MIT լիցենզիայի ներքո
Mimalloc-ի հիմնական առանձնահատկությունը նրա կոմպակտ իրականացումն է (3500 տողից քիչ կոդ) և շատ բարձր կատարողականությունը: IN
Կատարումը գնահատելու համար գոյություն ունեցողների մի շարք
Բարձր կատարողականությունը ձեռք է բերվում հիմնականում անվճար ցուցակների փոխանակման միջոցով: Մեկ մեծ ցուցակի փոխարեն mimalloc-ն օգտագործում է ավելի փոքր ցուցակների շարք, որոնցից յուրաքանչյուրը կապված է հիշողության էջին: Այս մոտեցումը նվազեցնում է մասնատումը և մեծացնում տվյալների տեղայնությունը հիշողության մեջ: Հիշողության էջը նմանատիպ չափի բլոկների խմբավորված հավաքածու է: 64-բիթանոց համակարգերում էջի չափը սովորաբար 64 ԿԲ է: Եթե էջում զբաղեցրած բլոկներ չեն մնացել, այն ամբողջությամբ ազատվում է, և հիշողությունը վերադարձվում է օպերացիոն համակարգ, ինչը նվազեցնում է հիշողության ծախսերը և երկարատև ծրագրերի մասնատումը։
Գրադարանը կարող է ներառվել կապակցման փուլում կամ բեռնվել արդեն հավաքված ծրագրի համար («LD_PRELOAD=/usr/bin/libmimalloc.so myprogram»): Գրադարանը տրամադրում է նաև
Գրադարանը հնարավոր է կառուցել անվտանգ ռեժիմով, որտեղ բլոկի սահմաններում փոխարինվում են հատուկ հիշողության ստուգման էջեր (պահապան-էջեր), և օգտագործվում են բլոկի բաշխման պատահականացում և ազատված բլոկների ցուցակների կոդավորում: Նման միջոցները հնարավորություն են տալիս արգելափակել կույտի վրա հիմնված բուֆերային արտահոսքների շահագործման ամենատարածված մեթոդները: Երբ միացնում եք Անվտանգ ռեժիմը, կատարումը նվազում է մոտավորապես 3%-ով:
Միմալլոկի առանձնահատկություններից նշվում է նաև, որ այն ենթակա չէ փքվածության հետ կապված խնդիրների՝ մեծ մասնատման պատճառով։ Վատագույն դեպքում հիշողության սպառումը մետատվյալների համար ավելանում է 0.2%-ով և բաշխված հիշողության դեպքում կարող է հասնել 16.7%-ի: Ռեսուրսներ մուտք գործելու ժամանակ կոնֆլիկտներից խուսափելու համար mimalloc-ը օգտագործում է միայն ատոմային գործողություններ:
Source: opennet.ru