{"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\/ro\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","title":{"rendered":"Compararea performan\u021bei driverelor de re\u021bea \u00een variante pe 10 limbaje de programare","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Un grup de cercet\u0103tori de la universit\u0103\u021bile germane <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ixy-languages\/ixy-languages\">a publicat<\/a><\/noindex> rezultatele <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\">experiment<\/a><\/noindex>, \u00een cadrul c\u0103ruia au fost dezvoltate \u00een diferite limbaje de programare 10 variante de driver standard pentru pl\u0103cile de re\u021bea Intel Ixgbe (X5xx) de 10 gigabi\u021bi. Driverul func\u021bioneaz\u0103 \u00een spa\u021biul utilizatorului \u0219i este implementat \u00een limbajele C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript \u0219i Python. La scrierea codului, aten\u021bia principal\u0103 a fost \u00eendreptat\u0103 spre atingerea performan\u021bei maxime posibile, av\u00e2nd \u00een vedere specificit\u0103\u021bile fiec\u0103rui limbaj. Din punct de vedere func\u021bional, toate variantele sunt identice \u0219i constau \u00een aproximativ 1000 de linii de cod. Rezultatele proiectului <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ixy-languages\">sunt distribuite<\/a><\/noindex> sub licen\u021ba BSD.<\/p>\n<p>Varianta driverului \u00een limbajul Rust s-a dovedit a fi foarte aproape de performan\u021ba driverului de referin\u021b\u0103 \u00een limbajul C. \u00cen condi\u021bii de \u00eenc\u0103rcare cu trimiterea simultan\u0103 a blocurilor de 32 de pachete, driverul Rust a fost pu\u021bin \u00een urma, dar \u00een testele cu mai mult de 32 de pachete \u00een bloc, viteza a fost practic similar\u0103 cu cea a driverului \u00een C \u0219i a demonstrat o performan\u021b\u0103 de procesare de 28 de milioane de pachete pe secund\u0103 pe un server cu CPU Xeon E3-1230 v2 la 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=\"Compararea performan\u021bei driverelor de re\u021bea \u00een variante pe 10 limbaje de programare\" src=\"\/wp-content\/uploads\/2019\/09\/6743526dce7065ae7c32aa04e829743f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Urm\u0103toarea ni\u0219\u0103 de performan\u021b\u0103 a fost ocupat\u0103 de driverii \u00een limbajele Go \u0219i C#, care au ar\u0103tat rezultate destul de apropiate (driverul \u00een Go c\u00e2\u0219tiga \u00een testele cu blocuri ce includeau p\u00e2n\u0103 la 16 pachete, dar a \u00eenceput s\u0103 piard\u0103 \u00een testele cu mai mult de 16 pachete \u00een bloc). La 256 de pachete \u00een bloc, performan\u021ba maxim\u0103 a driverului \u00een C# a fost de aproximativ 28 de milioane de pachete pe secund\u0103, iar driverul \u00een Go de aproximativ 25 de milioane de pachete pe secund\u0103. <\/p>\n<p>Apoi, cu rezultate destul de apropiate au urmat driverii \u00een<br \/>\nJava, OCaml \u0219i Haskell, care au fost deja vizibil \u00een urma variantelor discutate anterior \u0219i nu au reu\u0219it s\u0103 dep\u0103\u0219easc\u0103 limita de 12 milioane de pachete pe secund\u0103. O \u00eent\u00e2rziere \u0219i mai mare a fost ar\u0103tat\u0103 de driverii \u00een Swift \u0219i JavaScript, care au reu\u0219it s\u0103 proceseze fluxuri la nivelul de 5 milioane de pachete pe secund\u0103. <\/p>\n<p>Clasamentul a fost \u00eencheiat de driverul \u00een limbajul Python, care a reu\u0219it s\u0103 proceseze doar 0,14 milioane de pachete pe secund\u0103. Implementarea \u00een Python a fost utilizat\u0103 pentru a evalua viteza de execu\u021bie a interpretorilor f\u0103r\u0103 JIT \u0219i f\u0103r\u0103 optimiz\u0103ri specifice (codul a fost executat utiliz\u00e2nd CPython 3.7 \u0219i nu era compatibil cu PyPy, dar se men\u021bioneaz\u0103 c\u0103 optimizarea structurii de stocare a datelor ar putea \u00eembun\u0103t\u0103\u021bi performan\u021ba de aproximativ 10 ori).<\/p>\n<p>De asemenea, au fost efectuate teste de \u00eent\u00e2rziere, care au demonstrat eficien\u021ba buffer-ului \u0219i impactul colectorului de gunoi. \u00cen timpul test\u0103rii, s-a m\u0103surat \u00eent\u00e2rzierea dup\u0103 redirec\u021bionarea fiec\u0103rui pachet de c\u0103tre driver \u00een compara\u021bie cu timpul exact de trimitere. \u00cen continuare, liderii au fost driverele scrise \u00een C \u0219i Rust, ale c\u0103ror rezultate au fost practic indistinguibile pentru un flux de 1 milion de pachete pe secund\u0103 (aproximativ 20 \u00b5s). Driverul scris \u00een Go s-a comportat bine, fiind doar pu\u021bin \u00een urma liderilor \u0219i men\u021bin\u00e2ndu-se tot pe la 20 \u00b5s. Driverul C# a ar\u0103tat \u00eent\u00e2rzieri de aproximativ 50 \u00b5s.<br \/>\nCele mai mari \u00eent\u00e2rzieri au fost observate la driverele pe JavaScript \u0219i Java (\u00eent\u00e2rzieri de peste 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=\"Compararea performan\u021bei driverelor de re\u021bea \u00een variante pe 10 limbaje de programare\" src=\"\/wp-content\/uploads\/2019\/09\/d6a5310b9985ff4598896d533dc2d398.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Cercetarea a fost efectuat\u0103 cu scopul de a evalua fezabilitatea dezvolt\u0103rii driverelor \u0219i a componentelor sistemului de operare \u00een limbaje de nivel mai \u00eenalt dec\u00e2t C. \u00cen prezent, 39 din 40 de probleme de gestionare a memoriei \u00een Linux sunt legate de drivere, a\u0219a c\u0103 \u00eentreb\u0103rile privind utilizarea unui limbaj mai sigur \u0219i transferul driverelor din kernel \u00een spa\u021biul utilizatorului <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51401\">r\u0103m\u00e2n relevante<\/a><\/noindex> iar produc\u0103torii experimenteaz\u0103 deja activ \u00een aceast\u0103 direc\u021bie (de exemplu, Google a dezvoltat un stiv\u0103 TCP pentru sistemul de operare <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51000\">Fuchsia<\/a><\/noindex> \u00een limbajul Go, compania CloudFlare <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50061\">a creat<\/a><\/noindex> implementarea protocolului QUIC \u00een limbajul Rust, iar compania Apple a mutat stiva TCP pe dispozitivele mobile \u00een spa\u021biul utilizatorului).<\/p>\n<p>\u00cen urma lucr\u0103rilor desf\u0103\u0219urate, s-a ajuns la concluzia c\u0103 limbajul Rust este cel mai bun candidat pentru dezvoltarea driverelor. Func\u021bionalit\u0103\u021bile oferite de Rust permit eliminarea problemelor care apar din cauza lucrului la nivel sc\u0103zut cu memoria, cu un cost de sc\u0103dere a performan\u021bei de aproximativ 2%-10% \u00een compara\u021bie cu driverele scrise \u00een C. Limbajele Go \u0219i C# sunt, de asemenea, considerate adecvate pentru crearea componentelor sistemului, \u00een situa\u021biile \u00een care latentele de frac\u021biuni de milisecund\u0103, cauzate de utilizarea unui colector de gunoi, sunt acceptabile.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Sursa: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51475\">opennet.ro<\/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.2.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\/ro\/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.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Compararea performan\u021bei driverului de re\u021bea \u00een variante pe 10 limbaje de programare | ProHoster","description":"Un grup de cercet\u0103tori din universit\u0103\u021bi germane a publicat rezultatele","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/sravnenie-proizvoditelnosti-setevogo-drajvera-v-variantah-na-10-yazykah-programmirovaniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/38045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=38045"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/28556"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=38045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=38045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=38045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}