探究webassembly(1):初认识

这是一篇总览文章,所以在用词方面尽量追求简短有力,我将在接下来的几篇文章中进行详细的解析
1.定义

如果说集合了各种Web规范的编程语言是JavaScript,那么我会认为它更类似于一个 集合了各种Web规范的编译器,帮助你把各种语言编译成Web上执行的代码,官网称之为 format suitable for compilation- 一种合适的编译格式

2.优点

个人认为其有两个突出的优点:

(1): 可以将各种语言编译成在web上执行的代码(目前好像只支持C和C++)
(2) 逼近原生APP的性能(构想,目前来看还有一段距离)。

3.开发

目前我认识的有两种主要方式来进行webassembly开发:

(1):使用官方的webassembly文本开发,然后用编译成webassembly(类似于C++的源程序用编译器编译到C++的可执行程序?)

(2)
各种语言 (例如TypeScript,C)
           
->LLVM bytecode (理论上所有强类型编程语言均可以生成的跨语言的底层虚拟机字节码

->asm.js(本质还是JS,当浏览器不支持webassembly的时候,会回退使用asm.js获得一致的结果)

->webassembly

当然目前还是推荐使用emscripten进行开发,它可以直接生成wasm或者已经帮你完成胶结的JS文件
4.使用

    从资料上来看,受限于目前的webassembly发展水平,目前大部分使用webassembly的场景都是基于JS,作为JS代码的补充,一种调用方式是设计成接口让JS去调用,实际上我发现这种方式消耗性能严重,比起jit并没有特别大的优势(在电脑版谷歌上测试只快了20%),所以建议用共享内存的方式来和JS进行交互
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值