Comparatio retis exactoris observantia in versionibus in 10 programmandi linguarum

Coetus inquisitores ex universitatibus Germanicis published results experimentum, in quibus 10 versiones vexillum coegi pro 10-gigabit Intel Ixgbe (X5xx) schedae retis variis programmatibus linguarum elaboratae sunt. Auriga in spatium usoris currit et perficitur in C, Rust, Go, C#, Java, OCaml, Haskell, Celer, JavaScript et Python. Cum codicem scriberet, focus principalis erat ut optima possibilia efficeret, attentis notis cuiusque linguae. Omnes optiones in functionitate identicae sunt et ex circiter 1000 lineis codicis constant. Progressiones Project propagatio sub licentia BSD.

Rust versionem aurigae evasit arctissimam esse in effectu ad referentem coegi in lingua C. Sub onere simultaneo misso caudices 32 facis, rubigo agitator paulo post erat, sed in probationibus cum plusquam 32 fasciculis per scandalum, celeritas paene nulla a C agitatori diversa et demonstrata effectio in gradu processus 28 decies centena millia. per secundam de servo cum Xeon CPU E3-1230 v2 3.3 GHz.

Comparatio retis exactoris observantia in versionibus in 10 programmandi linguarum

Proximus angulus in terminis faciendis ab aurigis in lingua Go et C# occupata est, quae eventus satis comminus ostendit (coegi Ite in probationibus cum stipitibus usque ad 16 fasciculos vicit, et leviter in probationibus plus quam 16 fasciculis amittere coepit. in stipitem). Cum 256 fasciculis per stipitem, cacumen exsequendum C# exactoris erat circiter 28 miliones per alterum, et Go agitator circiter 25 decies centena millia per secundam erat.

Dein, cum satis confertis eventibus, equites erant
Java, OCaml et Haskell, quae iam notabiliter pigri erant post optiones antea perpensis, 12 decies centena millia per secundam vectem superare non potuerunt. Celeres et aurigae JavaScript plus etiam ostendit tarditatem, posse procedere rivulos in gradu 5 miliones per alterum facis.

Summum ordinem ab exactore Pythone confectum est, quod tantum 0.14 decies centena millia per alterum processum facere poterat. Exsecutio Python adhibita est ad celeritatem interpretum aestimandi sine JIT et sine optimizationibus specificis (codex usus CPython 3.7 exsecutus est et cum PyPy non compatitur, sed notatur optimam notitiarum repositionis structuram per fere 10 tempora emendare posse. ).

Accedit, latency probatio facta est ut efficaciam buffering et ictum purgamentorum publicanorum ostenderet. Probatio latency mensuratur postquam singulae fasciculi ab exactore ad tempus missum comparatum mittebantur. Duces adhuc erant aurigae C et Rust, quorum eventus prope indiscretae erant pro fluxu 1 decies centena millia per alterum (circiter XX Β΅s). Ite agitator bene praestitit, leviter tantum post duces et etiam in gradu 20 Β΅s manens. Auriga C# moras circiter 20 Β΅s ostendit.
Morae longissimae a JavaScript et rectoribus Javae ostensae sunt (latenciis plus quam 300 Β΅s).

Comparatio retis exactoris observantia in versionibus in 10 programmandi linguarum

Studium perductum est aestimandi facultatem rectores evolutionis et systematis operandi in altioribus gradibus linguae quam C. In praesenti, 39 ex 40 quaestionibus memoriae Linux cum rectoribus comparantur, unde proventus utendi lingua tutiore et rectoribus e nucleo movendis et in spatio usoris. manet pertinet et artifices iam actuose in hanc partem experiuntur (exempli gratia: Google BIBLIOTHECA TCP pro OS evolvit Fraxinus excelsior in Go lingua, CloudFlare company creatus QUIC protocolli in Rust exsecutionem, Apple TCP acervum in machinis mobilibus in spatium usoris movit).

In decursu operis conclusum est linguam Rusticam evolutionis exactoris optimam esse candidatam. Facultates rubiginis eliminare problemata cum administratione memoriae humili gradu adiuncta sumptus circa 2% ad 10% damnum perficiendi cum C rectoribus comparatum. Vade et C# etiam apti censentur ad componentes systematis componentes in condicionibus in quibus latency sub-millesimo secundo ab collectione purgamentorum accepta est.

Source: opennet.ru