Microsoft te louvri kòd la pou sistèm alokasyon memwa mimalloc

Microsoft te louvri yon bibliyotèk anba lisans MIT mmalloc soti nan enplemantasyon nan yon sistèm alokasyon memwa orijinèlman te kreye pou konpozan ègzekutabl nan lang Koka и Mèg. Mimalloc adapte pou itilize nan aplikasyon estanda san yo pa chanje kòd yo epi li ka aji kòm yon ranplasman transparan pou fonksyon malloc la. Sipòte travay sou Windows, macOS, Linux, BSD ak lòt sistèm tankou Unix.

Karakteristik prensipal mimalloc se aplikasyon kontra enfòmèl ant li (mwens pase 3500 liy kòd) ak pèfòmans trè wo. NAN tès yo fèt mimalloc depase tout bibliyotèk alokasyon memwa konpetisyon, ki gen ladan jemalloc, tcmalloc, snmalloc, rpmalloc и Provizyon.

Pou evalye pèfòmans, yon seri de ki ekziste tès estanda Nan kèk tès, mimalloc se anpil fwa pi vit pase lòt sistèm; pou egzanp, nan tès la nan migrasyon objè ant fil diferan, mimalloc te tounen plis pase 2.5 fwa pi vit pase tcmalloc ak jemalloc. An menm tan an, nan pifò tès yo, pi ba konsomasyon memwa tou obsève; nan kèk sitiyasyon, konsomasyon memwa ka redwi pa 25%.

Microsoft te louvri kòd la pou sistèm alokasyon memwa mimalloc

Se gwo pèfòmans reyalize sitou atravè itilizasyon lis sharding gratis. Olye de yon sèl gwo lis, mimalloc itilize yon seri de lis ki pi piti, chak nan yo ki mare nan yon paj memwa. Apwòch sa a diminye fwagmantasyon ak ogmante lokalite done nan memwa. Yon paj memwa se yon seri gwoup gwoup ki gen menm gwosè. Sou sistèm 64-bit, gwosè paj la anjeneral se 64 KB. Si pa gen okenn blòk okipe nan paj la, li konplètman libere epi memwa a retounen nan sistèm operasyon an, ki diminye depans memwa ak fwagmantasyon nan pwogram ki dire lontan.

Ou ka enkli bibliyotèk la nan etap lyen an oswa chaje pou yon pwogram ki deja rasanble ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). Bibliyotèk la bay tou API pou entegre fonksyonalite nan ègzekutabl ak kontwòl konpòtman byen grenn, pou egzanp, pou konekte moun kap okipe memwa parese ak monotone ogmante kontè referans. Li posib pou kreye epi sèvi ak plizyè "pil" nan yon aplikasyon pou distribisyon atravè diferan zòn memwa. Li posib tou pou libere pil la nèt, san yo pa ale nan ak separeman libere objè yo mete nan li.

Li posib pou konstwi bibliyotèk la nan yon mòd ki an sekirite, kote paj chèk memwa espesyal (paj gad) yo ranplase nan limit blòk yo, epi yo itilize owaza distribisyon blòk ak chifreman nan lis blòk libere yo. Mezi sa yo fè li posib pou bloke teknik ki pi komen pou eksplwate debòde tanpon ki baze sou pil. Lè ou pèmèt Safe Mode, pèfòmans diminye apeprè 3%.

Pami karakteristik yo nan mimalloc, li se tou te note ke li pa sansib a pwoblèm ak gonfleman akòz gwo fwagmantasyon. Nan pi move senaryo a, konsomasyon memwa ogmante pa 0.2% pou metadata epi li ka rive nan 16.7% pou memwa distribye. Pou evite konfli lè gen aksè a resous, mimalloc itilize sèlman operasyon atomik.

Sous: opennet.ru

Add nouvo kòmantè