论文摘要
作为J2ME的核心组件,KVM被广泛地应用于各种手持设备中,如智能手机、PDA等。这些设备有着共同的特点:使用电池作为主要能源。如何设计这些手持设备的硬件和软件,使其能够在有限的电能下运行时间更长、性能更好,是一个值得深入研究的课题。KVM在智能手机等手持设备上的移植和优化工作从未间断,专家和学者们纷纷从各个角度提出自己的观点和解决方案:垃圾回收、多线程、计时器等等。本文首先讨论了针对特定平台的KVM的移植过程;然后从如何节省KVM的电能消耗入手,以内存管理机制作为切入点,实现了KVM在内存管理机制上的优化,从而达到了节省电能的目的。本文研究了J2ME架构及其相关的技术、KVM技术、对象缓存技术以及垃圾回收技术;参考了KVM移植文档,实现了KVM向智能手机平台的移植,并在移植的过程中进行性能调优,同时给出实验数据作为依据。在实现KVM移植的基础之上,本文重点研究了KVM的内存管理和垃圾回收机制,结合Linux系统内核中Slab Layer的概念,在KVM中加入了对象缓存支持。实验证明,在加入了对象缓存的概念后,KVM整体性能有了一定的提高。本文完成的工作和创新点主要包括:实现了KVM向特定平台的移植,移植的过程中进行了性能调优;研究并分析了KVM的内存管理和垃圾回收机制,讨论了KVM的内存组织结构和垃圾回收算法的具体实现;研究并分析了Linux内核中Slab Layer的原理和实现机制;在KVM中加入对象缓存支持,并在实验的基础上验证了优化方案的可行性和正确性。
论文目录
摘要ABSTRACT第一章 绪论1.1 引言1.2 研究重点、研究方法及章节安排1.2.1 研究重点1.2.2 研究方法1.2.3 章节安排1.3 本章小节第二章 相关研究2.1 嵌入式Java 技术2.1.1 CLDC 概述2.1.1.1 CLDC 的目标2.1.1.2 CLDC 的整体需求2.1.1.3 CLDC 的硬件需求2.1.1.4 CLDC 的软件需求2.1.1.5 CLDC 的功能范围2.1.2 MIDP 概述2.2 KVM 技术2.2.1 KVM 概述2.2.2 KVM 执行流程2.3 对象缓存技术2.4 垃圾回收技术2.4.1 垃圾回收算法概述2.4.1.1 经典算法2.4.1.2 现代算法2.4.2 KVM 的垃圾回收算法2.5 本章小节第三章 KVM 的移植3.1 移植的目标平台3.2 KVM 参考实现的代码结构3.2.1 VmCommon3.2.2 VmExtra3.2.3 其他目录3.3 KVM 移植的具体实现3.3.1 编译器选项及宏定义3.3.1.1 编译器常规选项3.3.1.2 系统配置常规选项3.3.1.3 内存分配选项3.3.1.4 垃圾回收选项3.3.1.5 解释器执行选项3.3.2 相关文件及函数md.h'>3.3.2.1 machinemd.hmd.c'>3.3.2.2 runtimemd.c3.3.2.3 main.c3.3.2.4 基本C 函数库支持3.4 本章小节第四章 KVM 的内存管理和垃圾回收机制4.1 Java 类和对象的内部表示4.1.1 Java 类的内部表示4.1.1.1 Java 类的类型4.1.1.2 Java 类加载的状态迁移4.1.1.3 Java 类的内部表示结构4.1.2 Java 对象的内部表示4.1.2.1 Java 对象的类型4.1.2.2 Java 对象的内部表示结构4.1.2.3 Java 对象的内部存储4.2 KVM 的内存管理机制4.2.1 Heap Space 的结构4.2.2 KVM 启动过程和内存分配4.2.3 栈空间结构4.3 KVM 的垃圾回收机制4.3.1 垃圾回收算法4.3.2 存在的问题与可能的解决方案4.4 本章小节第五章 KVM 的内存管理优化5.1 Slab Layer 技术5.1.1 Slab Layer 技术概论5.1.2 Linux 内核中Slab Layer 实现的分析5.2 内存管理优化的实现5.2.1 Slab Layer 模块的实现5.2.2 缓存模块的实现5.2.3 slab 模块的实现5.3 测试与分析5.3.1 Fibonacci 数列计算5.3.2 线程创建5.3.3 多类创建5.3.4 测试总结5.4 本章小节第六章 总结与展望6.1 关键性问题6.2 主要结论6.3 研究展望参考文献附录A 核心实现代码致谢参与课题及已发表论文
相关论文文献
标签:嵌入式论文; 手持设备论文; 移植论文; 对象缓存论文; 垃圾回收论文;