Гурухи олимони университетхои Германия
Версияи Rust ронанда аз ҷиҳати иҷроиш ба драйвери истинод C хеле наздик буд. Ҳангоми сарборӣ бо як фиристодани блокҳои 32 пакет, ронандаи Rust каме ақиб монд, аммо дар озмоишҳо бо зиёда аз 32 пакет дар як блок, он амалан бо суръат аз драйвери C фарқ надошт ва дар сатҳи коркард нишон дод. 28 миллион пакет дар як сония дар сервер бо Xeon CPU E3-1230 v2 3.3 ГГц.
Ҷойгоҳи навбатиро аз рӯи нишондиҳандаҳо ронандагони Go ва C# ишғол карданд, ки натиҷаҳои хеле наздик нишон доданд (драйвери Go дар санҷишҳо бо блокҳое, ки то 16 бастаро дар бар мегирифтанд, ғолиб омад ва дар санҷишҳо бо зиёда аз 16 бастаҳо дар як адад каме гум шудан гирифт. блок). Бо 256 баста дар як блок, иҷрои баландтарин барои драйвери C # тақрибан 28Mpps ва барои драйверҳои Go тақрибан 25Mpps буд.
Баъдан, бо натиҷаҳои хеле наздик, пас аз ронандагон барои
Java, OCaml ва Haskell, ки аллакай аз имконоти қаблан баррасӣшуда ба таври назаррас паси сар буданд ва натавонистанд сатри 12 миллион пакет дар як сонияро бартараф кунанд. Ронандагон дар асоси Swift ва JavaScript боз ҳам қафомонии бештареро нишон доданд, ки тавонистанд ҷараёнҳоро дар сатҳи 5 миллион пакет дар як сония коркард кунанд.
Драйвер бо забони Python рейтингро баст, ки тавонист дар як сония ҳамагӣ 0.14 миллион пакетро коркард кунад. Татбиқи Python барои арзёбии суръати тарҷумонҳо бидуни JIT ва бидуни оптимизатсияи мушаххас истифода шудааст (код бо истифода аз CPython 3.7 иҷро шуда буд ва бо PyPy мувофиқ набуд, аммо қайд карда мешавад, ки оптимизатсияи сохторҳои додаҳо метавонад корҳоро тақрибан 10 маротиба беҳтар кунад).
Илова бар ин, санҷишҳои латентӣ гузаронида шуданд, ки самаранокии буферӣ ва таъсири коллектори партовҳоро нишон доданд. Санҷиш таъхирро пас аз интиқоли ҳар як баста аз ҷониби ронанда дар муқоиса бо вақти маълуми ирсол чен кард. Роҳбарон ҳанӯз ҳам ронандагони C ва Rust буданд, ки натиҷаҳои онҳо барои ҷараёни 1 миллион пакет дар як сония (тақрибан 20 мкс) қариб фарқ намекарданд. Ронанда бо забони Go хуб баромад кард, ки аз пешвоён каме ақиб монд ва инчунин дар сатҳи 20 мкс нигоҳ дошта шуд. Ронандаи C# тақрибан 50 мкс таъхирҳоро нишон дод.
Ронандагон дар асоси JavaScript ва Java таъхирҳои калонтаринро нишон доданд (таъхирҳо зиёда аз 300 мкс).
Таҳқиқот бо мақсади баҳодиҳии имкони таҳияи драйверҳо ва ҷузъҳои системаи амалиётӣ бо забонҳои сатҳи баландтар аз C гузаронида шуд. Дар айни замон, аз 39 мушкилоти хотираи Linux 40-тои он ба драйверҳо вобаста аст, бинобар ин, масъалаҳои қабули забони бехатар ва интиқоли драйверҳо аз ядро ва фазои корбар
Дар рафти кор ба хулосае омад, ки забони русй барои такмили ронандагон бехтарин номзад аст. Хусусиятҳои аз ҷониби Rust пешниҳодшуда ба шумо имкон медиҳанд, ки аз мушкилоте, ки дар натиҷаи коркарди хотираи сатҳи паст ба вуҷуд меоянд, бо арзиши ҷаримаи иҷроиш тақрибан 2% -10% дар муқоиса бо драйверҳои забони C халос шавед. Go ва C# инчунин барои сохтани ҷузъҳои система дар ҳолатҳое мувофиқанд, ки таъхири субмиллисония аз ҷониби коллектори партовҳо қобили қабул аст.
Манбаъ: opennet.ru