مایکروسافټ د mimalloc حافظې تخصیص سیسټم لپاره کوډ خلاص کړی

مایکروسافټ د MIT جواز لاندې یو کتابتون پرانیست mmalloc د حافظې تخصیص سیسټم پلي کولو څخه په اصل کې د ژبې د چلولو برخو لپاره رامینځته شوی کوکا и لیان. Mimalloc په معیاري غوښتنلیکونو کې د کارولو لپاره تطبیق شوی پرته له دې چې د دوی کوډ بدل کړي او کولی شي د مالوک فعالیت لپاره د شفاف بدیل په توګه عمل وکړي. په وینډوز، macOS، لینکس، BSD او نورو یونیکس په څیر سیسټمونو کې د کار ملاتړ کوي.

د mimalloc کلیدي ځانګړتیا د دې کمپیکٹ پلي کول (د کوډ له 3500 څخه کم لینونه) او خورا لوړ فعالیت دی. IN ازموینې ترسره شوې mimalloc د حافظې تخصیص ټول سیالي کتابتونونه ښه کړي، په شمول jemalloc, tcmalloc, snmalloc, rpmalloc и هوارډ.

د فعالیت ارزولو لپاره، د موجوده یو سیټ معیاري ازموینې په ځینو ازموینو کې، mimalloc د نورو سیسټمونو په پرتله څو ځله ګړندی دی؛ د بیلګې په توګه، د مختلفو تارونو ترمنځ د اعتراض مهاجرت په ازموینه کې، mimalloc د tcmalloc او jemalloc په پرتله 2.5 ځله ډیر ګړندی و. په ورته وخت کې ، په ډیری ازموینو کې ، د حافظې ټیټ مصرف هم لیدل کیږي؛ په ځینو حاالتو کې ، د حافظې مصرف 25٪ کم کیدی شي.

مایکروسافټ د mimalloc حافظې تخصیص سیسټم لپاره کوډ خلاص کړی

لوړ فعالیت په عمده توګه د وړیا لیست شارډینګ کارولو له لارې ترلاسه کیږي. د یو لوی لیست پرځای، mimalloc د کوچنیو لیستونو لړۍ کاروي، چې هر یو یې د حافظې پاڼې پورې تړلی دی. دا طریقه ټوټه ټوټه کموي او په حافظه کې د معلوماتو ځای زیاتوي. د حافظې پاڼه د ورته اندازې بلاکونو ډله ایز سیټ دی. په 64-bit سیسټمونو کې، د پاڼې اندازه عموما 64 KB ده. که چیرې په پاڼه کې هیڅ قبضه شوي بلاکونه پاتې نه وي، دا په بشپړه توګه آزادیږي او حافظه بیرته عملیاتي سیسټم ته راستانه کیږي، چې د اوږدې مودې پروګرامونو کې د حافظې لګښت او ټوټه ټوټه کموي.

کتابتون د لینک کولو په مرحله کې شامل کیدی شي یا د دمخه راټول شوي برنامې لپاره بار کیدی شي ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). کتابتون هم چمتو کوي API د رن ټایم او ښه دانه چلند کنټرول کې د فعالیت ادغام لپاره ، د مثال په توګه ، د ځنډ شوي حافظې خوشې کولو هینډلرونو سره وصل کولو او په واحد ډول د حوالې کاونټرونو زیاتوالی. دا ممکنه ده چې د مختلف حافظې ساحو کې د توزیع لپاره په غوښتنلیک کې ډیری "هیپس" رامینځته او وکاروئ. دا هم ممکنه ده چې ټوخه په بشپړه توګه آزاده کړئ، پرته له دې چې تیر شي او په جلا توګه په هغه کې ایښودل شوي شیان آزاد کړئ.

دا ممکنه ده چې کتابتون په خوندي حالت کې جوړ کړئ، په کوم کې چې د ځانګړي حافظې چک پاڼې (ساتونکي پاڼې) د بلاک په سرحدونو کې ځای پر ځای شوي، او د بلاک ویش تصادفي کول او د خلاص شوي بلاکونو لیستونو کوډ کول کارول کیږي. دا ډول اقدامات د دې امکان رامینځته کوي چې د ټوټو پراساس بفر اوور فلو استخراج لپاره ډیری عام تخنیکونه بند کړي. کله چې تاسو خوندي حالت فعال کړئ، فعالیت نږدې 3٪ کمیږي.

د mimalloc د ځانګړتیاوو په منځ کې، دا هم یادونه شوې چې دا د لوی ټوټې کولو له امله د پړسوب سره ستونزې ته حساس ندي. په بدترین حالت کې، د حافظې مصرف د میټاډاټا لپاره 0.2٪ زیاتیږي او د توزیع شوي حافظې لپاره 16.7٪ ته رسیدلی شي. سرچینو ته د لاسرسي په وخت کې د شخړو څخه مخنیوي لپاره ، mimalloc یوازې اټومي عملیات کاروي.

سرچینه: opennet.ru

Add a comment