WebAssembly初探
【摘要】 1. 介绍WebAssembly是一种Web浏览器端运行二进制代码的新方式,C/C++/RUST/Go等语言目前均有支持。它并不是用来取代JavaScript,而是和JavaScript协同工作,用于执行性能敏感的功能。主流的浏览器包括Chrome、Firefox、Edge等均已支持运行WebAssembly。具体来说,它的主要优势包括:l 高性能且可移植:WebAssembl...
1. 介绍
WebAssembly是一种Web浏览器端运行二进制代码的新方式,C/C++/RUST/Go等语言目前均有支持。它并不是用来取代JavaScript,而是和JavaScript协同工作,用于执行性能敏感的功能。主流的浏览器包括Chrome、Firefox、Edge等均已支持运行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管理界面中发布后,即可在浏览器中预览效果:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)