基于JIT的嵌入式JS引擎优化技术的研究

基于JIT的嵌入式JS引擎优化技术的研究

论文摘要

JavaScript在Web中得到了广泛应用,提高JavaScript程序的处理能力显得尤为紧迫,由此看来提高JS引擎的性能对JavaScript的发展将有重要意义。针对嵌入式平台多样性和硬件复杂性的特点,开发可配置的JS引擎对提高嵌入式浏览器的适应性更加重要。本文充分分析了嵌入式JS引擎的特点,设计了可配置的JIT优化方法,并且就如何提高JS引擎的性能进行了深入研究。本文首先阐述了JS引擎的发展现状,研究了当前主流JS引擎优化技术,重点介绍了JIT(Just-In-Time即时编译)优化技术。然后分析了某商用嵌入式JS引擎的特点,讨论了通过添加JIT模块来提高该JS引擎性能的优化方法。针对嵌入式环境特点和该JS引擎特殊的多层结构,本文把JIT模块划分为热区监测器,热区记录器和热区编译器,并对各个子模块的工作流程及关键部分的实现进行了详细的描述。在选择热区的算法中,通过复合使用基于Trace和基于函数的优化技术,并提供相关的优化参数,提高了嵌入式浏览器的适应性。在管理优化函数编译结果时,使用基于双链表的最近最少使用算法,提高了内存空间的使用率。最后,本文对优化前后的JS引擎的性能进行了分析与对比。结果表明,优化后的JS引擎在处理优化空间较大的JavaScript代码时,其性能有了大幅的提高。目前,本文所提到的JS引擎优化工作已经完成,客户对其性能进行测试后表明,其性能和适应性都得到了很大的提高。

论文目录

  • 中文摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景及意义
  • 1.1.1 互联网的发展对JavaScript的要求
  • 1.1.2 JS引擎的发展与现状
  • 1.1.3 JS引擎在嵌入式浏览器中的地位
  • 1.2 选题背景及主要工作
  • 1.3 论文组织结构
  • 第二章 相关技术研究
  • 2.1 JavaScript与Java
  • 2.2 嵌入式操作系统
  • 2.3 嵌入式浏览器
  • 2.3.1 嵌入式浏览器的工作原理
  • 2.3.2 浏览器处理流程
  • 2.4 JS引擎优化技术
  • 2.4.1 JIT技术基本原理
  • 2.4.2 基于Trace的 JIT
  • 2.4.3 基于函数的 JIT
  • 2.5 跨平台C++库Nanojit
  • 第三章 JIT模块总体设计
  • 3.1 总体设计
  • 3.1.1 设计目标
  • 3.1.2 JIT模块总体结构设计
  • 3.1.3 JIT模块运行状态转换
  • 3.2 热区监测器
  • 3.2.1 热区监测器功能
  • 3.2.2 发现Trace
  • 3.2.3 发现优化函数
  • 3.2.4 可配置的优化参数
  • 3.3 热区记录器
  • 3.3.1 热区记录器功能
  • 3.3.2 热区记录器的记录过程
  • 3.4 热区编译器
  • 3.5 开发工具和运行环境
  • 第四章 热区监测器与热区编译器的设计与实现
  • 4.1 热区监测器的设计与实现
  • 4.1.1 热区监测器工作流程
  • 4.1.2 数据结构设计
  • 4.1.3 管理潜在循环头
  • 4.1.4 识别循环头
  • 4.1.5 识别优化函数
  • 4.2 热区编译器的设计与实现
  • 4.2.1 热区编译器的工作流程
  • 4.2.2 生成本地机器代码
  • 4.2.3 管理优化函数编译结果
  • 4.3 执行本地机器代码
  • 第五章 热区记录器的设计与实现
  • 5.1 热区记录器工作流程
  • 5.2 数据结构设计
  • 5.3 记录Trace Tree
  • 5.3.1 设置记录标志
  • 5.3.2 生成LIR指令
  • 5.3.3 守卫指令
  • 5.3.4 同步变量值
  • 5.3.5 停止记录
  • 5.4 其它关键问题
  • 5.4.1 扩展Trace Tree
  • 5.4.2 嵌套循环
  • 5.4.3 普通函数
  • 5.5 记录优化函数
  • 5.5.1 记录优化函数流程
  • 5.5.2 优化函数的参数
  • 第六章 KES性能分析
  • 6.1 测试目的与方法
  • 6.2 测试与性能分析
  • 6.3 优化结论
  • 第七章 总结与展望
  • 参考文献
  • 发表论文和参加科研情况说明
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  

    基于JIT的嵌入式JS引擎优化技术的研究
    下载Doc文档

    猜你喜欢