Microsoft ir atvērusi bibliotēku saskaņā ar MIT licenci
Mimalloc galvenā iezīme ir tā kompaktā ieviešana (mazāk nekā 3500 koda rindiņas) un ļoti augsta veiktspēja. IN
Lai novērtētu veiktspēju, esošo kopa
Augsta veiktspēja tiek panākta galvenokārt, izmantojot bezmaksas sarakstu sadalīšanu. Viena liela saraksta vietā mimalloc izmanto virkni mazāku sarakstu, no kuriem katrs ir saistīts ar atmiņas lapu. Šī pieeja samazina sadrumstalotību un palielina datu atrašanās vietu atmiņā. Atmiņas lapa ir grupēta līdzīga izmēra bloku kopa. 64 bitu sistēmās lapas izmērs parasti ir 64 KB. Ja lapā nav palicis neviens aizņemts bloks, tā tiek pilnībā atbrīvota un atmiņa tiek atgriezta operētājsistēmā, kas samazina atmiņas izmaksas un sadrumstalotību ilgstoši darbojošās programmās.
Bibliotēku var iekļaut saistīšanas stadijā vai ielādēt jau samontētai programmai (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). Bibliotēka arī nodrošina
Bibliotēku iespējams veidot drošajā režīmā, kurā pie bloku robežām tiek aizvietotas speciālas atmiņas pārbaudes lapas (sargs-lapas) un tiek izmantota bloku sadalījuma randomizācija un atbrīvoto bloku sarakstu šifrēšana. Šādi pasākumi ļauj bloķēt visizplatītākos paņēmienus, lai izmantotu kaudzes bufera pārpildes. Iespējojot drošo režīmu, veiktspēja samazinās par aptuveni 3%.
Starp mimaloka iezīmēm ir arī atzīmēts, ka tas nav uzņēmīgs pret vēdera uzpūšanās problēmām lielas sadrumstalotības dēļ. Sliktākajā gadījumā atmiņas patēriņš palielinās par 0.2% metadatiem un var sasniegt 16.7% sadalītajai atmiņai. Lai izvairītos no konfliktiem, piekļūstot resursiem, mimalloc izmanto tikai atomāras darbības.
Avots: opennet.ru