Ukuqhathaniswa kokusebenza komshayeli wenethiwekhi ezinguqulweni ezilimini zokuhlela eziyi-10

Iqembu labacwaningi abavela emanyuvesi aseJalimane eshicilelwe Imiphumela ukuhlola, lapho izinguqulo eziyi-10 zomshayeli ojwayelekile we-10-gigabit Intel Ixgbe (X5xx) amakhadi enethiwekhi athuthukiswa ngezilimi zokuhlela ezihlukene. Umshayeli ugijima esikhaleni somsebenzisi futhi usetshenziswa ku-C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript kanye nePython. Lapho kubhalwa ikhodi, okwakugxilwe kakhulu ekuzuzeni ukusebenza okungcono kakhulu, kucatshangelwa izici zolimi ngalunye. Zonke izinketho ziyafana ekusebenzeni futhi zihlanganisa cishe imigqa yekhodi eyi-1000. Intuthuko yephrojekthi ukubhebhetheka ngaphansi kwelayisensi ye-BSD.

Inguqulo ye-Rust yomshayeli ibonakale isondelene kakhulu ekusebenzeni komshayeli wereferensi ngolimi lwe-C. Ngaphansi komthwalo othunyelwa ngesikhathi esisodwa amabhlogo wamaphakethe angama-32, umshayeli we-Rust wayengemuva kancane, kodwa ezivivinyweni ezinamaphakethe angaphezu kuka-32 ibhulokhi ngayinye, isivinini sasingafani neze nomshayeli we-C futhi wabonisa ukusebenza ezingeni lokucubungula izigidi ezingu-28. amaphakethe ngomzuzwana kuseva ene-Xeon CPU E3-1230 v2 3.3 GHz.

Ukuqhathaniswa kokusebenza komshayeli wenethiwekhi ezinguqulweni ezilimini zokuhlela eziyi-10

I-niche elandelayo ngokusebenza yayihlalwa ngabashayeli bezilimi ze-Go kanye ne-C#, ebonise imiphumela esondelene kakhulu (umshayeli we-Go uwine ezivivinyweni ezinamabhulokhi amaphakethe angafika kwayi-16, futhi waqala ukulahlekelwa kancane ezivivinyweni ezinamaphakethe angaphezu kwe-16. kubhlokhi). Ngamaphakethe angu-256 ibhulokhi ngayinye, ukusebenza okuphezulu komshayeli we-C# bekucishe kube ngamaphakethe ayizigidi ezingu-28 ngomzuzwana, futhi umshayeli we-Go ube cishe amaphakethe ayizigidi ezingu-25 ngomzuzwana.

Okulandelayo, ngemiphumela esondele kakhulu, kwaba abashayeli be
I-Java, i-OCaml ne-Haskell, ebezivele zisalela ngemuva kwezinketho ezicatshangelwe ngaphambilini futhi azikwazanga ukunqoba amaphakethe ayizigidi eziyi-12 ngebha yesibili. Abashayeli be-Swift ne-JavaScript bakhombise ukunensa okukhulu, bekwazi ukucubungula ukusakaza ezingeni lamaphakethe ayizigidi ezi-5 ngomzuzwana.

Isikhundla esiphezulu saqedwa umshayeli wePython, okwazile ukucubungula amaphakethe ayizigidi ezingu-0.14 ngomzuzwana. Ukuqaliswa kwe-Python kwasetshenziselwa ukuhlola ijubane labahumushi ngaphandle kwe-JIT futhi ngaphandle kokulungiselelwa okuthile (ikhodi yenziwe kusetshenziswa i-CPython 3.7 futhi yayingahambisani ne-PyPy, kodwa kuyaphawulwa ukuthi ukulungiselelwa kwezakhiwo zokugcina idatha kungathuthukisa ukusebenza cishe izikhathi ezingu-10. ).

Ukwengeza, ukuhlolwa kokubambezeleka kwenziwa ukuze kuboniswe ukusebenza kahle kokugcina kumthamo kanye nomthelela womqoqi kadoti. Ukuhlola kukala ukubambezeleka ngemva kokuba iphakethe ngalinye lihanjiswe umshayeli uma kuqhathaniswa nesikhathi esiqondile elithunyelwe ngaso. Abaholi babesengabashayeli be-C kanye neRust, imiphumela yakhona eyayingabonakali ngokugeleza kwamaphakethe ayisigidi ngesekhondi (cishe ama-1 Β΅s). Umshayeli we-Go wenze kahle, engemuva kancane kubaholi futhi ehlala ezingeni lama-20 Β΅s. Umshayeli we-C# ubonise ukubambezeleka okucishe kube ngu-20 Β΅s.
Ukubambezeleka okude kakhulu kuboniswe abashayeli be-JavaScript ne-Java (ukubambezeleka okungaphezu kuka-300 Β΅s).

Ukuqhathaniswa kokusebenza komshayeli wenethiwekhi ezinguqulweni ezilimini zokuhlela eziyi-10

Ucwaningo lwenzelwe ukuhlola ukuthi kungenzeka yini ukuthuthukisa abashayeli kanye nezingxenye zesistimu yokusebenza ngezilimi ezisezingeni eliphakeme kune-C. Njengamanje, izinkinga zenkumbulo ezingama-39 kwezingu-40 ku-Linux zihlobene nabashayeli, ngakho-ke izindaba zokusebenzisa ulimi oluvikeleke kakhulu nokuhambisa abashayeli ngaphandle kwe-kernel futhi bangene endaweni yomsebenzisi. hlala ubalulekile futhi abakhiqizi sebevele bazama ngale ndlela (ngokwesibonelo, i-Google ithuthukise isitaki se-TCP se-OS Fuchsia ngolimi lwe-Go, inkampani ye-CloudFlare kudaliwe ukuqaliswa kwephrothokholi ye-QUIC ku-Rust, i-Apple ihambise isitaki se-TCP kumadivayisi eselula endaweni yomsebenzisi).

Ngokuqhubeka komsebenzi, kwaphethwa ngokuthi ulimi lweRust luyikhandidethi elingcono kakhulu lokuthuthukiswa kwabashayeli. Amandla kaRust aqeda izinkinga ezihambisana nokuphathwa kwenkumbulo yezinga eliphansi ngezindleko zokulahleka kokusebenza okucishe kube ngu-2% kuya ku-10% uma kuqhathaniswa nezishayeli ze-C. I-Go ne-C# nayo ibhekwa njengefanele ukudala izingxenye zesistimu ezimeni lapho ukubambezeleka kwe-sub-millisecond okubangelwa ukuqoqwa kukadoti kwamukelekile.

Source: opennet.ru

Engeza amazwana