మైక్రోసాఫ్ట్ MIT లైసెన్స్ క్రింద ఒక లైబ్రరీని ప్రారంభించింది
మిమల్లోక్ యొక్క ముఖ్య లక్షణం దాని కాంపాక్ట్ ఇంప్లిమెంటేషన్ (కోడ్ యొక్క 3500 లైన్ల కంటే తక్కువ) మరియు చాలా ఎక్కువ పనితీరు. IN
పనితీరును అంచనా వేయడానికి, ఇప్పటికే ఉన్న సమితి
ప్రధానంగా ఉచిత జాబితా భాగస్వామ్యాన్ని ఉపయోగించడం ద్వారా అధిక పనితీరు సాధించబడుతుంది. ఒక పెద్ద జాబితాకు బదులుగా, mimalloc చిన్న జాబితాల శ్రేణిని ఉపయోగిస్తుంది, వీటిలో ప్రతి ఒక్కటి మెమరీ పేజీకి కట్టుబడి ఉంటుంది. ఈ విధానం ఫ్రాగ్మెంటేషన్ని తగ్గిస్తుంది మరియు మెమరీలో డేటా స్థానికతను పెంచుతుంది. మెమరీ పేజీ అనేది ఒకే పరిమాణంలో ఉన్న బ్లాక్ల సమూహం. 64-బిట్ సిస్టమ్లలో, పేజీ పరిమాణం సాధారణంగా 64 KB. పేజీలో ఆక్రమిత బ్లాక్లు లేనట్లయితే, అది పూర్తిగా విముక్తమవుతుంది మరియు మెమరీ ఆపరేటింగ్ సిస్టమ్కి తిరిగి వస్తుంది, ఇది మెమరీ ఖర్చులు మరియు దీర్ఘకాలిక ప్రోగ్రామ్లలో ఫ్రాగ్మెంటేషన్ను తగ్గిస్తుంది.
లైబ్రరీని లింకింగ్ దశలో చేర్చవచ్చు లేదా ఇప్పటికే అసెంబుల్ చేసిన ప్రోగ్రామ్ కోసం లోడ్ చేయవచ్చు (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). లైబ్రరీ కూడా అందిస్తుంది
లైబ్రరీని సురక్షిత మోడ్లో నిర్మించడం సాధ్యమవుతుంది, దీనిలో బ్లాక్ సరిహద్దుల వద్ద ప్రత్యేక మెమరీ తనిఖీ పేజీలు (గార్డ్-పేజీలు) ప్రత్యామ్నాయంగా ఉంటాయి మరియు బ్లాక్ డిస్ట్రిబ్యూషన్ యొక్క యాదృచ్ఛికీకరణ మరియు ఫ్రీడ్ బ్లాక్ల జాబితాల ఎన్క్రిప్షన్ ఉపయోగించబడతాయి. ఇటువంటి చర్యలు కుప్ప-ఆధారిత బఫర్ ఓవర్ఫ్లోలను ఉపయోగించడం కోసం అత్యంత సాధారణ సాంకేతికతలను నిరోధించడాన్ని సాధ్యం చేస్తాయి. మీరు సేఫ్ మోడ్ని ప్రారంభించినప్పుడు, పనితీరు సుమారుగా 3% తగ్గుతుంది.
మిమల్లోక్ యొక్క లక్షణాలలో, ఇది పెద్ద ఫ్రాగ్మెంటేషన్ కారణంగా ఉబ్బరంతో సమస్యలకు గురికాదని కూడా గుర్తించబడింది. చెత్త దృష్టాంతంలో, మెటాడేటా కోసం మెమరీ వినియోగం 0.2% పెరుగుతుంది మరియు పంపిణీ చేయబడిన మెమరీ కోసం 16.7%కి చేరుకోవచ్చు. వనరులను యాక్సెస్ చేసేటప్పుడు వైరుధ్యాలను నివారించడానికి, మిమల్లోక్ అణు కార్యకలాపాలను మాత్రమే ఉపయోగిస్తుంది.
మూలం: opennet.ru