Microsoft کوليو آهي ڪوڊ ڪوڊ لاءِ mimalloc ميموري مختص ڪرڻ واري نظام

Microsoft MIT لائسنس تحت هڪ لائبريري کوليو آهي mmalloc ميموري مختص ڪرڻ واري نظام جي نفاذ کان اصل ۾ ٻولين جي رن ٽائم اجزاء لاءِ ٺاهي وئي ڪوڪا и لبنان. Mimalloc معياري ايپليڪيشنن ۾ استعمال لاءِ ٺاهيل آهي بغير ڪوڊ کي تبديل ڪرڻ ۽ malloc فنڪشن لاءِ شفاف متبادل طور ڪم ڪري سگھي ٿو. ونڊوز، ميڪوس، لينڪس، بي ايس ڊي ۽ ٻين يونڪس جهڙو سسٽم تي ڪم کي سپورٽ ڪري ٿو.

mimalloc جي اھم خصوصيت آھي ان جي ٺھيل عمل درآمد (ڪوڊ جي 3500 لائنن کان گھٽ) ۽ تمام اعلي ڪارڪردگي. IN ٽيسٽ ڪيا ويا mimalloc تمام مقابلي واري ميموري مختص لائبريرين کي ختم ڪيو، بشمول جيملوڪ, tcmalloc, snmalloc, rpmalloc и هوٽل.

ڪارڪردگي جو جائزو وٺڻ لاء، موجوده جو هڪ سيٽ معياري ٽيسٽ ڪجهه تجربن ۾، mimalloc ٻين سسٽم جي ڀيٽ ۾ ڪيترائي ڀيرا تيز آهي؛ مثال طور، مختلف موضوعن جي وچ ۾ اعتراض جي منتقلي جي امتحان ۾، mimalloc 2.5 ڀيرا وڌيڪ تيز ٿي ويو tcmalloc ۽ jemalloc کان. ساڳئي وقت، اڪثر تجربن ۾، گهٽ ياداشت جو استعمال پڻ مشاهدو ڪيو ويو آهي؛ ڪجهه حالتن ۾، ياداشت جي استعمال کي 25 سيڪڙو گهٽائي سگهجي ٿو.

Microsoft کوليو آهي ڪوڊ ڪوڊ لاءِ mimalloc ميموري مختص ڪرڻ واري نظام

اعلي ڪارڪردگي خاص طور تي مفت لسٽ شارڊنگ جي استعمال ذريعي حاصل ڪئي وئي آهي. ھڪڙي وڏي لسٽ جي بدران، mimalloc ننڍين لسٽن جو ھڪڙو سلسلو استعمال ڪري ٿو، جن مان ھر ھڪ ياداشت واري صفحي تي پابند آھي. اهو طريقو ٽڪنڊي کي گھٽائي ٿو ۽ ميموري ۾ ڊيٽا جي جڳهه کي وڌائي ٿو. هڪ ميموري صفحو ساڳيو سائيز جي بلاڪن جو هڪ گروپ ٿيل سيٽ آهي. 64-bit سسٽم تي، صفحي جي سائيز عام طور تي 64 KB آهي. جيڪڏهن صفحي ۾ ڪو به قبضو ٿيل بلاڪ نه رهجي ويو آهي، اهو مڪمل طور تي آزاد ٿي ويندو آهي ۽ ميموري آپريٽنگ سسٽم ڏانهن موٽائي ويندي آهي، جيڪو ڊگهي هلندڙ پروگرامن ۾ ميموري جي قيمت ۽ تقسيم کي گھٽائي ٿو.

لائبريري کي ڳنڍڻ واري مرحلي ۾ شامل ڪري سگھجي ٿو يا اڳ ۾ ئي گڏ ٿيل پروگرام لاءِ لوڊ ڪري سگھجي ٿو (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). لائبريري پڻ مهيا ڪري ٿي API ڪارڪردگيءَ کي رن ٽائم ۾ ضم ڪرڻ ۽ ٺيڪ ٺاڪ رويي جي ڪنٽرول لاءِ، مثال طور، سست ميموري رليز هينڊلر کي ڳنڍڻ ۽ هڪجهڙائي سان ريفرنس ڪائونٽر کي وڌائڻ لاءِ. اهو ممڪن آهي ته ڪيترن ئي "هيپس" ٺاهي ۽ استعمال ڪريو ايپليڪيشن ۾ مختلف ميموري علائقن ۾ ورهائڻ لاء. اهو پڻ ممڪن آهي ته ڍير کي مڪمل طور تي آزاد ڪيو وڃي، بغير بغير ۽ ان ۾ رکيل شين کي الڳ ڪرڻ کان سواء.

لائبريري کي محفوظ موڊ ۾ تعمير ڪرڻ ممڪن آهي، جنهن ۾ خاص ميموري چيڪ صفحا (گارڊ-پيجز) بلاڪ جي حدن تي رکيا ويندا آهن، ۽ بلاڪ ورهائڻ جي بي ترتيب ڪرڻ ۽ آزاد ٿيل بلاڪن جي فهرستن جي انڪرپشن کي استعمال ڪيو ويندو آهي. اهڙن قدمن کي ممڪن بڻائي ٿو ته هيپ تي ٻڌل بفر اوور فلوز جي استحصال لاءِ اڪثر عام ٽيڪنالاجي کي بلاڪ ڪرڻ. جڏهن توهان محفوظ موڊ کي فعال ڪريو ٿا، ڪارڪردگي تقريبا 3٪ گهٽجي ٿي.

mimalloc جي خاصيتن مان، اهو پڻ نوٽ ڪيو ويو آهي ته اهو وڏي ٽڪراء جي ڪري bloating سان مسئلن لاء حساس ناهي. بدترين صورت حال ۾، ميٽاداٽا لاء ميموري جو استعمال 0.2٪ وڌائي ٿو ۽ ورهايل ياداشت لاء 16.7٪ تائين پهچي سگھي ٿو. وسيلن تائين رسائي حاصل ڪرڻ دوران تڪرار کان بچڻ لاء، mimalloc صرف ايٽمي آپريشن استعمال ڪندو آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو