Fa'atusatusaga o fa'atinoga o aveta'avale feso'ota'iga i fa'aliliuga i gagana fa'apolokalame e 10

O se vaega o tagata suʻesuʻe mai iunivesite Siamani lomia iuga fa'ata'ita'iga, lea e 10 lomiga o se aveta'avale masani mo 10-gigabit Intel Ixgbe (X5xx) kata fesoʻotaʻiga na atiaʻe i gagana eseese polokalame. O le avetaavale e tamoʻe i avanoa faʻaoga ma faʻatinoina i C, Rust, Go, C #, Java, OCaml, Haskell, Swift, JavaScript ma Python. Pe a tusia le code, o le taulaiga autu o le ausia o le faatinoga sili ona lelei, ma amanaia uiga o gagana taitasi. O filifiliga uma e tutusa i le faʻatinoga ma e aofia ai le tusa ma le 1000 laina o code. Atinae o poloketi salalau i lalo ole laisene BSD.

O le Rust version o le avetaavale na foliga mai e matua vavalalata i le faatinoga i le avetaavale faasino i le gagana C. I lalo o se uta ma le lafoina faʻatasi o poloka o 32 paʻu, o le avetaavale Rust sa i tua laʻititi, ae i suʻega e sili atu i le 32 paʻu i le poloka, o le saoasaoa e toetoe lava a leai se eseesega mai le avetaavale C ma faʻaalia le faʻatinoga i le tulaga o le gaosiga 28 miliona. afifi i le sekone i luga o se 'auʻaunaga ma le Xeon CPU E3-1230 v2 3.3 GHz.

Fa'atusatusaga o fa'atinoga o aveta'avale feso'ota'iga i fa'aliliuga i gagana fa'apolokalame e 10

O le isi fa'ailoga i tulaga o le fa'atinoga sa nofoia e aveta'avale i le Go ma le C # gagana, lea na fa'aalia ai ni fa'ai'uga vavalalata (na manumalo le aveta'avale Go i su'ega ma poloka e o'o atu i le 16 pepa, ma amata ona leiloa la'ititi i su'ega e sili atu i le 16 pepa. i totonu o se poloka). Faatasi ai ma le 256 pepa i le poloka, o le maualuga o le faatinoga o le avetaavale C # e tusa ma le 28 miliona pepa i le sekone, ma le avetaavale Go e tusa ma le 25 miliona pepa i le sekone.

Sosoo ai, faatasi ai ma taunuuga latalata, o avetaavale mo
Java, OCaml ma Haskell, lea ua maitauina le tuai i tua atu o filifiliga na iloiloina muamua ma e le mafai ona manumalo i le 12 miliona pepa i le pa lona lua. O aveta'avale Swift ma JavaScript na fa'aalia le sili atu o le lag, o le mafai ona fa'agasolo vaitafe i le maualuga o le 5 miliona pepa i le sekone.

O le tulaga maualuga na faʻamaeʻaina e le avetaʻavale Python, lea na mafai ona faʻatautaia naʻo le 0.14 miliona pepa i le sekone. O le faʻatinoga o le Python na faʻaaogaina e iloilo ai le saoasaoa o le au faʻaliliuga e aunoa ma le JIT ma e aunoa ma ni faʻataʻitaʻiga faʻapitoa (o le tulafono na faʻaaogaina e faʻaaoga ai le CPython 3.7 ma e leʻi fetaui ma PyPy, ae o loʻo maitauina o le faʻaleleia o fausaga faʻamaumauga e mafai ona faʻaleleia le faʻatinoga e tusa ma le 10 taimi. ).

E le gata i lea, na faia ni su'ega o le latency e fa'ailoa ai le aoga o le fa'asao ma le a'afiaga o le ao lapisi. O le su'ega na fuaina ai le taofi pe a uma ona tu'uina atu pepa ta'itasi e le aveta'avale fa'atusatusa i le taimi tonu na lafo ai. O taʻitaʻi sa avea pea ma avetaʻavale C ma Rust, o taunuuga na toetoe lava a le mafai ona iloa mo le tafe o le 1 miliona pepa i le sekone (tusa ma le 20 µs). Na lelei le ta'avale a le Go, e na'o le pito i tua o ta'ita'i ma tumau ai i le maualuga o le 20 µs. Na fa'aalia e le aveta'avale C# le tuai e tusa ma le 50 µs.
O fa'atuai sili ona umi na fa'aalia e le au ta'avale JavaScript ma Java (lateni e sili atu i le 300 µs).

Fa'atusatusaga o fa'atinoga o aveta'avale feso'ota'iga i fa'aliliuga i gagana fa'apolokalame e 10

O le suʻesuʻega na faia e iloilo ai le avanoa e atiaʻe ai taʻavale ma vaega faʻaogaina i le gagana maualuga atu nai lo C. I le taimi nei, 39 mai le 40 mafaufauga faʻafitauli i Linux e fesoʻotaʻi ma avetaʻavale, o le mea lea o mataupu o le faʻaaogaina o se gagana sili atu ona malupuipuia ma faʻanofo avetaʻavale mai le fatu ma i totonu o avanoa faʻaoga. tumau talafeagai ma o loʻo faʻataʻitaʻiina e le au gaosi oloa i lenei itu (mo se faʻataʻitaʻiga, Google ua atiaʻe se TCP stack mo le OS Fuchsia i le gagana Go, kamupani CloudFlare faia faʻatinoga o le QUIC protocol i Rust, Apple ua faʻanofoina le TCP stack i luga o masini feaveaʻi i avanoa faʻaoga).

I le faagasologa o le galuega, na faaiʻuina ai o le gagana Rust o le sui sili lea mo le atinaʻeina o avetaavale. Ole malosi ole Rust e faʻaumatia ai faʻafitauli e fesoʻotaʻi ma le maualalo o le faʻaogaina o mafaufauga ile tau e tusa ma le 2% i le 10% faʻaletonu o galuega faʻatusatusa i avetaavale C. O le alu ma le C# e manatu foi e talafeagai mo le fatuina o vaega o le polokalama i tulaga e talia ai le laititi milisecond e mafua mai i lapisi.

puna: opennet.ru

Faaopoopo i ai se faamatalaga