论文部分内容阅读
现代计算机系统,无论是操作系统还是编程语言、虚拟机等,都采用自动内存管理技术。自动内存管理,即垃圾收集,是指自动回收内存中无用对象的机制。除了采用更高性能的硬件,充分优化的软件设计来提高用户程序的性能,改进垃圾收集算法也是提高性能的重要手段。传统的半区复制收集器采用保守的空间预留策略,缺乏自适应性。本文围绕半区复制收集器,展开了如下工作:1.详细地研究了各种垃圾收集策略,分析了各种收集算法的特性,并列举了每种收集策略的不同实现形式的垃圾收集器,探讨了垃圾收集器的发展规律。2.系统地分析了Cheney节点复制算法和Lisp2标记缩并算法的原理、内存空间设计和优缺点。针对采用对称半区的传统节点复制收集器无法充分利用内存的缺陷,结合弱分代假设和程序运行的可预测性,提出了动态调整两个半区比例的非对称双空间复制算法。3.给出了非对称双空间复制收集器的内存空间设计,修改了节点复制算法、标记缩并算法,通过全新设计的空间调整模块将两个算法结合在一起。随后实现了非对称双空间收集器,设计了详细的实验方案对其进行了充分的测试,证明了它能够有效提高垃圾收集的效率。4.针对基于节点复制算法的收集器在存活量接近堆的一半出现严重性能衰退的缺陷,结合标记缩并收集器此时的优良性能,设计了模式切换模块,在非对称双空间复制收集器和标记缩并收集器的基础上实现了自动切换模式的非对称双空间混合收集器。同样地对它进行了各项测试,验证了其在高存活率情况下的性能优势。