Whakatauritenga o nga mahi taraiwa whatunga i roto i nga putanga i roto i te 10 nga reo hotaka

He roopu kairangahau mai i nga whare wananga o Tiamana whakaputaina nga hua whakamātau, i te wa e 10 nga putanga o te taraiwa paerewa mo nga kaari whatunga Intel Ixgbe (X10xx) 5-gigabit i whakawhanakehia i roto i nga reo rereke rereke. Ka rere te taraiwa i te waahi kaiwhakamahi me te whakatinana i roto i te C, Rust, Go, C #, Java, OCaml, Haskell, Swift, JavaScript me Python. I te wa e tuhi ana i te waehere, ko te kaupapa matua ko te whakatutuki i nga mahi pai rawa atu, me te whai whakaaro ki nga ahuatanga o ia reo. Ko nga whiringa katoa he rite tonu te mahi me te tata ki te 1000 rarangi waehere. Nga whanaketanga kaupapa horapa i raro i te raihana BSD.

Ko te putanga Rust o te taraiwa i tino tata ki te mahi ki te taraiwa tohutoro i te reo C. I raro i te kawenga me te tuku i te wa kotahi o nga poraka o te 32 nga paatete, he paku ki muri te taraiwa Rust, engari i roto i nga whakamatautau me te neke atu i te 32 nga paatete mo ia poraka, ko te tere kaore i rereke mai i te taraiwa C me te whakaatu i nga mahi i te taumata o te tukatuka 28 miriona. pākete ia hēkona i runga i te tūmau me te Xeon CPU E3-1230 v2 3.3 GHz.

Whakatauritenga o nga mahi taraiwa whatunga i roto i nga putanga i roto i te 10 nga reo hotaka

Ko te kohanga e whai ake nei mo te mahi i nohoia e nga kaitaraiwa i roto i nga reo Haere me C#, i whakaatu i nga hua tino tata (i toa te taraiwa Go i nga whakamatautau me nga poraka tae atu ki te 16 nga paatete, a ka timata te ngaro i nga whakamatautau me te neke atu i te 16 nga putea. i roto i te poraka). Ki te 256 nga paatete mo ia poraka, ko te tino mahi o te taraiwa C# he tata ki te 28 miriona paatete mo ia hekona, a ko te taraiwa Haere he tata ki te 25 miriona paatete mo ia hekona.

I muri mai, me nga hua tata, ko nga taraiwa mo
Java, OCaml me Haskell, kua kitea kua takamuri i muri i nga whiringa i whakaarohia i mua, kaore i taea te wikitoria i nga paatete 12 miriona mo ia pae tuarua. Ko nga taraiwa Swift me JavaScript i whakaatu i te wa roa ake, i te kaha ki te tukatuka i nga awa i te taumata o te 5 miriona paatete mo ia hekona.

Ko te taumata teitei i oti i te taraiwa Python, i kaha ki te tukatuka i nga paatete 0.14 miriona noa mo ia hekona. I whakamahia te whakatinanatanga Python ki te arotake i te tere o nga kaiwhakamaori me te kore JIT me te kore arotautanga motuhake (i mahia te waehere ma te whakamahi i te CPython 3.7 kaore i te hototahi ki a PyPy, engari e tohuhia ana ka taea e te arotautanga o nga hanganga rokiroki raraunga te whakapai ake i nga mahi ma te 10 nga wa. ).

I tua atu, i mahia nga whakamatautau tohetohe ki te whakaatu i te whaihua o te aukati me te paanga o te kaikohi paru. I inehia e te whakamatautau te roanga i muri i te tukunga o ia kete e te kaitaraiwa ka whakaritea ki te wa tika i tukuna ai. Ko nga kaihautu tonu nga kaitaraiwa C me Rust, ko nga hua kaore i tino kitea mo te rere o te 1 miriona paatete ia hekona (tata ki te 20 µs). He pai te mahi a te kaitaraiwa o te Go, he paku noa i muri i nga kaiarahi me te noho tonu ki te taumata 20 µs. I whakaatu te atekōkiri C# i te roa tata ki te 50 µs.
Ko nga whakaroa roa rawa atu i whakaatuhia e nga taraiwa JavaScript me Java (neke atu i te 300 µs te roanga roa).

Whakatauritenga o nga mahi taraiwa whatunga i roto i nga putanga i roto i te 10 nga reo hotaka

I whakahaerehia te rangahau hei aromatawai i te tupono ki te whakawhanake i nga taraiwa me nga waahanga punaha whakahaere i roto i nga reo taumata teitei ake i te C. I tenei wa, ko te 39 o nga raruraru mahara 40 i roto i te Linux e pa ana ki nga taraiwa, na ko nga take o te whakamahi i te reo haumaru ake me te neke atu i nga taraiwa mai i te kernel me te waahi kaiwhakamahi. noho whai take me nga kaihanga kua kaha ki te whakamatau i tenei huarahi (hei tauira, kua whakawhanakehia e Google he puranga TCP mo te OS Kotukutuku i roto i te reo Haere, kamupene CloudFlare hanga te whakatinanatanga o te kawa QUIC i Rust, kua nekehia e Apple te puranga TCP i runga i nga taputapu pūkoro ki te waahi kaiwhakamahi).

I te wa o te mahi, i whakatauhia ko te reo Rust te kaitono pai mo te whanaketanga taraiwa. Ko nga kaha o Rust ka whakakore i nga raru e pa ana ki te whakahaere mahara taumata iti i te utu tata ki te 2% ki te 10% te ngaronga mahi ka whakaritea ki nga taraiwa C. Ko te Haere me te C# ka whakaarohia he pai mo te hanga i nga waahanga punaha i nga waahi ka whakaaehia te roanga iti-millisecond na te kohinga para.

Source: opennet.ru

Tāpiri i te kōrero