{"id":55147,"date":"2020-01-13T00:00:00","date_gmt":"2020-01-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly"},"modified":"2020-02-18T14:03:13","modified_gmt":"2020-02-18T11:03:13","slug":"pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly","title":{"rendered":"Lanzamiento de wasm3, un int\u00e9rprete r\u00e1pido de WebAssembly","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wasm3\/wasm3\/releases\">Disponible<\/a><\/noindex> lanzamiento <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wasm3\/wasm3\">wasm3<\/a><\/noindex>, un int\u00e9rprete de c\u00f3digo intermedio WebAssembly muy r\u00e1pido, principalmente dise\u00f1ado para ejecutar aplicaciones WebAssembly en microcontroladores y plataformas donde no hay implementaci\u00f3n JIT para WebAssembly, donde hay memoria insuficiente para ejecutar JIT, o donde no se permite crear p\u00e1ginas de memoria ejecutables necesarias para implementar JIT. El c\u00f3digo del proyecto est\u00e1 escrito en C y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wasm3\/wasm3\">se distribuye<\/a><\/noindex> bajo licencia MIT.<\/p>\n<p>Wasm3 pasa <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/spec\/tree\/master\/test\/core\">pruebas<\/a><\/noindex> de compatibilidad con la especificaci\u00f3n WebAssembly 1.0 y se puede utilizar para ejecutar muchas aplicaciones WASI, ofreciendo un rendimiento solo 4-5 veces inferior al de motores JIT (<noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/blog\/liftoff\">liftoff<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bytecodealliance\/cranelift\">cranelift<\/a><\/noindex>) y 11.5 veces m\u00e1s lento que la ejecuci\u00f3n de c\u00f3digo nativo. En comparaci\u00f3n con otros int\u00e9rpretes de WebAssembly (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kanaka\/wac\">wac<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/perlin-network\/life\">life<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bytecodealliance\/wasm-micro-runtime\">wasm-micro-runtime<\/a><\/noindex>), wasm3 demostr\u00f3 ser 15.8 veces m\u00e1s r\u00e1pido.<\/p>\n<p>Para ejecutar wasm3 se requieren 64Kb de memoria para el c\u00f3digo y 10Kb de RAM, lo que permite usar el proyecto para ejecutar aplicaciones compiladas en WebAssembly en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wasm3\/wasm3\/tree\/master\/platforms\">microcontroladores<\/a><\/noindex>, como Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),<br \/>\nMaix (K210), HiFive1 (E310), Fomu (ICE40UP5K) y ATmega1284, as\u00ed como en placas y computadoras basadas en arquitecturas x86, x64, ARM, MIPS, RISC-V y Xtensa. Se admiten sistemas operativos como Linux (incluidos enrutadores basados en OpenWRT), Windows, macOS, Android e iOS. Tambi\u00e9n se puede compilar wasm3 a c\u00f3digo intermedio de WebAssembly para ejecutar el int\u00e9rprete en el navegador o para ejecuci\u00f3n embebida (self-hosting).<\/p>\n<p>El alto rendimiento se logra gracias al uso en el int\u00e9rprete de la t\u00e9cnica <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wasm3\/wasm3\/blob\/master\/source\/README.md\">Massey Meta Machine<\/a><\/noindex> (M3), en la que se realiza una traducci\u00f3n anticipada del bytecode en operaciones m\u00e1s eficientes que generan c\u00f3digo m\u00e1quina pseudo, y el modelo de ejecuci\u00f3n de la m\u00e1quina virtual de pila se transforma en un enfoque m\u00e1s eficiente basado en registros. Las operaciones en M3 son funciones de C, cuyos argumentos son registros de la m\u00e1quina virtual que pueden reflejarse en los registros de la CPU. Las secuencias de operaciones que ocurren con frecuencia se optimizan convirti\u00e9ndolas en operaciones resumidas.<\/p>\n<p>Tambi\u00e9n se puede destacar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sec.cs.tu-bs.de\/pubs\/2019a-dimva.pdf\">resultados de la investigaci\u00f3n<\/a><\/noindex> distribuci\u00f3n<br \/>\nWebAssembly en la web. Al analizar 948,000 de los sitios m\u00e1s populares seg\u00fan el ranking de Alexa, los investigadores encontraron que WebAssembly se utiliza en 1639 sitios (0.17%), es decir, en 1 de cada 600 sitios. En total, se han identificado 1950 cargas de m\u00f3dulos WebAssembly en los sitios, de los cuales 150 son \u00fanicos. Al considerar el \u00e1mbito de aplicaci\u00f3n de WebAssembly, se hicieron conclusiones poco alentadoras: en m\u00e1s del 50% de los casos, WebAssembly se utiliz\u00f3 con fines maliciosos, como miner\u00eda de criptomonedas (55.7%) y ocultaci\u00f3n de c\u00f3digo de scripts maliciosos (0.2%). Entre los usos leg\u00edtimos de WebAssembly, se observ\u00f3 la ejecuci\u00f3n de bibliotecas (38.8%), la creaci\u00f3n de juegos (3.5%) y la ejecuci\u00f3n de c\u00f3digo propio escrito en lenguajes diferentes a JavaScript (0.9%). En un 14.9% de los casos, WebAssembly se utiliz\u00f3 para el an\u00e1lisis del entorno para la identificaci\u00f3n de usuarios (fingerprinting).<br \/>\n<center><img decoding=\"async\" alt=\"Lanzamiento de wasm3, un int\u00e9rprete r\u00e1pido de WebAssembly\" src=\"\/wp-content\/uploads\/2020\/01\/2df8e1633e47b0ce5d550565419bf008.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fuente: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52177\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a wasm3, \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 WebAssembly, \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 WebAssembly-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f JIT \u0434\u043b\u044f WebAssembly, \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b JIT \u0438\u043b\u0438 \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 JIT. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55148,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55147","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 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a wasm3, \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e.\" \/>\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\/es\/blog\/news\/pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a wasm3, \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 WebAssembly | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a wasm3, \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly\" \/>\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-01-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03: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\udd47 Primer lanzamiento de wasm3, un r\u00e1pido int\u00e9rprete de WebAssembly | ProHoster","description":"Ya est\u00e1 disponible el primer lanzamiento de wasm3, muy r\u00e1pido.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a wasm3, \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 WebAssembly | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a wasm3, \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/pervyj-vypusk-wasm3-bystrogo-interpretatora-webassembly","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-01-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55147","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 19:50:02","updated":"2022-10-06 01:13:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/55147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=55147"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/55147\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/55148"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=55147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=55147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=55147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}