| 摘要 | 第1-5页 |
| ABSTRACT | 第5-7页 |
| 目录 | 第7-10页 |
| 1 绪论 | 第10-16页 |
| ·研究背景 | 第10-11页 |
| ·国内外研究现状 | 第11-13页 |
| ·论文选题意义和主要研究工作 | 第13-15页 |
| ·论文选题意义 | 第13-14页 |
| ·论文主要研究工作 | 第14-15页 |
| ·论文组织结构 | 第15-16页 |
| 2 基础知识 | 第16-32页 |
| ·Java语言中的线程同步机制 | 第16-18页 |
| ·线程的同步 | 第16-17页 |
| ·线程同步的特征 | 第17页 |
| ·线程安全的类 | 第17页 |
| ·释放对象的锁 | 第17-18页 |
| ·死锁 | 第18页 |
| ·如何避免死锁 | 第18页 |
| ·线程通信 | 第18页 |
| ·程序分析技术的分类 | 第18-19页 |
| ·一种有效的Java字节码优化框架——Soot工具 | 第19-30页 |
| ·Soot概览 | 第19-20页 |
| ·Soot的核心特征 | 第20-21页 |
| ·Soot的数据结构 | 第21-22页 |
| ·Soot的基本构造 | 第22-23页 |
| ·Soot的中间表示 | 第23-27页 |
| ·Soot的使用 | 第27-30页 |
| ·小结 | 第30-32页 |
| 3 基于points-to分析的逃逸分析法 | 第32-44页 |
| ·基本概念和相关术语 | 第32-34页 |
| ·线程逃逸和线程局部 | 第32页 |
| ·指针图和可达性图 | 第32-33页 |
| ·调用图和控制流图 | 第33-34页 |
| ·逃逸状态 | 第34页 |
| ·逃逸分析初始化 | 第34-37页 |
| ·静态字段的初始化逃逸分析 | 第35-36页 |
| ·线程对象及其字段的初始化逃逸分析 | 第36-37页 |
| ·过程内逃逸信息传播 | 第37-40页 |
| ·过程间逃逸信息传播 | 第40-43页 |
| ·自底向上逃逸信息传播 | 第41-42页 |
| ·自顶向下逃逸信息传播 | 第42-43页 |
| ·小结 | 第43-44页 |
| 4 在"封闭世界"中实现逃逸分析 | 第44-60页 |
| ·Points-to分析 | 第44-45页 |
| ·SPARK | 第44页 |
| ·Paddle | 第44-45页 |
| ·points-to分析框架的选择 | 第45页 |
| ·数据流分析的执行过程 | 第45-54页 |
| ·控制流图和调用图 | 第46-48页 |
| ·逃逸格和逃逸对象 | 第48页 |
| ·过程内逃逸分析 | 第48-50页 |
| ·过程间逃逸分析 | 第50-54页 |
| ·实验及结果分析 | 第54-58页 |
| ·实验结果 | 第55-57页 |
| ·代价分析 | 第57页 |
| ·性能比较 | 第57-58页 |
| ·小结 | 第58-60页 |
| 5 结束语 | 第60-63页 |
| ·总结 | 第60-61页 |
| ·不足及未来的工作 | 第61-63页 |
| 参考文献 | 第63-68页 |
| 攻读学位期间取得的研究成果 | 第68-69页 |
| 致谢 | 第69-71页 |