Wasm的简介

 由于公司项目的需求,现在主要是做脱Flash的工作(历史原因用AS3.0做的)!现在全部转为C++, 并且发布PC版与Web版。其中Web的版本就是使用的Wasm(WebAssembly技术)。
 WASM ,全称:WebAssembly ,是一种可以使用非 Java 编程语言编写代码并且能在浏览器上运行的技术方案,也是自 Web 诞生以来首个 Java 原生替代方案( 程序本质上都是脚本程序,即由程序翻译指令并执行,而不是由本地机器CPU读取指令并执行,因此效率非常低。而Java的操作相对重复繁琐,在执行过程中耗时较长。)
 其实创建Wasm的初衷并非为了替代JavaScript,而是为了实现两者之间的补充和配合。随着WebAssembly的引入,现代web浏览器的虚拟机将同时运行JavaScript和Wasm代码。

Web Assembly 比 asm.js 要激进很多。 Web Assembly 连标注 Js 这种事情都懒得做了,不是要 AOT 吗? 我直接给字节码好不好?(后来改成 AST 树)。对于不支持 Web Assembly 的浏览器, 会有一段 Javascript 把 Web Assembly 重新翻译为 Javascript 运行, 这个技术叫 polyfill, HTML5 刚出来的时候很常用的一个技术。
使用 AST 的原因是因为 AST 比字节码更容易压缩,也更容易翻译。
不了解 AST 可以看下面这张图, 说明 Javascript 引擎的执行过程。 Javascript 先编译为 AST, 然后到 Bytecode. AST 的抽象程度比 Bytecode 要高一级。
Wasm的简介_第1张图片

Wasm的技术优势:
  1. 性能高效:WASM采用二进制编码,在程序执行过程中的性能优越;
  2. 存储成本低:相对于文本格式,二进制编码的文本占用的存储空间更小;
  3. 多语言支持:用户可以使用 C/C++/RUST/Go等多种语言编写智能合约并编译成WASM格式的字节码;
    如图:Wasm的简介_第2张图片

结尾附上前端框架(只找到2017年,2018好像截止还没出)
Wasm的简介_第3张图片

你可能感兴趣的:(计算机网络,web)