Kev sib piv ntawm lub network tsav tsheb ua haujlwm hauv cov qauv hauv 10 hom lus programming

Ib pawg ntawm cov kws tshawb fawb los ntawm German universities luam tawm cov ntsiab lus kev sim, thaum lub sij hawm 10 versions ntawm tus qauv tsav tsheb rau 10-gigabit Intel Ixgbe (X5xx) network cards tau tsim nyob rau hauv ntau hom lus programming. Tus tsav tsheb khiav hauv cov neeg siv qhov chaw thiab tau siv hauv C, Rust, Go, C #, Java, OCaml, Haskell, Swift, JavaScript thiab Python. Thaum sau cov lej, lub ntsiab lus tseem ceeb yog ua kom tiav qhov ua tau zoo tshaj plaws, suav nrog cov yam ntxwv ntawm txhua hom lus. Txhua qhov kev xaiv zoo ib yam hauv kev ua haujlwm thiab muaj kwv yees li 1000 kab ntawm cov lej. Kev tsim kho qhov project kis mus raws li BSD daim ntawv tso cai.

Lub Rust version ntawm tus neeg tsav tsheb tau dhau los ua ze rau qhov ua tau zoo rau tus neeg tsav tsheb siv hauv C lus. Nyob rau hauv ib qho kev thauj khoom nrog ib txhij xa cov blocks ntawm 32 pob ntawv, tus tsav tsheb Rust yog me ntsis tom qab, tab sis nyob rau hauv kev ntsuam xyuas nrog ntau tshaj 32 pob ntawv rau ib lub block, qhov ceev tau xyaum tsis txawv ntawm C tsav tsheb thiab ua kom pom kev ua tau zoo ntawm qib ua 28 lab. pob ntawv ib ob ntawm lub server nrog Xeon CPU E3-1230 v2 3.3 GHz.

Kev sib piv ntawm lub network tsav tsheb ua haujlwm hauv cov qauv hauv 10 hom lus programming

Lub niche tom ntej ntawm kev ua tau zoo tau nyob los ntawm cov neeg tsav tsheb hauv Go thiab C# cov lus, uas tau pom cov txiaj ntsig zoo (tus tsav tsheb Go yeej nyob rau hauv kev sim nrog cov blocks txog li 16 pob ntawv, thiab pib poob me ntsis hauv kev sim nrog ntau dua 16 pob ntawv. hauv ib lub block). Nrog 256 pob ntawv rau ib qho thaiv, qhov ua tau zoo tshaj plaws ntawm C# tsav tsheb yog kwv yees li 28 lab pob ntawv ib ob, thiab tus tsav tsheb mus yog kwv yees li 25 lab pob khoom ib ob.

Tom qab ntawd, nrog cov txiaj ntsig zoo, yog cov neeg tsav tsheb rau
Java, OCaml thiab Haskell, uas twb tau pom tias poob qis dua cov kev xaiv yav dhau los thiab tsis tuaj yeem kov yeej 12 lab pob ntawv ib lub thib ob. Swift thiab JavaScript tsav tsheb tau pom tias muaj kev lag luam ntau dua, muaj peev xwm ua cov kwj deg ntawm qib 5 lab pob ntawv ib ob.

Qhov qeb duas saum toj kawg nkaus tau ua tiav los ntawm tus tsav tsheb Python, uas tuaj yeem ua tiav tsuas yog 0.14 lab pob ntawv ib ob. Kev siv Python tau siv los ntsuas qhov ceev ntawm cov neeg txhais lus yam tsis muaj JIT thiab tsis muaj kev ua kom zoo dua qub (cov cai tau ua tiav siv CPython 3.7 thiab tsis sib haum nrog PyPy, tab sis nws tau sau tseg tias kev ua kom zoo ntawm cov ntaub ntawv khaws cia cov qauv tuaj yeem txhim kho kev ua tau zoo li ntawm 10 npaug. ).

Tsis tas li ntawd, cov kev ntsuam xyuas latency tau ua tiav los qhia txog kev ua haujlwm ntawm buffering thiab qhov cuam tshuam ntawm cov khoom khib nyiab. Kev ntsuam xyuas ntsuas qhov latency tom qab txhua pob ntawv tau xa los ntawm tus neeg tsav tsheb piv rau lub sijhawm xa mus. Cov thawj coj tseem yog tus tsav tsheb C thiab Rust, cov txiaj ntsig ntawm qhov ua tau zoo tsis muaj qhov txawv txav ntawm 1 lab pob ntawv ib ob (kwv yees li 20 Β΅s). Tus neeg tsav tsheb mus ua tau zoo, tsuas yog me ntsis tom qab cov thawj coj thiab tseem tshuav ntawm qib 20 Β΅s. Tus neeg tsav tsheb C # tau pom qhov qeeb ntawm kwv yees li 50 Β΅s.
Qhov ncua sij hawm ntev tshaj plaws tau pom los ntawm JavaScript thiab Java tsav tsheb (latencies ntau dua 300 Β΅s).

Kev sib piv ntawm lub network tsav tsheb ua haujlwm hauv cov qauv hauv 10 hom lus programming

Txoj kev tshawb no tau ua los ntsuas qhov muaj peev xwm ntawm kev tsim cov tsav tsheb thiab cov txheej txheem ua haujlwm hauv cov lus siab dua C. Tam sim no, 39 ntawm 40 lub cim xeeb teeb meem hauv Linux muaj feem cuam tshuam rau cov tsav tsheb, yog li cov teeb meem ntawm kev siv cov lus muaj kev nyab xeeb dua thiab txav cov tsav tsheb tawm ntawm lub ntsiav thiab mus rau qhov chaw siv. tseem cuam tshuam thiab cov tuam txhab lag luam twb tau ua haujlwm hauv cov kev taw qhia no (piv txwv li, Google tau tsim TCP pawg rau OS Fuchsia hauv Go lus, CloudFlare tuam txhab tsim Kev ua raws li QUIC raws tu qauv hauv Rust, Apple tau txav TCP pawg ntawm cov khoom siv txawb rau hauv qhov chaw siv).

Hauv chav kawm ntawm kev ua haujlwm, nws tau xaus lus tias Rust lus yog tus neeg sib tw zoo tshaj plaws rau kev txhim kho tsav tsheb. Rust lub peev xwm tshem tawm cov teeb meem cuam tshuam nrog kev tswj hwm kev nco qis ntawm tus nqi kwv yees li 2% mus rau 10% kev ua haujlwm poob piv rau C tsav tsheb. Mus thiab C# kuj suav hais tias tsim nyog rau kev tsim cov txheej txheem hauv cov xwm txheej uas sub-millisecond latency tshwm sim los ntawm kev khaws cov khib nyiab.

Tau qhov twg los: opennet.ru

Ntxiv ib saib