WebAssembly初探
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管理界面中发布后,即可在浏览器中预览效果:
- 点赞
- 收藏
- 关注作者
评论(0)