{"id":111450,"date":"2023-11-12T03:10:13","date_gmt":"2023-11-12T01:10:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii"},"modified":"2023-11-12T03:10:13","modified_gmt":"2023-11-12T01:10:13","slug":"v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii","title":{"rendered":"V no\u010dn\u00edch sestaven\u00edch Rust byly roz\u0161\u00ed\u0159eny mo\u017enosti paraleln\u00edho kompilov\u00e1n\u00ed.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ve front-endu kompil\u00e1toru Rust, kter\u00fd prov\u00e1d\u00ed \u00fakoly jako je syntaktick\u00e1 anal\u00fdza, kontrola typ\u016f a anal\u00fdza p\u016fj\u010dov\u00e1n\u00ed, byla implementov\u00e1na podpora paraleln\u00edho prov\u00e1d\u011bn\u00ed, co\u017e v\u00fdrazn\u011b zkracuje \u010das kompilace. Paralelizaci lze vyu\u017e\u00edt v no\u010dn\u00edch sestaven\u00edch Rust a aktivuje se pomoc\u00ed mo\u017enosti &#171;-Z threads=8&#187;. Do stabiln\u00ed v\u011btve je pl\u00e1nov\u00e1no za\u0159azen\u00ed t\u00e9to funkce v roce 2024.    <\/p>\n<p>Pr\u00e1ce na zkracov\u00e1n\u00ed doby kompilace v Rustu prob\u00edh\u00e1 ji\u017e n\u011bkolik let. Za prvn\u00edch 10 m\u011bs\u00edc\u016f roku 2023 se doba kompilace pr\u016fm\u011brn\u011b zkr\u00e1tila o 13 %, \u0161pi\u010dkov\u00e1 spot\u0159eba pam\u011bti se sn\u00ed\u017eila o 15 % a velikost generovan\u00fdch soubor\u016f poklesla o 7 %. V t\u00e9to f\u00e1zi bylo zrychlen\u00ed dosa\u017eeno pomoc\u00ed optimalizac\u00ed samotn\u00e9ho kompil\u00e1toru. Pot\u00e9 se v\u00fdvoj\u00e1\u0159i zam\u011b\u0159ili na zrychlen\u00ed pomoc\u00ed paralelizace operac\u00ed b\u011bhem kompilace.     <\/p>\n<p>Dosud byla paralelizace v Rustu zaji\u0161\u0165ov\u00e1na p\u0159ev\u00e1\u017en\u011b na \u00farovni proces\u016f, nap\u0159\u00edklad spr\u00e1vce bal\u00ed\u010dk\u016f Cargo m\u016f\u017ee spustit n\u011bkolik proces\u016f rustc pro sou\u010dasnou kompilaci n\u011bkolika bal\u00ed\u010dk\u016f. Podpora paralelizace je tak\u00e9 p\u0159\u00edtomna na stran\u011b backendu, kter\u00fd prov\u00e1d\u00ed operace spojen\u00e9 s generov\u00e1n\u00edm k\u00f3du \u2014 backend Rust m\u016f\u017ee generovat k\u00f3d po \u010d\u00e1stech, kter\u00e9 pak m\u016f\u017ee LLVM zpracov\u00e1vat paraleln\u011b. Frontend v\u0161ak dosud mohl zpracov\u00e1vat zdrojov\u00fd k\u00f3d pouze v jednovl\u00e1knov\u00e9m re\u017eimu.      <\/p>\n<p>Pro podporu paralelizace byl frontend p\u0159eveden na pou\u017eit\u00ed knihovny Rayon a v\u00fdrazn\u011b p\u0159epracov\u00e1n, nap\u0159\u00edklad mnoh\u00e9 jeho \u010d\u00e1sti nyn\u00ed synchronizuj\u00ed pomoc\u00ed mutex\u016f a z\u00e1mk\u016f pro \u010dten\u00ed\/z\u00e1pis, a v k\u00f3du se pou\u017e\u00edvaj\u00ed atomov\u00e9 typy. P\u0159i testov\u00e1n\u00ed v\u00fdkonu nov\u00e1 paralelizovan\u00e1 implementace mohla vykon\u00e1vat kompilaci a\u017e o 2 % pomaleji p\u0159i provozu v jednovl\u00e1knov\u00e9m re\u017eimu (-Z threads=1), ale kdy\u017e bylo v\u00edce ne\u017e jedno vl\u00e1kno, rychlost se v\u00fdrazn\u011b zvy\u0161ovala. Nap\u0159\u00edklad p\u0159i nastaven\u00ed 8 vl\u00e1ken (-Z threads=8) se v n\u011bkter\u00fdch situac\u00edch poda\u0159ilo zkr\u00e1tit \u010das kompilace o 50 %.    <\/p>\n<p>V\u00fdsledek v\u0161ak siln\u011b z\u00e1vis\u00ed na nastaven\u00ed prost\u0159ed\u00ed a kompilovan\u00e9m k\u00f3du \u2014 pro velmi mal\u00e9 programy, kter\u00e9 se ji\u017e kompiluj\u00ed rychle, m\u016f\u017ee kompilace v multithreadov\u00e9m re\u017eimu prob\u00edhat pomaleji. Krom\u011b toho m\u016f\u017ee spot\u0159eba pam\u011bti v multithreadov\u00e9m re\u017eimu v\u00fdrazn\u011b vzr\u016fst, nap\u0159\u00edklad v testech byla zaznamen\u00e1na zv\u00fd\u0161en\u00e1 spot\u0159eba pam\u011bti a\u017e o 35%.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60095\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u043e \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Rust, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u0430\u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0420\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Rust \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u043f\u0446\u0438\u0438 &#171;-Z threads=8&#187;. \u0412 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0442\u043a\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 2024 \u0433\u043e\u0434\u0443. \u0420\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 Rust [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-111450","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u043e \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Rust, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u0430\u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f.\" \/>\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\/cs\/blog\/news\/v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\u0412 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Rust \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u043e \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Rust, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u0430\u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii\" \/>\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=\"2023-11-12T01:10:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-11-12T01:10:13+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\udd47Ve no\u010dn\u00edch sestaven\u00edch Rust byly roz\u0161\u00ed\u0159eny mo\u017enosti paralelizace kompilace | ProHoster","description":"Ve front-endu kompil\u00e1toru Rust, kter\u00fd prov\u00e1d\u00ed \u00fakoly jako je syntaktick\u00e1 anal\u00fdza, kontrola typ\u016f a anal\u00fdza p\u016fj\u010dek, byla implementov\u00e1na podpora paraleln\u00edho prov\u00e1d\u011bn\u00ed, co\u017e v\u00fdrazn\u011b zkracuje \u010das.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\u0412 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Rust \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 | ProHoster","og:description":"\u0412\u043e \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Rust, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u0430\u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/v-nochnyh-sborkah-rust-rasshireny-vozmozhnosti-rasparallelivaniya-kompilyaczii","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":"2023-11-12T01:10:13+00:00","article:modified_time":"2023-11-12T01:10:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/111450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=111450"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/111450\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=111450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=111450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=111450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}