天天看点

浏览器厂商开始默认支持WebAssembly格式

各浏览器厂商在webassembly相关的工作上已经达成了一种“共识”,这使得各浏览器开始默认支持webassembly格式。

早在2016年11月,webassembly就已经进入“浏览器预览”(browser preview)阶段。在此阶段,主流浏览器都提供了一个具有webassembly开关标识的测试版本浏览器。随后的数月时间,各浏览器厂商需要在javascript api和二进制格式上做改进,并就此取得一致意见。近期发布的公告对webassembly做了界定:

如果没有实现经验和明确用途,那么无法对webassembly api和二进制格式的设计做进一步的改进。从这个意义上讲,最初的设计工作已经完成。(各浏览器厂商)就此已达成了共识。

这一共识标志着“浏览器预览”阶段的结束,意味着各个浏览器可以默认打开对webassembly格式的支持。由此往后,将来的特性设计会确保向后兼容。

虽然这一最初实现是一个重要的里程碑,但是并不会立刻被开发人员大范围地采用。尽管未来潜力无限,webassembly当前的语言支持仅限于c和c++,以及对rust的初期支持。webassembly也没有提供垃圾回收机制,因此c#和java这样的语言并不能正常运行,除非将它们自身的运行时作为二进制的组成部分。但是以后添加垃圾回收已在讨论中。

此外,webassembly当前缺少与dom交互等重要特性。mozilla工程师lin clark 写道,虽然“期待了很多的特性”,但是这些特性需要“有一个制定规范的过程”。webassembly社区组已经提供了一个供w3c工作组讨论的未来特性列表,但是这些特性何时可用尚未有时间表。

clark在一系列的帖子说明了webassembly会改进性能的原因所在,并指出引入webassembly将会是一个“转折点”,可导致无法预料的性能改进,并提供迎接新挑战的能力。

今后几年,各浏览器厂商会在改进jit编译器性能的同时,继续改进javascrip和webassembly间的交互。

本文转自d1net(转载)

继续阅读