جرمن يونيورسٽين مان محققن جو هڪ گروپ
ڊرائيور جو مورچا نسخو ڪارڪردگي جي حوالي سان سي ڊرائيور جي تمام ويجهو هو. 32 پيڪن جي بلاڪن جي هڪ واحد موڪلڻ سان، رسٽ ڊرائيور ٿورڙي دير ٿي وئي، پر 32 پيڪٽس في بلاڪ کان وڌيڪ ٽيسٽن ۾، اهو عملي طور تي سي ڊرائيور کان رفتار ۾ فرق نه ڪيو ۽ پروسيسنگ جي سطح تي ڪارڪردگي جو مظاهرو ڪيو. Xeon CPU E28-3 v1230 2 GHz سان سرور تي 3.3 ملين پيڪيٽ في سيڪنڊ.
ڪارڪردگي جي لحاظ کان ايندڙ جڳهه تي Go ۽ C# ڊرائيورن جو قبضو هو، جنهن جا ڪافي ويجهي نتيجا ڏيکاريا ويا (گو ڊرائيور ٽيسٽن ۾ کٽيو جنهن ۾ 16 پيڪيجز شامل هئا، ۽ 16 کان وڌيڪ پيڪيجز سان ٽيسٽن ۾ ٿورو وڃائڻ شروع ڪيو. بلاڪ). 256 پيڪٽس في بلاڪ سان، C# ڊرائيور لاءِ چوٽي جي ڪارڪردگي تقريبن 28Mpps هئي، ۽ Go ڊرائيورز لاءِ، تقريبن 25Mpps.
اڳيون، ڪافي ويجهي نتيجن سان، ڊرائيور جي پٺيان
جاوا، OCaml ۽ Haskell، جيڪي اڳ ۾ ئي غور ڪيل اختيارن جي پويان اڳ ۾ ئي قابل ذڪر هئا ۽ 12 ملين پيڪٽس في سيڪنڊ جي بار کي ختم نه ڪري سگهيا. سوفٹ ۽ جاوا اسڪرپٽ تي ٻڌل ڊرائيورن اڃا به وڌيڪ پسمانده ڏيکاريا، جيڪي 5 ملين پيڪيٽ في سيڪنڊ جي سطح تي اسٽريم کي پروسيس ڪرڻ جي قابل هئا.
پٿون ٻولي ۾ ڊرائيور ريٽنگ بند ڪري ڇڏي، جيڪا صرف 0.14 ملين پيڪيٽ في سيڪنڊ کي پروسيس ڪرڻ جي قابل هئي. Python عمل درآمد JIT کان سواءِ ترجمانن جي رفتار کي جانچڻ لاءِ استعمال ڪيو ويو ۽ بغير مخصوص اصلاحن جي (ڪوڊ CPython 3.7 استعمال ڪندي هلايو ويو ۽ PyPy سان مطابقت نه هو، پر اهو نوٽ ڪيو ويو آهي ته ڊيٽا جي جوڙجڪ جي اصلاح ڪارڪردگي کي 10 ڀيرا بهتر ڪري سگهي ٿي).
اضافي طور تي، ويڪرائي ٽيسٽ ڪيا ويا، جن ۾ بفرنگ جي اثرائتي ۽ ردي جي ڪليڪٽر جو اثر ڏيکاريو ويو. ٽيسٽ ويڪرائي ماپ ڪئي بعد ۾ هر پيڪٽ ڊرائيور طرفان ريڊائريڪٽ ڪيو ويو، هڪ ڄاڻايل موڪل واري وقت جي مقابلي ۾. اڳواڻ اڃا تائين سي ۽ زنگ ڊرائيور هئا، جن جا نتيجا تقريباً ڌار ڌار هئا 1 ملين پيڪيٽ في سيڪنڊ (اٽڪل 20 µs) جي وهڪري لاءِ. گو ٻولي ۾ ڊرائيور سٺو پرفارم ڪيو، جيڪو صرف اڳواڻن کان ٿورو پوئتي هو ۽ پڻ 20 µs جي سطح تي رکيو ويو. C# ڊرائيور اٽڪل 50 µs جي دير ڏيکاري.
جاوا اسڪرپٽ ۽ جاوا جي بنياد تي ڊرائيورز سڀ کان وڏي دير ڏيکاريا (تاخير 300 µs کان وڌيڪ).
اڀياس ڪيو ويو ته جيئن ترقي ڪندڙ ڊرائيور ۽ آپريٽنگ سسٽم جي اجزاء جي امڪان کي جانچڻ لاء سي کان اعلي سطح جي ٻولين ۾. في الحال، 39 مان 40 لينڪس ميموري مسئلا ڊرائيور سان لاڳاپيل آهن، تنهنڪري هڪ محفوظ ٻولي کي اپنائڻ ۽ ڊرائيورن کي ڪني کان ٻاهر ۽ صارف جي جاء تي منتقل ڪرڻ جا مسئلا.
ڪم جي دوران، اهو نتيجو اهو نڪتو ته زنگ ٻولي ڊرائيور جي ترقي لاء بهترين اميدوار آهي. Rust پاران مهيا ڪيل خاصيتون توهان کي انهن مسئلن کان نجات حاصل ڪرڻ جي اجازت ڏين ٿيون جيڪي گهٽ-سطح جي ميموري هينڊلنگ سبب پيدا ٿين ٿيون، سي-ٻوليءَ جي ڊرائيورن جي مقابلي ۾ 2%-10% جي ڪارڪردگي ڏنڊ جي قيمت تي. Go ۽ C# پڻ مليا آهن سسٽم جي اجزاء جي تعمير لاءِ انهن حالتن ۾ جتي ذيلي مليسيڪنڊ دير سان گندگي ڪليڪٽر جي ڪري قابل قبول آهي.
جو ذريعو: opennet.ru