Fampitahana ny fahombiazan'ny mpamily tambajotra amin'ny dikan-teny amin'ny fiteny 10 fandaharana

Vondrona mpikaroka avy amin'ny oniversite alemà namoaka ny vokatra andrana, izay nahitana dikan-teny 10 amin'ny mpamily mahazatra ho an'ny karatra tambajotra Intel Ixgbe (X10xx) 5-gigabit (X1000xx) amin'ny fiteny fandaharana samihafa. Ny mpamily dia mihazakazaka amin'ny habaka mpampiasa ary ampiharina amin'ny C, Rust, Go, C #, Java, OCaml, Haskell, Swift, JavaScript ary Python. Rehefa manoratra fehezan-dalàna, ny tanjona lehibe indrindra dia ny hahazoana ny fampisehoana tsara indrindra, amin'ny fiheverana ny toetran'ny fiteny tsirairay. Ny safidy rehetra dia mitovy amin'ny fiasa ary misy tsipika XNUMX eo ho eo. Fampandrosoana ny tetikasa mihanaka eo ambanin'ny lisansa BSD.

Ny dikan-teny Rust an'ny mpamily dia nivadika ho tena akaiky ny fampisehoana amin'ny mpamily reference amin'ny fiteny C. Eo ambanin'ny enta-mavesatra miaraka amin'ny fandefasana sakana 32 fonosana, ny mpamily Rust dia teo aoriana kely, fa amin'ny fitsapana miaraka amin'ny fonosana mihoatra ny 32 isaky ny sakana, ny hafainganam-pandeha dia saika tsy misy hafa amin'ny mpamily C ary mampiseho ny fahombiazan'ny fanodinana 28 tapitrisa. fonosana isan-tsegondra amin'ny mpizara misy Xeon CPU E3-1230 v2 3.3 GHz.

Fampitahana ny fahombiazan'ny mpamily tambajotra amin'ny dikan-teny amin'ny fiteny 10 fandaharana

Ny niche manaraka eo amin'ny lafiny fampisehoana dia nofehezin'ny mpamily amin'ny fiteny Go sy C #, izay nampiseho valiny akaiky (nandresy tamin'ny andrana niaraka tamin'ny sakana hatramin'ny fonosana 16 ny mpamily Go, ary nanomboka very kely tamin'ny fitsapana misy fonosana 16 mahery. ao anaty bloc). Miaraka amin'ny fonosana 256 isaky ny sakana, ny fahombiazan'ny mpamily C # dia manodidina ny 28 tapitrisa fonosana isan-tsegondra, ary ny mpamily Go dia eo amin'ny 25 tapitrisa fonosana isan-tsegondra.

Manaraka izany, nahazo vokatra somary akaiky, ny mpamily
Java, OCaml ary Haskell, izay efa hita taratra ao ambadiky ny safidy efa nodinihina teo aloha ary tsy naharesy ireo fonosana 12 tapitrisa isaky ny bara faharoa. Ny mpamily Swift sy JavaScript dia nampiseho fahatarana lehibe kokoa, afaka manodina renirano amin'ny haavon'ny fonosana 5 tapitrisa isan-tsegondra.

Ny laharana ambony indrindra dia vitan'ny mpamily Python, izay tsy nahavita afa-tsy 0.14 tapitrisa fonosana isan-tsegondra. Ny fampiharana Python dia nampiasaina hanombanana ny hafainganan'ny mpandika teny tsy misy JIT ary tsy misy fanatsarana manokana (ny code dia natao tamin'ny CPython 3.7 ary tsy mifanaraka amin'ny PyPy, saingy marihina fa ny fanatsarana ny rafitra fitahirizana angon-drakitra dia afaka manatsara ny fampisehoana amin'ny in-10 eo ho eo. ).

Fanampin'izany, natao ny fitiliana ny fahatarana mba hampisehoana ny fahombiazan'ny buffering sy ny fiantraikan'ny mpanangom-pako. Ny fitiliana dia nandrefy ny fahatarana taorian'ny nandefasan'ny mpamily ny fonosana tsirairay raha oharina amin'ny fotoana marina nandefasana azy. Ny mpitarika dia mbola ny mpamily C sy Rust, ny vokatra izay saika tsy hay lazaina amin'ny fikorianan'ny 1 tapitrisa fonosana isan-tsegondra (eo ho eo amin'ny 20 µs). Nandeha tsara ny mpamily Go, nihemotra kely fotsiny tamin'ny mpitarika ary nijanona teo amin'ny haavo 20 µs ihany koa. Ny mpamily C# dia naneho fahatarana manodidina ny 50 µs.
Ny fahatarana lava indrindra dia nasehon'ny mpamily JavaScript sy Java (fahaterahana mihoatra ny 300 µs).

Fampitahana ny fahombiazan'ny mpamily tambajotra amin'ny dikan-teny amin'ny fiteny 10 fandaharana

Ny fandinihana dia natao hanombanana ny mety hisian'ny fampivoarana ny mpamily sy ny singa rafitra miasa amin'ny fiteny avo lenta kokoa noho ny C. Amin'izao fotoana izao, ny olana 39 amin'ny 40 ao amin'ny Linux dia mifandray amin'ny mpamily, noho izany ny olana amin'ny fampiasana fiteny azo antoka kokoa sy ny famoizana mpamily avy ao amin'ny kernel ary mankany amin'ny habaka mpampiasa. mijanona ho manan-danja ary ny mpanamboatra dia efa mazoto manao fanandramana amin'io lalana io (ohatra, Google dia namolavola TCP stack ho an'ny OS fuchsia amin'ny fiteny Go, orinasa CloudFlare NAMORONA NY fampiharana ny protocol QUIC ao amin'ny Rust, Apple dia namindra ny TCP stack amin'ny fitaovana finday ho any amin'ny habaka mpampiasa).

Nandritra ny asa dia nanatsoaka hevitra fa ny fiteny Rust no kandidà tsara indrindra amin'ny fampandrosoana ny mpamily. Ny fahaizan'i Rust dia manafoana ireo olana mifandraika amin'ny fitantanana fahatsiarovana ambany indrindra amin'ny sandan'ny 2% ka hatramin'ny 10% eo ho eo amin'ny fatiantoka raha oharina amin'ny mpamily C. Go sy C# dia heverina ho mety amin'ny famoronana singa rafitra amin'ny toe-javatra izay azo ekena ny fahatarana ambany milisegondra vokatry ny fanangonana fako.

Source: opennet.ru

Add a comment