WebAssembly相关硕士毕业论文
基于WebAssembly的JavaScript性能优化方案研究与实现
随着互联网技术的发展,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应用程序作为测试用例,同时和现有技术进行对比,收集测试用例在优化前后的时空开销。并且在多浏览器平台上针对优化方案的通用性进行了验证,通过对比评估实验验证了优化方案的有效性。
基于WebAssembly的JavaScript代码虚拟化保护方法研究与实现
伴随着网络和浏览器性能的提高,前端的JavaScript应用也越来越丰富多样化,其执行能力和性能的增强,也使得更多的重要逻辑从后端转向前端。同时这也意味着,JavaScript所承担的工作变得越来越重要,并且其自身的安全问题和安全需求也就越加紧迫。如何在源码传输的前端环境中保护JavaScript应用代码的安全,阻止其被恶意的分析和利用,对保护网络服务提供者的权益至关重要。目前主流的JavaScript代码保护措施主要为精简、加密和混淆。JavaScript源码传输的特性,使其要比传统的经过编译的二进制程序更加容易逆向分析,再加上浏览器调试器的功能越来越完善,这些方法很难起到很好的保护效果。为了解决以上方法存在的缺陷,保护关键的JavaScript的核心逻辑不被恶意的分析和使用,本文提出一种基于Web Assembly的JavaScript代码虚拟化保护方法,一方面引入代码虚拟化的思想保护JavaScript代码的执行逻辑;另一方面基于Web Assembly前端字节码技术编译实现虚拟解释器,隐藏虚拟解释过程的核心逻辑。本文研究内容主要包括以下几个方面:
(1)研究分析当前主流的JavaScript代码保护方法的基本原理、技术特点和其面临的安全挑战。针对JavaScript代码的安全问题,研究并提出一种基于代码虚拟化保护思想的JavaScript代码保护方案。
(2)研究一种JavaScript代码虚拟化的保护方法。研究设计JavaScript脚本代码的虚拟化保护方案。分析介绍指令拆分,虚拟机架构,虚拟指令集,虚拟解释器以及指令映射编码规则等设计过程。
(3)研究基于Web Assembly的虚拟解释器的设计。利用新的前端字节码技术对JavaScript虚拟化保护方案的虚拟解释器进行改进设计和编译实现,保护和隐藏虚拟机架构的核心解释模块。
(4)设计并实现JavaScript代码虚拟化保护的原型系统。针对本文提出的方法设计并实现原型系统,并选择实际用例和多种保护工具对原型系统进行实验评估和对比分析,充分验证该方法的实用性和有效性。
基于Web的自然图像轻量级识别与追踪
随着AR服务逐渐渗透进生活的方方面面,AR在众多领域带给 人们前所未有的生活体验与视觉震撼。运行在浏览器端的WebAR, 使用户通过访问网页便可体验到AR应用,与以APP为载体的传统 AR相比,具有轻量级、跨平台、易传播等优势。
在WebAR的运行过程中,识别追踪和渲染交互是同时进行的, 由于AR算法逻辑复杂、JavaScript语言运行效率不高、浏览器性能 限制等问题,导致传统方案实现在网络平台上的AR应用存在很大的 局限性。目前在浏览器上运行的AR应用,大多仅能对强标记物进行 高帧率追踪以及姿态估计;而针对自然图像的追踪过程,往往会出现 帧率过低、模型抖动等问题。如何给用户带来更丰富、更流畅的体验 成为目前WebAR的一大难题。
本论文的研宄方向是在前端浏览器上实现轻量级、高性能的AR 系统。在实现对自然图像进行追踪,对模型进行位姿绑定等AR功能 的同时,保证系统在浏览器上以较高帧率运行,为用户带来流畅的视 觉体验。利用WebAssembly技术对OpenCV库进行轻量化定制,仅 将系统所需功能接口封装编译成WASM模块,使系统能够以字节码 原生速度在网络前端轻量级运行,提高运行效率,•添加专门的抖动优 化模块,在利用L-K光流法作为跟踪器来增强系统稳定性的基础上, 采用加权最小二乘法与卡尔曼滤波结合的方案,对最小二乘利用粒子 滤波进行改进,得到图像间更加稳定的位姿数据,并通过卡尔曼滤波 进一步过渡补偿,降低卡顿;针对AR系统增加其它拓展模块,用户 可任意选中某一模型进行交互,增强模型与用户间的互动,丰富应用 场景。
为验证上述方案的有效性,本文设计了若干相关实验,对系统功 能模块进行测试;并通过对比传统方案在相同条件下的实验数据,分 析本文系统在性能表现上的提升。结果表明,本方案不仅成功在浏览 器上实现AR追踪、姿态估计等功能,在性能方面同样达到了低时延、 高帧率、实时性等要求。 关键词WebAR自然图像姿态估计WebAssembly抖动优化
面向智能合约的安全开发调试平台研究与实现
随着区块链技术在金融、物流、医疗健康等领域的广泛应用,智能合约作为区块链去中心化应用的核心程序,其开发环境也越来越重要。目前,市面上并没有友好、高效的智能合约开发调试平台。为了促进区块链和智能合约技术的工程应用和产业推广,本文基于区块链平台研究面向智能合约的安全开发调试系统平台。重点研究了区块链系统架构、智能合约系统架构、智能合约调试引擎、智能合约全生命周期开发流程等内容。主要研究内容分为两个部分:
1.研究智能合约调试器引擎技术,并基于EOS(Enterprise Operation System)区块链平台实现了智能合约的调试功能。本文详细研究了EOS区块链平台的系统架构、EOS智能合约框架及其编译工具链使用方法、EOS智能合约虚拟机执行引擎工作原理、EOS区块链账户管理机制以及EOS区块链交易执行流程等内容。然后详细分析了DWARF调试信息的编码格式,及使用DWARF调试信息获取源码行号映射信息以及变量地址映射信息的原理。并介绍了WASM(WebAssembly)字节码二进制目标文件的格式及其主要指令集编码。
2.研究并实现了基于Web的EOS智能合约综合化安全开发调试平台。目前EOS智能合约开发缺少完善易用的开发工具的支持。本文基于对EOS智能合约全生命周期开发流程的研究,设计并实现了一套综合的EOS集成开发环境。提供给合约开发人员一个完善的集项目管理、开发调试、部署执行、安全检测等功能的智能合约Web集成开发环境。论文最后详细描述了本系统的设计与实现过程,并给出了系统关键问题的解决方案。通过对EOS智能合约开发的详细需求分析,提出了本系统所需要满足的功能性需求。之后结合Web传统前后端分离架构以及EOS区块链系统架构,设计了本系统的总体架构及其拓扑结构。并针对系统主要关键功能,设计了其业务执行流程。最后通过详细的测试案例设计以及测试结果展示,介绍了系统的功能实现情况。本文实现的基于EOS区块链的智能合约安全开发调试平台,能够满足EOS智能合约开发人员的各项基本需求。本系统能有效的降低EOS智能合约的开发难度,提高EOS智能合约的开发效率并促进区块链技术的应用推广。