{"id":38045,"date":"2019-10-31T22:21:21","date_gmt":"2019-10-31T19:21:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya\/"},"modified":"2019-10-31T22:21:21","modified_gmt":"2019-10-31T19:21:21","slug":"sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","title":{"rendered":"V\u00f5rgujuhtme j\u00f5udluse v\u00f5rdlemine 10 erineva programmeerimiskeele variandis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Saksamaa \u00fclikoolide uurimisr\u00fchm <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ixy-languages\/ixy-languages\">avalikustas<\/a><\/noindex> tulemused <noindex><a rel=\"nofollow\" href=\"https:\/\/www.net.in.tum.de\/fileadmin\/bibtex\/publications\/papers\/the-case-for-writing-network-drivers-in-high-level-languages.pdf\">katse<\/a><\/noindex>, mille raames t\u00f6\u00f6tati v\u00e4lja 10 esitaja versiooni 10-gigabitti Intel Ixgbe (X5xx) v\u00f5rgukaartide jaoks erinevates programmeerimiskeeltes. Esitaja t\u00f6\u00f6tab kasutajaruumi ja on rakendatud keeltes C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript ja Python. Koodi kirjutamisel p\u00f6\u00f6rati t\u00e4helepanu maksimaalse j\u00f5udluse saavutamisele, arvestades iga keele erip\u00e4ra. Funktsionaalsuselt on k\u00f5ik versioonid identsed ja koosnevad umbes 1000 koodireast. Projekti saavutused <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ixy-languages\">levitatakse<\/a><\/noindex> BSD litsentsi all.<\/p>\n<p>Rust keeles kirjutatud esitaja osutus h\u00f5re kui v\u00f5rdlusena C keeles kirjutatud esitaja. 32 paketi korraga saatmise koormuse puhul j\u00e4i Rust-esitaja veidi maha, kuid teste, kus oli rohkem kui 32 paketti, ei erinenud kiirus peaaegu C keeles kirjutatud esitaja omast ja demonstreeris j\u00f5udlust 28 miljonit paketti sekundis Xeon E3-1230 v2 3,3 GHz protsessoriga serveris.<\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/raw.githubusercontent.com\/ixy-languages\/ixy-languages\/master\/img\/batches-3.3.png\"><img decoding=\"async\" alt=\"V\u00f5rgujuhtme j\u00f5udluse v\u00f5rdlemine 10 erineva programmeerimiskeele variandis\" src=\"\/wp-content\/uploads\/2019\/09\/6743526dce7065ae7c32aa04e829743f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>J\u00e4rgneva taseme saavutasid Go ja C# keeles kirjutatud esitajad, mis n\u00e4itasid piisavalt sarnaseid tulemusi (Go esitaja v\u00f5itis testides, kus plokid sisaldasid kuni 16 paketti, ja hakkas veidi kaotama testides, kus oligi rohkem kui 16 paketti). 256 paketti plokis saavutas C# esitaja tipptulemuse umbes 28 miljonit paketti sekundis, samas kui Go esitaja oli umbes 25 miljonit paketti sekundis. <\/p>\n<p>Seej\u00e4rel j\u00e4rgnesid \u00fcsna l\u00e4hedaste tulemustega esitajad<br \/>\nJava, OCaml ja Haskell, kes juba m\u00e4rgatavalt j\u00e4id eelnevalt arutatud versioonidest maha ning ei saanud \u00fcletada 12 miljoni paketi piiri sekundis. Veelgi rohkem maha j\u00e4i Swift ja JavaScript keeles kirjutatud esitaja, mis suudsid t\u00f6\u00f6delda vooge umbes 5 miljoni paketi tasemel sekundis. <\/p>\n<p>Reitingu l\u00f5petas Python keeles kirjutatud esitaja, mis suutis t\u00f6\u00f6delda vaid 0,14 miljonit paketti sekundis. Python-i rakendust kasutati t\u00f5lgendajate t\u00f6\u00f6 kiirusel hindamise hindamiseks ilma JIT-i ja spetsiifiliste optimeeringuteta (kood k\u00e4itis CPython 3.7 ja ei olnud \u00fchilduv PyP-yga, kuid m\u00e4rgitakse, et andmestruktuuride optimeerimine v\u00f5iks t\u00f5sta t\u00f5husust umbes 10 korda).<\/p>\n<p>Lisaks viidi l\u00e4bi viivitusetestid, mis n\u00e4itasid sissetuleku t\u00f5husust ja j\u00e4\u00e4tmemanipulaatori m\u00f5ju. Testimise k\u00e4igus m\u00f5\u00f5deti viivitust p\u00e4rast iga paketi suunamist draiveri poolt v\u00f5rreldes t\u00e4pselt teadaoleva saatmisaega. Juhtpositsioonil p\u00fcsisid C ja Rust keele draiverid, mille tulemused olid praktiliselt eristamatud 1 miljoni paketi sekundis voos (umbes 20 \u00b5s). Ka Go keele draiver osutus heaks, j\u00e4\u00e4des veidi maha liidritest ja hoides samuti taset 20 \u00b5s. C# draiver n\u00e4itas viivitusi umbes 50 \u00b5s.<br \/>\nSuurimad viivitused registriti JavaScripti ja Java draiveritel (viivitused \u00fcle 300 \u00b5s).<\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/raw.githubusercontent.com\/ixy-languages\/ixy-languages\/master\/img\/latency-hdr-hist-1.png\"><img decoding=\"async\" alt=\"V\u00f5rgujuhtme j\u00f5udluse v\u00f5rdlemine 10 erineva programmeerimiskeele variandis\" src=\"\/wp-content\/uploads\/2019\/09\/d6a5310b9985ff4598896d533dc2d398.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Uuring tehti eesm\u00e4rgiga hinnata k\u00f5rgema taseme keeles, nagu C, draiverite ja operatsioonis\u00fcsteemi komponentide arendamise v\u00f5imalusi. Hetkel moodustavad 39 40 probleemist, mis on seotud m\u00e4luga Linuxis, draiverid, seet\u00f5ttu on rohkem turvalise keele kasutamise ja draiverite tuumast kasutajaruumi viimise k\u00fcsimused <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51401\">endiselt aktuaalsed<\/a><\/noindex> ja tootjad katsetavad juba aktiivselt selle suunaga (n\u00e4iteks Google arendas v\u00e4lja TCP-steki operatsioonis\u00fcsteemile <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51000\">Fuchsia<\/a><\/noindex> Go keeles, CloudFlare <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50061\">loomise<\/a><\/noindex> rakenduse protokolli QUIC Rust keeles, Apple t\u00f5i TCP-steki mobiilseadmetes kasutajaruumi).<\/p>\n<p>Tehtud t\u00f6\u00f6 jooksul j\u00f5uti j\u00e4reldusele, et Rust keel on parim kandidaat draiverite arendamiseks. Rusti pakutavad v\u00f5imalused v\u00f5imaldavad vabaneda probleemidest, mis tekivad madala taseme m\u00e4lu haldamise t\u00f5ttu, samas kui sooritusv\u00f5ime langus on ligikaudu 2%-10% v\u00f5rreldes C keele draiveritega. Go ja C# keeled on samuti tunnustatud sobivateks s\u00fcsteemi komponentide loomisel, olukordades, kus viivitused m\u00f5ne millisekundi tasemel, mis on p\u00f5hjustatud pr\u00fcgikogu kasutamisest, on vastuv\u00f5etavad.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51475\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0413\u0440\u0443\u043f\u043f\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0437 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0445 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u043e\u0432 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430, \u0432 \u0445\u043e\u0434\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043e 10 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0434\u043b\u044f 10-\u0433\u0438\u0433\u0430\u0431\u0438\u0442\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043a\u0430\u0440\u0442 Intel Ixgbe (X5xx). \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript \u0438 Python. \u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443\u0434\u0435\u043b\u044f\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28556,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38045","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0413\u0440\u0443\u043f\u043f\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0437 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0445 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u043e\u0432 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u043d\u0430 10 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0413\u0440\u0443\u043f\u043f\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0437 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0445 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u043e\u0432 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:21:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:21:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47V\u00f5rgudraiveri j\u00f5udluse v\u00f5rdlus 10 programmeerimiskeele versioonides | ProHoster","description":"Saksa \u00fclikoolide teadlaste r\u00fchm avaldas tulemused","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u043d\u0430 10 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f | ProHoster","og:description":"\u0413\u0440\u0443\u043f\u043f\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0437 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0445 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u043e\u0432 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:21:21+00:00","article:modified_time":"2019-10-31T19:21:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38045","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 20:15:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:30:21","updated":"2026-01-23 20:15:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=38045"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28556"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=38045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=38045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=38045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}