论文部分内容阅读
随着互联网技术的发展,Web程序的应用也日趋广泛,JavaScript所承担的作用也不只是设计之初那样处理简单的DOM交互,更多的是需要为图形处理,物理引擎和虚拟现实等计算密集型操作提供支持。然而JavaScript以易用性为主的设计理念导致其性能上无法高效的应对繁重的处理需求,特别是在计算资源资源有限的平台。因此如何能够有效的提升JavaScript代码的执行效率,这对于网络应用程序的发展至关重要。以往采用的在Web端利用插件实现繁杂密集运算功能的方式由于安全性和代码移植限制等问题逐渐被舍弃。在Web端引入即时编译的技术使得JavaScript的执行性能有了大幅提升,但是优化及退优化操作和额外的内存开销也使其无法高效的应付功能繁杂的应用,在配置资源有限的移动端平台更为显著。为了解决以上方法存在的缺陷,使得Web应用程序拥有更高效的执行效率。我们利用最新的前端字节码技术,实现了一种基于WebAssembly的JavaScript代码性能优化方案。一方面利用WebAssembly对与性能相关的计算密集型代码段进行优化;另一方面利用代码段合并方法减少数据交互过程所带来的的性能开销。本文针对以下几个方面进行研究:(1)对JavaScript性能问题进行深入研究,分析执行效率低下的原因。并且对当前JavaScript代码优化方案进行分析,包括编译技术,变量类型模拟和部分求解器等多种主流的优化方案。详细分析了这些优化方案的基本原理,并且结合产生JavaScript性能缺陷的原因分析优化方案的不足。(2)分析利用WebAssembly对JavaScript进行性能优化的可行性。通过分析WebAssembly的适用范围和设计特点,提出了一个JavaScript代码性能优化方案,讨论了该方案的实现原理。详细说明了代码段转换和代码段合并的设计方法。(3)本文设计并实现原型优化系统JSOPW(JavaScript optimization by WebAssembly)。选择多个实际Web应用程序作为测试用例,同时和现有技术进行对比,收集测试用例在优化前后的时空开销。并且在多浏览器平台上针对优化方案的通用性进行了验证,通过对比评估实验验证了优化方案的有效性。