{"id":76573,"date":"2020-04-03T13:42:25","date_gmt":"2020-04-03T11:42:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno"},"modified":"2020-04-03T13:42:25","modified_gmt":"2020-04-03T11:42:25","slug":"nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","title":{"rendered":"Native kompilering i Quarkus \u2013 varf\u00f6r det \u00e4r viktigt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej alla! H\u00e4r \u00e4r det andra inl\u00e4gget i v\u00e5r serie om Quarkus \u2013 idag pratar vi om native kompilering.<\/p>\n<p><img decoding=\"async\" alt=\"Native kompilering i Quarkus \u2013 varf\u00f6r det \u00e4r viktigt\" src=\"\/wp-content\/uploads\/2020\/04\/3690313f6718405b06f0a6b5360767e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2019\/03\/20\/quarkus-0-12-0-released\/\">Quarkus<\/a><\/noindex> \u2013 \u00e4r ett Java-stack som \u00e4r inriktat p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>. Och \u00e4ven om det fortfarande finns mycket kvar att g\u00f6ra h\u00e4r, har vi noggrant arbetat med m\u00e5nga aspekter, inklusive JVM-optimering och en rad ramverk. En av Quarkus s\u00e4rskilda egenskaper, som har v\u00e4ckt stort intresse hos utvecklare, \u00e4r den s\u00f6ml\u00f6sa och omfattande ansatsen att omvandla Java-kod till k\u00f6rbara filer f\u00f6r specifika operativsystem (den s\u00e5 kallade \"native kompileringen\") p\u00e5 liknande s\u00e4tt som C och C++, d\u00e4r s\u00e5dan kompilering vanligtvis sker i slutet av en cykel som omfattar byggande, testning och distribution.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nOch \u00e4ven om native kompilering, som vi kommer att visa nedan, \u00e4r viktigt, m\u00e5ste det p\u00e5pekas att Quarkus faktiskt fungerar mycket bra \u00e4ven p\u00e5 en vanlig Java-maskin OpenJDK Hotspot tack vare de prestandaf\u00f6rb\u00e4ttringar vi har f\u00e5tt till st\u00e5nd i hela stacken. D\u00e4rf\u00f6r b\u00f6r native kompilering betraktas som en extra bonus som kan anv\u00e4ndas vid behov. N\u00e4r det kommer till native bilder f\u00f6rlitar sig Quarkus i stor utstr\u00e4ckning p\u00e5 OpenJDK. Den v\u00e4l mottagna utvecklingsl\u00e4get (dev mode) m\u00f6jligg\u00f6r n\u00e4stan omedelbar testning av f\u00f6r\u00e4ndringar tack vare de avancerade funktionerna f\u00f6r dynamisk kodk\u00f6rning som implementeras i Hotspot. Dessutom anv\u00e4nds OpenJDK:s klassbibliotek och HotSpot-funktioner vid skapandet av native bilder med GraalVM.<\/p>\n<p>S\u00e5 varf\u00f6r beh\u00f6vs d\u00e5 native kompilering om allt redan \u00e4r s\u00e5 bra optimerat? Den fr\u00e5gan ska vi f\u00f6rs\u00f6ka besvara nedan.<\/p>\n<p>Vi b\u00f6rjar med det uppenbara: Red Hat har stor erfarenhet av att optimera JVM, stackar och ramverk under projektets utveckling <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jboss.org\/\">JBoss<\/a><\/noindex>, inklusive:<\/p>\n<ul>\n<li>Den f\u00f6rsta applikationsservern f\u00f6r att arbeta i molnet p\u00e5 plattformen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.redhat.com\/en\/blog\/openshift-is-the-first-paas-to-support-java-ee-6-full-profile-in-the-cloud\">Red Hat OpenShift<\/a><\/noindex>.<\/li>\n<li>Den f\u00f6rsta applikationsservern f\u00f6r att arbeta p\u00e5 datorer <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/index.php\/videos\/youtube\/9c-g7UxT0nk\/\">Plug PC<\/a><\/noindex>.<\/li>\n<li>Den f\u00f6rsta applikationsservern f\u00f6r att arbeta p\u00e5 <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.arungupta.me\/wildfly-on-raspberry-pi-techtip-24\/\">Raspberry Pi<\/a><\/noindex>.<\/li>\n<li>Ett antal projekt som arbetar p\u00e5 enheter <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jboss.org\/iot\/android\/\">Android<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nVi har under m\u00e5nga \u00e5r arbetat med att k\u00f6ra Java-applikationer i molnet och p\u00e5 enheter med begr\u00e4nsade resurser (l\u00e4s, IoT) och har l\u00e4rt oss att f\u00e5 ut det mesta av JVM i fr\u00e5ga om prestanda och minnesoptimering. Precis som m\u00e5nga andra har vi l\u00e4nge arbetat med native kompilering av Java-applikationer genom <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/wiki\/GCJ\">GCJ<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/readytalk.github.io\/avian\/\">Avian<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.excelsiorjet.com\/\">Excelsior JET<\/a><\/noindex> och \u00e4ven <noindex><a rel=\"nofollow\" href=\"https:\/\/source.android.com\/devices\/tech\/dalvik\">Dalvik<\/a><\/noindex> och vi \u00e4r fullt medvetna om f\u00f6rdelarna och nackdelarna med denna metod (till exempel dilemmat mellan m\u00e5ngsidigheten i \"build once \u2013 run-anywhere\" och det faktum att kompilering av applikationer ger mindre storlek och snabbare uppstart).<\/p>\n<p>Varf\u00f6r \u00e4r det s\u00e5 viktigt att ta h\u00e4nsyn till dessa f\u00f6rdelar och nackdelar? F\u00f6r att i vissa situationer kan deras f\u00f6rh\u00e5llande bli avg\u00f6rande:<\/p>\n<ul>\n<li>Till exempel i serverless-\/eventdrivna milj\u00f6er d\u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/mikhail.io\/2018\/08\/serverless-cold-start-war\/\">tj\u00e4nster helt enkelt m\u00e5ste starta<\/a><\/noindex> i (h\u00e5rd eller mjuk) realtid f\u00f6r att kunna reagera p\u00e5 h\u00e4ndelser. Till skillnad fr\u00e5n l\u00e5nglivade persistenta tj\u00e4nster inneb\u00e4r h\u00e4r l\u00e4ngden p\u00e5 kallstarten en kritisk \u00f6kning av svarstiden p\u00e5 beg\u00e4ran. Att starta JVM tar fortfarande en betydande tid, och \u00e4ven om den i vissa fall kan f\u00f6rkortas med hj\u00e4lp av rena h\u00e5rdvarumetoder, kan skillnaden mellan en sekund och 5 millisekunder vara en fr\u00e5ga om liv och d\u00f6d. Ja, h\u00e4r kan man experimentera med att skapa en varm reserv av Java-maskiner (vilket vi till exempel gjorde vid <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/projectodd\/kwsk\">portering av OpenWhisk till Knative<\/a><\/noindex>), men detta garanterar i sig inte tillr\u00e4ckligt med JVM f\u00f6r att hantera beg\u00e4rningar n\u00e4r belastningen \u00f6kar. Och ur ett ekonomiskt perspektiv \u00e4r det f\u00f6rmodligen inte den mest optimala l\u00f6sningen.<\/li>\n<li>Dessutom finns det en annan aspekt som ofta dyker upp, n\u00e4mligen multitenancy. \u00c4ven om JVM har kommit n\u00e4ra operativsystemens kapabiliteter, \u00e4r de fortfarande inte kapabla att g\u00f6ra det som vi \u00e4r s\u00e5 vana vid i Linux - att isolera processer. D\u00e4rf\u00f6r kan ett fel i en tr\u00e5d st\u00e4nga ner hela Java-maskinen. M\u00e5nga f\u00f6rs\u00f6ker kringg\u00e5 denna brist genom att tilldela varje anv\u00e4ndares applikation en separat JVM f\u00f6r att minimera konsekvenserna av ett fel. Detta \u00e4r helt logiskt, men passar d\u00e5ligt med skalning.<\/li>\n<li>Dessutom \u00e4r en viktig faktor f\u00f6r molnbaserade applikationer densiteten av tj\u00e4nster p\u00e5 v\u00e4rden. \u00d6verg\u00e5ngen till metodologin <noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/\">12 faktorer f\u00f6r applikationer<\/a><\/noindex>, mikrotj\u00e4nster och Kubernetes \u00f6kar antalet Java-maskiner f\u00f6r en applikation. Det inneb\u00e4r att \u00e5 ena sidan ger allt detta flexibilitet och p\u00e5litlighet, men samtidigt \u00f6kar ocks\u00e5 den basminnesf\u00f6rbrukningen per tj\u00e4nst, d\u00e4r vissa av dessa kostnader l\u00e5ngt ifr\u00e5n alltid \u00e4r absolut n\u00f6dv\u00e4ndiga. Statiskt kompilerade k\u00f6rfiler vinner h\u00e4r genom olika optimeringstekniker, som l\u00e5g-niv\u00e5 dead-code elimination, d\u00e4r endast de delar av ramverken (inklusive sj\u00e4lva JDK) som tj\u00e4nsten faktiskt anv\u00e4nder inkluderas i den slutliga bilden. D\u00e4rf\u00f6r hj\u00e4lper den inbyggda kompileringen av Quarkus att mer effektivt placera tj\u00e4nstinstanser p\u00e5 v\u00e4rden utan att det p\u00e5verkar s\u00e4kerheten.<\/li>\n<\/ul>\n<p>\nDe ovan n\u00e4mnda argumenten \u00e4r redan tillr\u00e4ckliga f\u00f6r att f\u00f6rst\u00e5 r\u00e4ttf\u00e4rdigheten av inbyggd kompilering ur perspektivet f\u00f6r deltagarna i Quarkus-projektet. Men det finns en annan, inte-teknisk, men ocks\u00e5 viktig anledning: under de senaste \u00e5ren har m\u00e5nga programmerare och utvecklingsf\u00f6retag \u00f6vergett Java till f\u00f6rm\u00e5n f\u00f6r nya programmeringsspr\u00e5k, ansett att Java med sina JVM:er, stackar och ramverk har blivit f\u00f6r minneskr\u00e4vande, f\u00f6r l\u00e5ngsam, osv.<\/p>\n<p>Men vanan att anv\u00e4nda samma verktyg f\u00f6r att l\u00f6sa alla uppgifter \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/java\/comments\/8xv3ha\/does_anybody_use_spring_boot_with_aws_lambda_do\/\">\u00e4r inte alltid r\u00e4tt<\/a><\/noindex>. Ibland \u00e4r det b\u00e4ttre att ta ett steg tillbaka och leta efter n\u00e5got annat. Och om Quarkus f\u00e5r m\u00e4nniskor att pausa och t\u00e4nka efter, s\u00e5 \u00e4r det bra f\u00f6r hela Java-ekosystemet. Quarkus representerar en innovativ syn p\u00e5 hur man skapar effektivare applikationer och g\u00f6r Java mer relevant f\u00f6r nya applikationsarkitekturer, som serverl\u00f6s. Dessutom, tack vare sin utbyggbarhet, hoppas vi att Quarkus kommer att f\u00e5 ett helt ekosystem av Java-till\u00e4gg, vilket avsev\u00e4rt \u00f6kar antalet ramverk som kommer att st\u00f6dja inbyggd kompilering som en del av applikationerna.<br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/495212\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0421 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u0442 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e Quarkus \u2013 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. Quarkus \u2013 \u044d\u0442\u043e Java-\u0441\u0442\u0435\u043a, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 Kubernetes. \u0418 \u0445\u043e\u0442\u044f \u0437\u0434\u0435\u0441\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043d\u043e\u0433\u043e\u0435 \u0435\u0449\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043c\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043c\u0430\u0441\u0441\u0443 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e JVM \u0438 \u0446\u0435\u043b\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 Quarkus, \u0432\u044b\u0437\u0432\u0430\u0432\u0448\u0435\u0439 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0441\u0442\u0430\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":76574,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-76573","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\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\/sv\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\u041d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 Quarkus \u2013 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno\" \/>\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=\"2020-04-03T11:42:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-03T11:42:25+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\udd47Inbyggd kompilering i Quarkus \u2013 varf\u00f6r det \u00e4r viktigt | ProHoster","description":"Hej alla!","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\u041d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 Quarkus \u2013 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","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":"2020-04-03T11:42:25+00:00","article:modified_time":"2020-04-03T11:42:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"76573","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:34:49","updated":"2022-09-28 02:06:54","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/76573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=76573"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/76573\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/76574"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=76573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=76573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=76573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}