| 摘要 | 第1-5页 |
| ABSTRACT | 第5-10页 |
| 第1章 绪论 | 第10-16页 |
| ·问题描述 | 第10-11页 |
| ·相关工作 | 第11-14页 |
| ·改良同步原语的实现 | 第11-13页 |
| ·基于逃逸分析的同步优化 | 第13-14页 |
| ·基于锁粗化的同步优化 | 第14页 |
| ·研究内容 | 第14-15页 |
| ·论文组织 | 第15-16页 |
| 第2章 基础知识 | 第16-27页 |
| ·Java 语言中的同步机制 | 第16-17页 |
| ·程序分析技术的分类 | 第17页 |
| ·开源 Java SE 项目 Harmony 简介 | 第17-26页 |
| ·JIT 流水线编译框架 | 第19-20页 |
| ·JIT 中的一些基本的共享结构 | 第20-21页 |
| ·编译流水线的启动 | 第21-23页 |
| ·编译和重编译机制 | 第23-25页 |
| ·lock_method 和gc_map | 第25-26页 |
| ·本地代码的存储管理 | 第26页 |
| ·本章小结 | 第26-27页 |
| 第3章 插桩取样系统的设计与实现 | 第27-33页 |
| ·插桩取样技术概述 | 第27-28页 |
| ·插桩取样系统的基本思想 | 第28-30页 |
| ·在 Harmony 中的实现 | 第30-32页 |
| ·统计与同步相关的操作的数量 | 第30-31页 |
| ·输出Java 方法调用信息 | 第31-32页 |
| ·本章小结 | 第32-33页 |
| 第4章 Stoodley 等的同步优化算法及其实现 | 第33-41页 |
| ·Stoodley 等的同步优化算法的基本思想 | 第33-35页 |
| ·优化条件 | 第33-34页 |
| ·死锁 | 第34页 |
| ·算法框架 | 第34-35页 |
| ·Stoodley 等的同步优化算法在 Harmony 中的实现 | 第35-38页 |
| ·主要变量和数据结构 | 第35-36页 |
| ·算法流程 | 第36-38页 |
| ·实验及结果分析 | 第38-39页 |
| ·本章小结 | 第39-41页 |
| 第5章 利用即时编译器外提循环中的同步操作 | 第41-51页 |
| ·同步操作外提算法的基本思想 | 第41-46页 |
| ·循环外提的条件 | 第41-43页 |
| ·正确性和性能分析 | 第43-45页 |
| ·算法框架 | 第45-46页 |
| ·同步操作外提算法在 Harmony 中的实现 | 第46-48页 |
| ·实验及结果分析 | 第48-50页 |
| ·本章小结 | 第50-51页 |
| 第6章 同步方法优化 | 第51-81页 |
| ·过程间同步优化算法 | 第51-53页 |
| ·同步方法优化框架 | 第53-56页 |
| ·基于锁粗化的同步方法优化算法 | 第56-63页 |
| ·基本思想 | 第56-59页 |
| ·死锁 | 第59-61页 |
| ·收益 | 第61页 |
| ·代价 | 第61-63页 |
| ·双版本同步方法优化算法在 Harmony 中的实现 | 第63-73页 |
| ·程序分析及优化变换 | 第63-71页 |
| ·编译流水线的启动 | 第71-72页 |
| ·修改CodeChunkInfo 以及lock_method、gc_map | 第72-73页 |
| ·分支版本同步方法优化算法在 Harmony 中的实现 | 第73-75页 |
| ·实验及结果分析 | 第75-80页 |
| ·同步操作数 | 第75-76页 |
| ·存储开销 | 第76-77页 |
| ·性能 | 第77-80页 |
| ·本章小结 | 第80-81页 |
| 第7章 结束语 | 第81-83页 |
| ·主要贡献 | 第81-82页 |
| ·不足及未来的工作 | 第82-83页 |
| 参考文献 | 第83-86页 |
| 致谢 | 第86-87页 |
| 在读期间发表的学术论文与取得的研究成果 | 第87页 |