Gulu la ofufuza ochokera ku mayunivesite aku Germany
Mtundu wa Rust wa dalaivala udakhala woyandikana kwambiri ndi woyendetsa chilankhulo cha C. Pansi pa katundu ndi kutumiza nthawi yomweyo midadada ya mapaketi 32, dalaivala dzimbiri anali kumbuyo pang'ono, koma mu mayesero ndi mapaketi oposa 32 pa chipika, liwiro anali pafupifupi sanali osiyana ndi dalaivala C ndi anasonyeza ntchito pa mlingo wa processing 28 miliyoni. mapaketi pamphindi pa seva yokhala ndi Xeon CPU E3-1230 v2 3.3 GHz.
Gawo lotsatira pakuchita bwino linali lotanganidwa ndi madalaivala a Go ndi C # zilankhulo, zomwe zidawonetsa zotsatira zapafupi (woyendetsa Go adapambana pamayeso okhala ndi mapaketi mpaka 16, ndipo adayamba kutaya pang'ono pamayeso okhala ndi mapaketi opitilira 16. mu block). Ndi mapaketi 256 pa block iliyonse, magwiridwe antchito apamwamba a dalaivala wa C # anali pafupifupi mapaketi 28 miliyoni pa sekondi iliyonse, ndipo dalaivala wa Go anali pafupifupi mapaketi 25 miliyoni pamphindikati.
Chotsatira, ndi zotsatira zapafupi, anali madalaivala a
Java, OCaml ndi Haskell, zomwe zinali zitatsala pang'ono kutsalira pazomwe zidaganiziridwa kale ndipo sanathe kugonjetsa mapaketi 12 miliyoni pa bar sekondi iliyonse. Madalaivala a Swift ndi JavaScript adawonetsa kuchepa kwakukulu, kutha kukonza mitsinje pamlingo wa mapaketi 5 miliyoni pamphindikati.
Kusankhidwa kwapamwamba kunamalizidwa ndi dalaivala wa Python, yemwe adatha kupanga mapaketi 0.14 miliyoni okha pamphindikati. Kukhazikitsidwa kwa Python kunagwiritsidwa ntchito poyesa kuthamanga kwa omasulira popanda JIT komanso popanda kukhathamiritsa kwapadera (code idachitidwa pogwiritsa ntchito CPython 3.7 ndipo sinali yogwirizana ndi PyPy, koma zimadziwika kuti kukhathamiritsa kwa zosungirako zosungirako deta kumatha kusintha magwiridwe antchito pafupifupi nthawi za 10. ).
Kuphatikiza apo, kuyezetsa kwa latency kunachitika kuti awonetse mphamvu ya kusungitsa zinyalala komanso mphamvu ya otolera zinyalala. Kuyesedwa kunayesa latency pambuyo pake paketi iliyonse idatumizidwa ndi dalaivala poyerekeza ndi nthawi yeniyeni yomwe idatumizidwa. Atsogoleriwo anali akadali oyendetsa C ndi Dzimbiri, zotsatira zake zinali zosazindikirika chifukwa cha kutuluka kwa mapaketi 1 miliyoni pamphindi (pafupifupi 20 Β΅s). Dalaivala wa Go adachita bwino, kukhala kumbuyo pang'ono kwa atsogoleri komanso kukhalabe pamlingo wa 20 Β΅s. Dalaivala wa C # adawonetsa kuchedwa kwa pafupifupi 50 Β΅s.
Kuchedwetsa kotalika kwambiri kunawonetsedwa ndi madalaivala a JavaScript ndi Java (ma latencies opitilira 300 Β΅s).
Kafukufukuyu adachitidwa kuti awone kuthekera kopanga madalaivala ndi zida zamakina ogwiritsira ntchito m'zilankhulo zapamwamba kuposa C. Pakadali pano, 39 mwa mavuto 40 a kukumbukira mu Linux amagwirizana ndi madalaivala, kotero nkhani zogwiritsa ntchito chilankhulo chotetezeka komanso kusuntha madalaivala kuchokera mu kernel ndikupita kumalo ogwiritsa ntchito.
M'kati mwa ntchitoyo, adatsimikiza kuti chilankhulo cha dzimbiri ndiye woyenera kwambiri pakukula kwa madalaivala. Kuthekera kwa dzimbiri kumathetsa mavuto okhudzana ndi kasamalidwe ka kukumbukira kochepa pamtengo wa pafupifupi 2% mpaka 10% kutayika kwa magwiridwe antchito poyerekeza ndi madalaivala a C. Go ndi C # amaonedwanso kuti ndi oyenera kupanga zida zamakina nthawi yomwe sub-millisecond latency yoyambitsidwa ndi kusonkhanitsa zinyalala ndiyovomerezeka.
Source: opennet.ru