Mozilla:Asm.js性能愈加逼近原生码
Mozilla的asm.js是JavaScript的一个高性能(严格)子集,因此Firefox能够比执行常规的JavaScript代码运行得更快。得益于内建到Firefox的JavaScript引擎( OdinMonkey),asm.js代码已经在3月份实现了大约1/2的原生速度(native speed)。 而最新的消息是,该组织宣布——其现在运行大多数基准测试的的速度,已达到原生码的2/3(甚至更好)了。
与Mozilla的做法不同,Google将赌注压在了本地客户端(Native Client)上,以使得web应用能够在浏览器中执行原生编译的代码。而Mozilla也在努力让JavaScript运行于原生速度。
尽管两者着手的角度不同,但无论是Google的Native Client、还是Mozilla的Emscripten LLVM-to-JavaScript编译器,两者都允许开发者使用C或C++代码,并在浏览器中运行。
Engineering teams at Mozilla and Epic ported Unreal Engine 3 to the Web
鉴于大多数游戏引擎都是用C或C++编写的,asm.js在大部分时候也将重心放在了游戏这块。事实上,在今年3月份的时候,Mozilla就为大家带来了 《虚幻3》引擎的免插件演示(Firefox移植版),效果相当给力。
Mozilla的Alon Zakai和Robert Nyman最近宣布,团队通过asm.js和Emscripten编译器上一些小的增量变化,实现了2/3的性能。当然,部分也要归功于Firefox JavaScript引擎的改进。
Zakai和Nyman指出:具体说来,Firefox已经对一些会导致"大量明显变化"(substantial speedups)的 浮点操作进行了优化。而Mozilla亦通过clang和gcc本地编译代码的方式衡量了asm.js的性能,并将之与通过Emscripten和asm.js运行相同代码的结果进行了比较(见上图)。
目前看来,asm.js仍然是一个Mozilla项目。不过 Chrome和Opera亦表示了将为asm.js进行优化,只是时间上可能不会那么快。值得一提的是,尽管asm.js代码可以在当前任何的JavaScript引擎上运行,但是肯定不会比Firefox运行得更快。
相关新闻:
Firefox Nightly迎来OdinMonkey 可接近原生速度运行JavaScript[2013-03-22]
[视频]无需插件:《虚幻3》引擎已成功移植到Firefox浏览器[2013-03-28]
asm.js:Mozilla在Web上实现接近原生的性能[2013-05-23]
[编译自: TechCrunch, 来源: Mozilla, via: Solidot]