论文部分内容阅读
内存空间始终是计算机系统最重要的资源。有限的内存资源需要小心保存和适时回收。对内存空间最主要的耗费一般就是创建对象。当应用程序不再需要使用创建的对象时,就需要释放为对象分配的内存,回收资源。如何有效地管理动态内存,防止内存泄漏,直接影响着应用程序的性能。通常,应用程序使用垃圾收集机制进行自动内存管理,减轻程序员的工作负担,降低软件内存泄露发生概率,从而提高软件的质量。
一个良好的垃圾收集器应该在编译器或操作系统中实现。开发人员应该根据软件的整体需求来确定在应用程序中是否使用垃圾收集机制。当不能准确预测应用程序中资源生存期的时候,自动化内存管理就显得十分必要。当应用程序规模较小时,又可以完全使用显式内存管理。
本文以现有的内存管理策略和垃圾收集器为主要研究对象。在研究和分析领域相关的垃圾收集算法和垃圾收集技术的基础上,本文根据垃圾收集策略的评价标准,比较了各种垃圾收集策略的优缺点,结合面向对象的基础理论,最终设计并实现了一个具有良好扩展性的保守式垃圾收集器ACGC。
ACGC根据保守式垃圾收集机制的特征和BDW垃圾收集器的实现思想,使用内存池的相关技术实现垃圾收集器的内存分配模块,使用自适应标记一清除算法提高垃圾收集效率。测试结果表明,ACGC功能正确并且具有良好的运行效率。综述,对使用C++等保守式语言开发的大型软件而言,ACGC具有一定的理论价值和实用价值。