在asm.js项目中,Mozilla公司积极推动这一JavaScript子集,旨在改进Web应用程序的性能表现并拓展C与C++应用在Web环境下的执行效果。
根据asm.js规范中的描述,我们可以将asm.js作为一款低级别、高效率的目标语言编译器加以使用。Mozilla的目标在于帮助以低级别语言(例如C/C++)编写的应用程序获得更出色的性能表现,Mozilla公司软件工程师Luke Wagner指出。就其自身来说,asm.js并不能让现有JavaScript代码运行得更快,他坦言。“不过Web开发者***创造能力,我们期待他们能深入发掘asm.js的潜力、而不是埋头于利用C/C++进行应用编写。”这款JavaScript
工具能够将C及C++应用编译为asm.js格式,并借此提高其运行速度。
“asm.js的核心在于通过简化格式定义达成理想的‘***性能效果’,”Wagner表示。“包括Emscripten、Mandreel、LLJS等方案在内的各类asm.js生成器用实际表现证明了它们实现这一目标的能力。它还能帮助浏览器中的JavaScript引擎简化执行流程的主动优化能力并提供可预期的提升效果。”现有JavaScript引擎已经能够优化这一JavaScript子集;asm.js的支持者们也已经在很短时间内通过火狐以及Chrome浏览器平台体会到了显著的执行速度改善,Wagner补充道。
尽管asm.js的作用主要体现在游戏开发工作当中,企业应用程序同样能够从中受益,JavaScript技术博主Axel Rauschmayer在本周于旧金山举行的O’Reilly Fluent大会上指出。他列举了asm.js的两大主要优势。“***项优势,大家可以对现有C以及C++代码进行编译,而且现成可用的代码规模也已经相当庞大。大家可以直接进行编译,并在Web平台上获得出色的运行速度,”Rauschmayer表示。“第二项优势是,它能够对非JavaScript代码进行简洁而有效的编译处理。在它的帮助下,大家能够更轻松地完成代码编译工作,进而使其在登陆Web平台的同时获得理想的运行速度。”
目前asm.js项目的支持者们正计划开发更多Web API,从而使asm.js能够在后台线程中执行编译工作并将编译结果进行离线保存。这将进一步提高该项目未来在应用程序开发者群体中的普及度。