WebAssembly 知识点

428 阅读1分钟

缘由 

Js的坑:

代码体积越来越大  (大型项目中存在)webpack、uglify等,原理上:压缩上限有限。

越来越长的起步及运行时时间。

没有静态类型。(typescript基本已经解决)


与asm.js类型,可以做到可移植。     

语法上脱离JavaScript。     

沙盒话的执行环境。  

执行起步有本质区别,没有parse,实质上是个decode的过程。


适合webassembly的场景

  1. 对性能有很高要求的场景
  2. 在web上利用C/C++/Rust的库
  3. 需要独立的沙盒环境
  4. 需要在不同平台运行


产品:

  • PSPDKit for Web
  • Webpack Core
  • AutoCad
  • Googl Earth
  • Ethereum runtime
  • 。。。


工具

emscripten    编译器

WABT            转换器

Webpack  support 现已经可以直接引用了


AssemblyScript    把TypeScript编译成Assembly的编译器

https://github.com/AssemblyScript/assemblyscript

Blazor  /  Mono    运行.net的程序

https://github.com/aspnet/Blazor



tip

webassemble 暂时没法很好支持,带GC的语言的编译。