Eng Grupp vu Fuerscher vun däitschen Universitéiten
D'Rust Versioun vum Chauffer huet sech an der Leeschtung ganz no beim Referenz Chauffer an der C Sprooch gewisen. Ënnert enger Laascht mat der simultaner Sendung vu Blocks vun 32 Pakete war de Rust Chauffer liicht hannendrun, awer an Tester mat méi wéi 32 Pakete pro Block war d'Geschwindegkeet praktesch net anescht wéi de C Chauffer an huet d'Leeschtung um Niveau vun der Veraarbechtung 28 Millioune bewisen. Pakete pro Sekonn op engem Server mat engem Xeon CPU E3-1230 v2 3.3 GHz.
Déi nächst Nisch wat d'Performance ugeet gouf vu Chauffeuren an de Go an C # Sprooche besat, déi zimlech enk Resultater gewisen hunn (de Go Chauffer huet an Tester mat Blocken vu bis zu 16 Päck gewonnen, an huet ugefaang liicht an Tester mat méi wéi 16 Päck ze verléieren an engem Block). Mat 256 Pakete pro Block war d'Peakleistung vum C # Chauffer ongeféier 28 Millioune Pakete pro Sekonn, an de Go Chauffer war ongeféier 25 Millioune Pakete pro Sekonn.
Als nächst, mat zimlech enke Resultater, waren d'Chauffeuren fir
Java, OCaml an Haskell, déi scho bemierkbar hannert de virdru betruechten Optiounen hannerlooss hunn an déi 12 Millioune Pakete pro Sekonn Bar net iwwerwanne konnten. Swift a JavaScript Chauffeuren hunn eng nach méi grouss Lag gewisen, kënnen Streams um Niveau vu 5 Millioune Pakete pro Sekonn veraarbechten.
Den Top Ranking gouf vum Python Chauffer ofgeschloss, deen nëmmen 0.14 Millioune Pakete pro Sekonn veraarbecht huet. D'Python-Implementatioun gouf benotzt fir d'Geschwindegkeet vun den Dolmetscher ouni JIT an ouni spezifesch Optimisatiounen ze evaluéieren (de Code gouf mat CPython 3.7 ausgefouert a war net kompatibel mat PyPy, awer et gëtt bemierkt datt d'Optimiséierung vun Datenspeicherstrukturen d'Performance ëm ongeféier 10 Mol verbesseren konnt. ).
Zousätzlech goufen latency Tester duerchgefouert fir d'Effektivitéit vum Puffer ze weisen an den Impakt vum Müllsammler. Den Test huet d'Latenz gemooss nodeems all Paket vum Chauffer weidergeleet gouf am Verglach mat der exakter Zäit wou et geschéckt gouf. D'Leader waren nach ëmmer d'C a Rust Chauffeuren, d'Resultater vun deenen praktesch net z'ënnerscheeden fir e Flux vun 1 Millioun Päck pro Sekonn (ongeféier 20 µs). De Go-Chauffer huet gutt geschafft, just liicht hannert de Leader an ass och um Niveau vun 20 µs bliwwen. Den C # Chauffer huet Verspéidungen vun ongeféier 50 µs gewisen.
Déi längste Verzögerungen goufen duerch JavaScript an Java Treiber gewisen (Latens vu méi wéi 300 µs).
D'Etude gouf duerchgefouert fir d'Méiglechkeet ze bewäerten Chauffeuren a Betribssystemkomponenten a méi héije Sprooche wéi C. De Moment sinn 39 vun 40 Erënnerungsproblemer am Linux mat Treiber verbonnen, sou datt d'Problemer vun enger méi sécherer Sprooch benotzen an Treiber aus dem Kernel an an de Benotzerraum bewegt
Am Laf vun der Aarbecht gouf ofgeschloss datt d'Rust Sprooch de beschte Kandidat fir d'Entwécklung vum Chauffeur ass. D'Kapazitéite vum Rust eliminéieren d'Problemer verbonne mat engem nidderegen Niveau Memory Gestioun op Käschte vun ongeféier 2% bis 10% Leeschtungsverloscht am Verglach mat C Chauffeuren. Go an C # ginn och als gëeegent ugesinn fir Systemkomponenten a Situatiounen ze kreéieren wou Ënner-Millisekonnen Latenz verursaacht duerch Müllsammlung akzeptabel ass.
Source: opennet.ru