WebAssembly初探

举报
XiuqiaoLi 发表于 2020/02/28 17:04:07 2020/02/28
4.7k+ 0 0
【摘要】 1. 介绍WebAssembly是一种Web浏览器端运行二进制代码的新方式,C/C++/RUST/Go等语言目前均有支持。它并不是用来取代JavaScript,而是和JavaScript协同工作,用于执行性能敏感的功能。主流的浏览器包括Chrome、Firefox、Edge等均已支持运行WebAssembly。具体来说,它的主要优势包括:l 高性能且可移植:WebAssembl...

1.       介绍

WebAssembly是一种Web浏览器端运行二进制代码的新方式,C/C++/RUST/Go等语言目前均有支持。它并不是用来取代JavaScript,而是和JavaScript协同工作,用于执行性能敏感的功能。主流的浏览器包括ChromeFirefoxEdge等均已支持运行WebAssembly。具体来说,它的主要优势包括:

l  高性能且可移植:WebAssembly可以以接近原生的性能跨平台运行

l  可读性好且支持调试:WebAssembly是底层汇编语言,执行程序可包含编译符号信息

l  安全:WebAssembly运行在安全沙箱环境中

2.       初探

Emscripten工具可用来编译用C/C++编写的WebAssembly程序,该工具可以从源码编译安装,也提供一部分平台上的预编译版本。简单的方式是直接使用Docker容器运行已预制好的环境。

# cat hello.c

#include <stdio.h>

int main() {

         printf("I'm from web assembly\n");

         return 0;

}

docker run --rm -v /host_dir:/container_dir trzeci/emscripten emcc / container_dir/hello.c -s WASM=1 -o / container_dir/hello.html

上述编码命令执行后将自动生成wasm字节码文件、javascript文件和示例的html文件,其中javascript文件中加载wasm,并将执行输出设置到html中的文件框中。

# ls /host_dir

hello.html  hello.js  hello.wasm

将上述文件拷贝到web服务器的发布目录中,如Tomcat

# ls /var/lib/tomcat/webapps

hello.html  hello.js  hello.wasm

Tomcat管理界面中发布后,即可在浏览器中预览效果:

1582880573150803.png

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。