由Google开发的开源JavaScript引擎V8,其最新的分支版本8.4,其中一个更新重点,在于改进WebAssembly的功能,不只加快程序启动速度,也改善调试功能,而且还支持了WebAssembly SIMD提案。V8 8.4现在进入Beta测试阶段,在数周后将会用于Chrome 84稳定版中。
Google提到,由于V8的WebAssembly基准编译器Liftoff,现在支持原子指令(Atomic Instructions)和大量内存操作(Bulk Memory Operations)功能,因此大幅改进了WebAssembly程序启动的速度。而Google也改善了WebAssembly的调试功能,现在V8能够在用户暂停执行,或是到达中断点时,立即查看WebAssembly程序区块的状态。
而这个功能是使用Liftoff实例的,Google解释,过去所有中断点和逐步执行的程序代码,都需要在WebAssembly解释器中执行,而这大幅降低约100倍的执行速度,但使用Liftoff,就仅会损失三分之一的性能,但可让开发者逐步执行所有程序代码,并且随时进行查看。
另外,V8 8.4开始支持WebAssembly SIMD提案,该提案让WebAssembly能够使用常见的硬件矢量指令,以加速运算密集的工作负载,目前要在Chrome中激活这项功能,需要将chrome://flags/#enable-webassembly-simd旗标设为激活,或是加入Origin Trial计划。Origin Trial计划让开发人员可以在功能标准化之前先进行测试,加入该计划的开发者可以在功能测试期间,直接使用该功能,而不用更改Chrome旗标。