ARM安卓应用CPU单核单线程性能分析工具的设计与实现
摘要 | 第5-6页 |
Abstract | 第6页 |
第一章 绪论 | 第9-15页 |
1.1 背景与意义 | 第9-10页 |
1.2 国内外研究现状 | 第10-11页 |
1.2.1 基于软件插桩的性能分析 | 第10-11页 |
1.2.2 基于硬件性能计数器的性能分析 | 第11页 |
1.3 研究内容及目标 | 第11-13页 |
1.4 论文组织 | 第13-15页 |
第二章 Android应用性能分析技术 | 第15-25页 |
2.1 Android系统框架及应用开发方式 | 第15-18页 |
2.1.1 Android系统框架 | 第15-16页 |
2.1.2 Android应用程序开发方式 | 第16-18页 |
2.2 Android应用的性能分析和优化 | 第18-21页 |
2.2.1 应用性能的定义 | 第19-20页 |
2.2.2 性能分析和优化 | 第20-21页 |
2.3 Android应用性能分析工具 | 第21-23页 |
2.3.1 Java性能分析工具 | 第22页 |
2.3.2 Native库性能分析工具 | 第22-23页 |
2.4 本章小结 | 第23-25页 |
第三章 ARM CPU体系结构和性能分析模型 | 第25-35页 |
3.1 CPU流水线 | 第25-27页 |
3.1.1 RISC处理器经典五级流水线 | 第25-27页 |
3.1.2 流水线冒险 | 第27页 |
3.2 CPU关键技术 | 第27-30页 |
3.2.1 CPU高速缓存 | 第27-29页 |
3.2.2 分支预测 | 第29-30页 |
3.3 ARM CPU的性能分析 | 第30-34页 |
3.3.1 性能监测单元 | 第31-32页 |
3.3.2 性能分析模型 | 第32-34页 |
3.4 本章小结 | 第34-35页 |
第四章 性能分析工具的设计 | 第35-49页 |
4.1 功能需求分析 | 第35-36页 |
4.2 系统组成和模块功能划分 | 第36-37页 |
4.3 数据采集模块的设计 | 第37-42页 |
4.3.1 性能分析数据的类型和编码格式 | 第38-41页 |
4.3.2 数据采集模块的工作流程 | 第41-42页 |
4.4 通信模块设计 | 第42-45页 |
4.4.1 通信模块的组成 | 第42-43页 |
4.4.2 通信协议 | 第43-44页 |
4.4.3 通信模块的工作流程 | 第44-45页 |
4.5 数据分析模块的设计 | 第45-48页 |
4.5.1 采样数据的解析 | 第45-46页 |
4.5.2 ELF文件解析 | 第46-48页 |
4.6 本章小结 | 第48-49页 |
第五章 性能分析工具的实现 | 第49-59页 |
5.1 数据采集模块的实现 | 第49-53页 |
5.1.1 中断采样的实现 | 第49-52页 |
5.1.2 数据压缩的实现 | 第52-53页 |
5.2 通信模块的实现 | 第53-55页 |
5.2.1 目标机端实现 | 第53-54页 |
5.2.2 宿主机端实现 | 第54-55页 |
5.3 性能分析模块的实现 | 第55-58页 |
5.3.1 原始数据解析的实现 | 第55-57页 |
5.3.2 热点函数性能分析的实现 | 第57-58页 |
5.4 本章小结 | 第58-59页 |
第六章 性能分析工具的测试 | 第59-69页 |
6.1 测试环境 | 第59-60页 |
6.1.1 目标机软硬件 | 第59-60页 |
6.1.2 宿主机软硬件 | 第60页 |
6.2 基本功能测试 | 第60-63页 |
6.2.1 Data Reciever | 第61页 |
6.2.2 Thread View | 第61-62页 |
6.2.3 Call Graph | 第62-63页 |
6.2.4 Function View | 第63页 |
6.3 有效性测试 | 第63-67页 |
6.3.1 矩阵运算测试 | 第63-65页 |
6.3.2 分支预测器性能测试 | 第65-67页 |
6.4 系统额外开销测试 | 第67-68页 |
6.5 本章小结 | 第68-69页 |
第七章 总结与展望 | 第69-71页 |
7.1 总结 | 第69页 |
7.2 展望 | 第69-71页 |
致谢 | 第71-73页 |
参考文献 | 第73-75页 |