当前位置:主页 > 管理论文 > 移动网络论文 >

基于WebAssembly的JavaScript性能优化方案研究与实现

发布时间:2020-12-03 09:51
  随着互联网技术的发展,Web程序的应用也日趋广泛,JavaScript所承担的作用也不只是设计之初那样处理简单的DOM交互,更多的是需要为图形处理,物理引擎和虚拟现实等计算密集型操作提供支持。然而JavaScript以易用性为主的设计理念导致其性能上无法高效的应对繁重的处理需求,特别是在计算资源资源有限的平台。因此如何能够有效的提升JavaScript代码的执行效率,这对于网络应用程序的发展至关重要。以往采用的在Web端利用插件实现繁杂密集运算功能的方式由于安全性和代码移植限制等问题逐渐被舍弃。在Web端引入即时编译的技术使得JavaScript的执行性能有了大幅提升,但是优化及退优化操作和额外的内存开销也使其无法高效的应付功能繁杂的应用,在配置资源有限的移动端平台更为显著。为了解决以上方法存在的缺陷,使得Web应用程序拥有更高效的执行效率。我们利用最新的前端字节码技术,实现了一种基于WebAssembly的JavaScript代码性能优化方案。一方面利用WebAssembly对与性能相关的计算密集型代码段进行优化;另一方面利用代码段合并方法减少数据交互过程所带来的的性能开销。本文针对... 

【文章来源】:西北大学陕西省 211工程院校

【文章页数】:70 页

【学位级别】:硕士

【部分图文】:

基于WebAssembly的JavaScript性能优化方案研究与实现


可用硬件JavaScript程序运行时间统计

优化流程


第三章 基于 WebAssembly 的 JavaScript 性能优化方法通过上一章的分析,对于 JavaScript 的性能缺陷和现有解决方案有了初步的了解。本文结合 WebAssembly 技术,提出了一种基于 WebAssembly 的 JavaScript 性能优化方法。WebAssembly 是一种二进制格式代码,作为 C/C++等源代码的高效编译目标可以运行在 Web 端。3.1 JSOPW 优化方法概述JSOPW 的核心在于通过筛选规则获取待优化代码中的数字计算类型的代码段,并且编译生成 WebAssembly 模块。再针对 WebAssembly 模块调用过程中产生的性能开销设计代码段合并规则以减少数据交互次数。图 2 描述了 JSOPW 优化方案的执行过程。

符号执行,信息,节点


输入符号相关谓词条件的取值,就是含有输入符号的布尔类型表达式。路径约束集合是用来收集每一条路径上收集到的路径约束,用“与”操作进行连接,并且通过使用约束求解器对约束集合进行求解,就可以得到这条路径是否可达[52]。如果约束求解器有解则说明路径可达,否则则表示路径不可达。在资源充足的情况下符号执行可以对程序的执行路径全覆盖。为了防止动态执行过程中路径爆炸的问题,可以采用状态合并等方式进行处理。因为程序的主要目的在于优化而非代码分析,则可以通过提供测试用例的方式来增加执行的覆盖路径,提高优化框架的执行效率。我们使用图 3(a) 中的 JavaScript程序作为一个运行示例,其中 var a=b 表示利用表达式 b 的值来初始化变量 v。语句var x=Input()表示从输入流中获取值并且赋值给变量 x。动态符号执行通过探索图 3(b)的中执行树来选择程序的执行策略。我们在动态符号执行的过程中添加监测模块,记录程序执行过程中堆栈信息和控制流信息,并且排列这些堆栈数据获得更为直观的 JavaScript 变量数据值,最后通过树型结构对节点属性和嵌套结构进行保存。

【参考文献】:
期刊论文
[1]一种具有指令集随机化的代码虚拟化保护系统[J]. 汤战勇,李光辉,房鼎益,陈晓江.  华中科技大学学报(自然科学版). 2016(03)
[2]基于精简指令集的软件保护虚拟机技术研究与实现[J]. 汤战勇,王怀军,房鼎益,陈晓江.  微电子学与计算机. 2011(08)



本文编号:2896273

资料下载
论文发表

本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2896273.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户355d9***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com