基于Trace的CMinus语言即时编译技术研究
| 摘要 | 第4-5页 |
| Abstract | 第5-6页 |
| 第1章 绪论 | 第10-16页 |
| 1.1 课题背景 | 第10-11页 |
| 1.2 研究目的与意义 | 第11页 |
| 1.3 相关研究 | 第11-14页 |
| 1.3.1 HotSpot即时编译技术 | 第11-12页 |
| 1.3.2 基于Trace的即时编译技术 | 第12-14页 |
| 1.3.3 Java虚拟机语言 | 第14页 |
| 1.4 课题来源 | 第14页 |
| 1.5 本文研究工作和创新点 | 第14-15页 |
| 1.6 本文组织结构 | 第15-16页 |
| 第2章 背景知识与概念 | 第16-22页 |
| 2.1 即时编译技术 | 第16-17页 |
| 2.1.1 即时编译分类 | 第16页 |
| 2.1.2 热点代码判断策略 | 第16-17页 |
| 2.2 Java虚拟机 | 第17-19页 |
| 2.2.1 虚拟机结构 | 第17-18页 |
| 2.2.2 栈帧(Stack Frame) | 第18页 |
| 2.2.3 Java虚拟机指令 | 第18-19页 |
| 2.3 CMinus简介 | 第19-20页 |
| 2.3.1 CMinus文法 | 第19页 |
| 2.3.2 示例程序 | 第19-20页 |
| 2.4 本章小结 | 第20-22页 |
| 第3章 CMinus即时编译系统 | 第22-30页 |
| 3.1 系统框架 | 第22页 |
| 3.2 基本块流图生成 | 第22-25页 |
| 3.2.1 基本块结构 | 第22-23页 |
| 3.2.2 基本块流图转换规则 | 第23-25页 |
| 3.3 CMinus解释执行 | 第25-29页 |
| 3.3.1 基本结构 | 第25-26页 |
| 3.3.2 表达式执行规则 | 第26-27页 |
| 3.3.3 函数调用 | 第27-29页 |
| 3.4 本章小结 | 第29-30页 |
| 第4章 基于Trace的热点探测技术 | 第30-38页 |
| 4.1 基本概念 | 第30-32页 |
| 4.1.1 Trace定义 | 第30-31页 |
| 4.1.2 锚点识别 | 第31-32页 |
| 4.2 基于Trace的热点探测 | 第32-36页 |
| 4.2.1 Trace探测整体流程 | 第32-33页 |
| 4.2.2 Trace探测 | 第33-35页 |
| 4.2.3 Trace合并 | 第35-36页 |
| 4.3 本章小结 | 第36-38页 |
| 第5章 目标代码生成及执行 | 第38-52页 |
| 5.1 目标代码的选择 | 第38页 |
| 5.2 目标代码设计及生成 | 第38-44页 |
| 5.2.1 目标代码类设计 | 第39-40页 |
| 5.2.2 辅助信息收集 | 第40页 |
| 5.2.3 目标代码生成 | 第40-44页 |
| 5.3 环境切换 | 第44-49页 |
| 5.3.1 解释执行到编译执行 | 第45-46页 |
| 5.3.2 编译执行到解释执行 | 第46-49页 |
| 5.4 执行目标代码 | 第49-50页 |
| 5.5 本章小结 | 第50-52页 |
| 第6章 系统设计及测试 | 第52-64页 |
| 6.1 系统设计 | 第52-55页 |
| 6.1.1 CMinus即时编译引擎设计 | 第52-54页 |
| 6.1.2 基本块流图类体系 | 第54-55页 |
| 6.2 测试方案 | 第55-56页 |
| 6.3 功能测试 | 第56页 |
| 6.4 性能测试 | 第56-61页 |
| 6.4.1 解释执行和基于Trace即时编译比较 | 第57-60页 |
| 6.4.2 循环次数对加速比的影响 | 第60-61页 |
| 6.4.3 编译阈值影响 | 第61页 |
| 6.5 本章小结 | 第61-64页 |
| 结论 | 第64-66页 |
| 参考文献 | 第66-70页 |
| 附录 A | 第70-78页 |
| 附录 B | 第78-84页 |
| 攻读硕士学位期间发表的学术论文 | 第84-86页 |
| 致谢 | 第86页 |