GrΕ΅p o ymchwilwyr o brifysgolion yr Almaen
Roedd fersiwn Rust y gyrrwr yn agos iawn o ran perfformiad i'r gyrrwr cyfeirio yn yr iaith C. O dan lwyth gydag anfon blociau o 32 pecyn ar yr un pryd, roedd y gyrrwr Rust ychydig ar ei hΓ΄l hi, ond mewn profion gyda mwy na 32 o becynnau fesul bloc, nid oedd y cyflymder bron yn wahanol i'r gyrrwr C a dangosodd berfformiad ar lefel prosesu 28 miliwn pecynnau yr eiliad ar weinydd gyda CPU Xeon E3-1230 v2 3.3 GHz.
Roedd y gilfach nesaf o ran perfformiad yn cael ei meddiannu gan yrwyr yn yr ieithoedd Go a C#, a ddangosodd ganlyniadau gweddol agos (ennillodd y gyrrwr Go mewn profion gyda blociau o hyd at 16 pecyn, a dechreuodd golli ychydig mewn profion gyda mwy nag 16 pecyn mewn bloc). Gyda 256 o becynnau fesul bloc, perfformiad brig y gyrrwr C# oedd tua 28 miliwn o becynnau yr eiliad, ac roedd y gyrrwr Go tua 25 miliwn o becynnau yr eiliad.
Nesaf, gyda chanlyniadau gweddol agos, oedd y gyrwyr ar gyfer
Java, OCaml a Haskell, a oedd eisoes yn amlwg ar ei hΓ΄l hi o'r opsiynau a ystyriwyd yn flaenorol ac ni allent oresgyn y bar 12 miliwn o becynnau yr eiliad. Dangosodd gyrwyr Swift a JavaScript oedi hyd yn oed yn fwy, gan allu prosesu ffrydiau ar lefel o 5 miliwn o becynnau yr eiliad.
Cwblhawyd y safle uchaf gan yrrwr Python, a oedd yn gallu prosesu dim ond 0.14 miliwn o becynnau yr eiliad. Defnyddiwyd gweithrediad Python i werthuso cyflymder y dehonglwyr heb JIT a heb optimeiddiadau penodol (gweithredwyd y cod gan ddefnyddio CPython 3.7 ac nid oedd yn gydnaws Γ’ PyPy, ond nodir y gallai optimeiddio strwythurau storio data wella perfformiad tua 10 gwaith ).
Yn ogystal, cynhaliwyd profion cuddni i ddangos effeithiolrwydd byffro ac effaith y casglwr sbwriel. Roedd y profion yn mesur yr hwyrni ar Γ΄l i bob pecyn gael ei anfon ymlaen gan y gyrrwr o'i gymharu Γ’'r union amser y'i hanfonwyd. Roedd yr arweinwyr yn dal i fod yn yrwyr C a Rust, ac roedd y canlyniadau bron yn anwahanadwy ar gyfer llif o 1 miliwn o becynnau yr eiliad (tua 20 Β΅s). Perfformiodd gyrrwr Go yn dda, dim ond ychydig y tu Γ΄l i'r arweinwyr a hefyd yn aros ar y lefel o 20 Β΅s. Dangosodd y gyrrwr C# oedi o tua 50 Β΅s.
Dangoswyd yr oedi hiraf gan yrwyr JavaScript a Java (cwyrn o fwy na 300 Β΅s).
Cynhaliwyd yr astudiaeth i asesu'r posibilrwydd o ddatblygu gyrwyr a chydrannau system weithredu mewn ieithoedd lefel uwch na C. Ar hyn o bryd, mae 39 allan o 40 o broblemau cof yn Linux yn gysylltiedig Γ’ gyrwyr, felly mae'r problemau o ddefnyddio iaith fwy diogel a symud gyrwyr allan o'r cnewyllyn ac i ofod defnyddwyr
Yn ystod y gwaith, daethpwyd i'r casgliad mai'r iaith Rust yw'r ymgeisydd gorau ar gyfer datblygu gyrwyr. Mae galluoedd Rust yn dileu'r problemau sy'n gysylltiedig Γ’ rheoli cof lefel isel ar gost o tua 2% i 10% o golled perfformiad o'i gymharu Γ’ gyrwyr C. Mae Go a C # hefyd yn cael eu hystyried yn addas ar gyfer creu cydrannau system mewn sefyllfaoedd lle mae hwyrni is-filieiliad a achosir gan gasglu sbwriel yn dderbyniol.
Ffynhonnell: opennet.ru