{"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\/cs\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","title":{"rendered":"Srovn\u00e1n\u00ed v\u00fdkonu s\u00ed\u0165ov\u00e9ho ovlada\u010de v variant\u00e1ch na 10 programovac\u00edch jazyk\u016f","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Skupina v\u011bdc\u016f z n\u011bmeck\u00fdch univerzit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ixy-languages\/ixy-languages\">publikovala<\/a><\/noindex> v\u00fdsledky <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\">experimentu<\/a><\/noindex>, b\u011bhem kter\u00e9ho byly vyvinuty 10 variant standardn\u00edho ovlada\u010de pro 10-gigabitov\u00e9 s\u00ed\u0165ov\u00e9 karty Intel Ixgbe (X5xx) v r\u016fzn\u00fdch programovac\u00edch jazyc\u00edch. Ovlada\u010d pracuje v u\u017eivatelsk\u00e9m prostoru a je implementov\u00e1n v jazyc\u00edch C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript a Python. P\u0159i psan\u00ed k\u00f3du byl kladen d\u016fraz na dosa\u017een\u00ed maxim\u00e1ln\u00ed mo\u017en\u00e9 v\u00fdkonnosti s ohledem na specifika ka\u017ed\u00e9ho jazyka. V\u0161echny varianty jsou funk\u010dn\u011b identick\u00e9 a maj\u00ed p\u0159ibli\u017en\u011b 1000 \u0159\u00e1dk\u016f k\u00f3du. V\u00fdstupy projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ixy-languages\">se distribuj\u00ed<\/a><\/noindex> na z\u00e1klad\u011b licence BSD.<\/p>\n<p>Varianta ovlada\u010de v jazyce Rust se uk\u00e1zala jako velmi bl\u00edzk\u00e1 v\u00fdkonnosti referen\u010dn\u00edmu ovlada\u010di v jazyce C. P\u0159i z\u00e1t\u011b\u017ei s jednor\u00e1zov\u00fdm odesl\u00e1n\u00edm blok\u016f po 32 paketech Rust-ovlada\u010d m\u00edrn\u011b zaost\u00e1val, ale v testech s v\u00edce ne\u017e 32 pakety v bloku se rychlost\u00ed prakticky neli\u0161il od ovlada\u010de v C a vykazoval v\u00fdkon na \u00farovni zpracov\u00e1n\u00ed 28 milion\u016f paket\u016f za sekundu na serveru s CPU Xeon E3-1230 v2 3,3 GHz.<\/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=\"Srovn\u00e1n\u00ed v\u00fdkonu s\u00ed\u0165ov\u00e9ho ovlada\u010de v variant\u00e1ch na 10 programovac\u00edch jazyk\u016f\" src=\"\/wp-content\/uploads\/2019\/09\/6743526dce7065ae7c32aa04e829743f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Dal\u0161\u00ed m\u00edsto podle v\u00fdkonnosti obsadily ovlada\u010de v jazyc\u00edch Go a C#, kter\u00e9 vyk\u00e1zaly pom\u011brn\u011b bl\u00edzk\u00e9 v\u00fdsledky (ovlada\u010d v Go vyhr\u00e1val v testech s bloky zahrnuj\u00edc\u00edmi a\u017e 16 paket\u016f, a m\u00edrn\u011b zaost\u00e1val v testech s v\u00edce ne\u017e 16 pakety v bloku). P\u0159i 256 paketech v bloku dos\u00e1hl vrcholov\u00fd v\u00fdkon ovlada\u010de v C# p\u0159ibli\u017en\u011b 28 milion\u016f paket\u016f za sekundu, zat\u00edmco ovlada\u010d v Go dos\u00e1hl p\u0159ibli\u017en\u011b 25 milion\u016f paket\u016f za sekundu. <\/p>\n<p>Pot\u00e9 n\u00e1sledovaly ovlada\u010de s pom\u011brn\u011b bl\u00edzk\u00fdmi v\u00fdsledky v jazyc\u00edch<br \/>\nJava, OCaml a Haskell, kter\u00e9 ji\u017e viditeln\u011b zaost\u00e1valy za d\u0159\u00edve uveden\u00fdmi variantami a nedok\u00e1zaly p\u0159ekonat hranici 12 milion\u016f paket\u016f za sekundu. Je\u0161t\u011b v\u011bt\u0161\u00ed zaost\u00e1v\u00e1n\u00ed vyk\u00e1zaly ovlada\u010de v jazyc\u00edch Swift a JavaScript, kter\u00e9 dok\u00e1zaly zpracovat toky na \u00farovni 5 milion\u016f paket\u016f za sekundu. <\/p>\n<p>Na posledn\u00edm m\u00edst\u011b se um\u00edstil ovlada\u010d v jazyce Python, kter\u00fd dok\u00e1zal zpracovat pouze 0,14 milionu paket\u016f za sekundu. Implementace v Pythonu byla pou\u017eita k odhadu rychlosti pr\u00e1ce interpret\u016f bez JIT a bez specifick\u00fdch optimalizac\u00ed (k\u00f3d byl prov\u00e1d\u011bn pomoc\u00ed CPython 3.7 a nebyl kompatibiln\u00ed s PyPy, ale je poznamen\u00e1no, \u017ee optimalizace struktur ukl\u00e1d\u00e1n\u00ed dat by mohla zv\u00fd\u0161it v\u00fdkon p\u0159ibli\u017en\u011b 10kr\u00e1t).<\/p>\n<p>Byly provedeny dal\u0161\u00ed testy na latenci, kter\u00e9 prok\u00e1zaly efektivitu vyrovn\u00e1vac\u00ed pam\u011bti a vliv garbage collectoru. B\u011bhem testov\u00e1n\u00ed byla m\u011b\u0159ena latence po p\u0159esm\u011brov\u00e1n\u00ed ka\u017ed\u00e9ho paketu ovlada\u010dem v porovn\u00e1n\u00ed s p\u0159esn\u011b zn\u00e1m\u00fdm \u010dasem odesl\u00e1n\u00ed. Nad\u00e1le vedly ovlada\u010de napsan\u00e9 v C a Rust, jejich\u017e v\u00fdsledky byly t\u00e9m\u011b\u0159 nerozli\u0161iteln\u00e9 pro tok 1 milionu paket\u016f za sekundu (p\u0159ibli\u017en\u011b 20 \u00b5s). Dob\u0159e se osv\u011bd\u010dil ovlada\u010d napsan\u00fd v Go, kter\u00fd byl jen m\u00edrn\u011b pozadu za l\u00eddry a rovn\u011b\u017e se udr\u017eoval na \u00farovni 20 \u00b5s. Ovlada\u010d v C# vyk\u00e1zal latence p\u0159ibli\u017en\u011b 50 \u00b5s.<br \/>\nNejvy\u0161\u0161\u00ed latence vyk\u00e1zaly ovlada\u010de napsan\u00e9 v JavaScriptu a Jav\u011b (latence p\u0159es 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=\"Srovn\u00e1n\u00ed v\u00fdkonu s\u00ed\u0165ov\u00e9ho ovlada\u010de v variant\u00e1ch na 10 programovac\u00edch jazyk\u016f\" src=\"\/wp-content\/uploads\/2019\/09\/d6a5310b9985ff4598896d533dc2d398.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Studie byla provedena za \u00fa\u010delem zhodnocen\u00ed mo\u017enosti v\u00fdvoje ovlada\u010d\u016f a komponent opera\u010dn\u00edho syst\u00e9mu v jazyc\u00edch vy\u0161\u0161\u00ed \u00farovn\u011b ne\u017e C. V sou\u010dasnosti 39 z 40 probl\u00e9m\u016f s pam\u011bt\u00ed v Linuxu souvis\u00ed s ovlada\u010di, a proto ot\u00e1zky pou\u017eit\u00ed bezpe\u010dn\u011bj\u0161\u00edho jazyka a p\u0159esunut\u00ed ovlada\u010d\u016f z j\u00e1dra do prostoru u\u017eivatel\u016f z\u016fst\u00e1vaj\u00ed aktu\u00e1ln\u00ed. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51401\">a v\u00fdrobci ji\u017e v t\u00e9to oblasti aktivn\u011b experimentuj\u00ed (nap\u0159\u00edklad Google vyvinul TCP stack pro OS<\/a><\/noindex> v jazyce Go, spole\u010dnost CloudFlare <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51000\">Fuchsia<\/a><\/noindex> realizaci protokolu QUIC v jazyce Rust, spole\u010dnost Apple p\u0159esunula TCP stack na mobiln\u00edch za\u0159\u00edzen\u00edch do prostoru u\u017eivatele). <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50061\">vytvo\u0159il<\/a><\/noindex> Na z\u00e1klad\u011b proveden\u00e9 pr\u00e1ce bylo dosa\u017eeno z\u00e1v\u011bru, \u017ee jazyk Rust je nejlep\u0161\u00edm kandid\u00e1tem pro v\u00fdvoj ovlada\u010d\u016f. Mo\u017enosti poskytovan\u00e9 v Rustu umo\u017e\u0148uj\u00ed zbavit se probl\u00e9m\u016f vypl\u00fdvaj\u00edc\u00edch z n\u00edzko\u00farov\u0148ov\u00e9 pr\u00e1ce s pam\u011bt\u00ed, za cenu sn\u00ed\u017een\u00ed v\u00fdkonu p\u0159ibli\u017en\u011b o 2\u201310 % ve srovn\u00e1n\u00ed s ovlada\u010di v jazyce C. Jazyky Go a C# byly tak\u00e9 uzn\u00e1ny jako vhodn\u00e9 pro vytv\u00e1\u0159en\u00ed syst\u00e9mov\u00fdch komponent v situac\u00edch, kdy jsou p\u0159ijateln\u00e9 latence v \u0159\u00e1du milisekund, zp\u016fsoben\u00e9 pou\u017eit\u00edm garbage collectoru.<\/p>\n<p>Skupina v\u00fdzkumn\u00edk\u016f z n\u011bmeck\u00fdch univerzit zve\u0159ejnila v\u00fdsledky<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Zdroj: <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.3 - 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\/cs\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya\" \/>\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\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\/cs\/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\udd47Srovn\u00e1n\u00ed v\u00fdkonu s\u00ed\u0165ov\u00e9ho ovlada\u010de v variant\u00e1ch na 10 jazyk\u016f programov\u00e1n\u00ed | ProHoster","description":"\ud83e\udd47Srovn\u00e1n\u00ed v\u00fdkonu s\u00ed\u0165ov\u00e9ho ovlada\u010de v 10 variant\u00e1ch jazyk\u016f programov\u00e1n\u00ed | ProHoster","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","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\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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/38045","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=38045"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/28556"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=38045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=38045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=38045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}