Mozilla通过在Firefox浏览器中使用并行提高了 WebAssembly字节码 和 asm.js的JavaScript子集的性能 。
Mozilla的工程师通过使用并行来减少浏览器中asm.js程序启动的时间。“我们的 JavaScript引擎SpiderMonkey ,对asm.js和WebAssembly使用了相同的编译管道,这对WebAssembly来说有很大的好处。”工程师Benjamin Bouvier说。
他解释道,并行使原来顺序执行的程序分成若干个小任务,然后交给不同的CPU去执行。“如果你的程序使用了N个核心,那么速度就可以提升N倍。”
Mozilla的目标是,通过将MIR(middle-level intermediate representation)从主线程中分离出来,使更多的程序可以并行执行,从而提高效率。
尽管Mozilla使用新结构的并行可以提高效率,但是在移动应用方面依然是一个难题。Bouvier说,“这是因为,我们是在使用一个由后端的编译器通过上百万行代码库自动产生的优化代码。下一个工作的瓶颈会是分析代码。对asm.js来说比较致命,因为它的源代码是纯文本。解码WebAssembly已经比较快了,但是它还可以更快。”
WebAssembly以通过在浏览器中使用可移植的代码 提高Web的性能 而著名。它得到了Mozilla,Google,Microsoft和Apple的支持。
原文地址: Mozilla gives WebAssembly a parallelism boost
翻译:赖信涛
责编:孙思