10.WebAssembly

WebAssembly

WebAssembly无疑是近年来让人最为兴奋的新技术之一,它虽始于浏览器但已经开始不断地被各个语言及平台所集成。在实际的工业化落地中,区块链、边缘计算、游戏及图像视频等多个领域都依靠WebAssembly创造了让人称赞的产品。WebAssembly技术本身具有非常多优点,其中最为被人所熟知的三点有:

  • 二进制格式
  • Low-Level的编译目标
  • 接近Native的执行效率

WebAssembly(wasm)就是一个可移植、体积小、加载快并且兼容Web的全新格式。实际上,WebAssembly是一种新的字节码格式,旨在成为高级语言的编译目标,目前可以使用C、C++、Rust、Go、Java、C#等编译器(未来还有更多)来创建wasm模块(见下图。该模块以二进制的格式发送到浏览器,并在专有虚拟机上执行,与JavaScript虚拟机共享内存和线程等资源。

C 代码到 WASM

wasm模块总是与JavaScript “胶水”代码一起使用,在必要的时候可以执行一些有用的操作。WebAssembly可以看做是对JavaScript的加强,弥补JavaScript在执行效率上的缺陷。

Links