The measured cost of conservative garbage collection

The measured cost of conservative garbage collection
复制标题

保守垃圾收集的测量成本

DOI:
10.1002/spe.4380230704
复制
发表时间:
1993
期刊:
Software: Practice and Experience
影响因子:
--
通讯作者:
B. Zorn
B. Zorn
中科院分区:
--
文献类型:
--
作者:
B. Zorn

文献摘要

被引文献

相似文献

由于动态内存管理是一大类计算机程序的重要组成部分,用于动态内存管理的高性能算法已经并将继续受到相当大的关注。经验表明,对于许多程序来说,动态存储分配是如此重要,以至于程序员不得不编写和使用自己的特定于域的分配器,以避免系统库的开销。作为显式存储管理技术的替代方案,保守垃圾收集已被建议作为C程序中动态存储管理的重要算法。在本文中,我评估了不同的动态存储管理算法的成本,包括特定于域的分配器,广泛使用的通用分配器,以及公开可用的保守垃圾收集算法。令人惊讶的是,我发现程序员的增强通常对程序性能几乎没有影响。我还发现,保守垃圾收集的真正成本不是CPU开销,而是算法的内存系统开销。我的结论是,保守的垃圾收集是一个有前途的替代显式存储管理和保守收集的性能很可能在未来得到改善。C程序员现在应该认真考虑使用保守的垃圾收集,而不是在他们编写的程序中显式调用free。
Because dynamic memory management is an important part of a large class of computer programs, high‐performance algorithms for dynamic memory management have been, and will continue to be, of considerable interest. Experience indicates that for many programs, dynamic storage allocation is so important that programmers feel compelled to write and use their own domain‐specific allocators to avoid the overhead of system libraries. As an alternative to explicit storage management techniques, conservative garbage collection has been suggested as an important algorithm for dynamic storage management in C programs. In this paper, I evaluate the costs of different dynamic storage management algorithms, including domain‐specific allocators, widely‐used general‐purpose allocators, and a publicly available conservative garbage collection algorithm. Surprisingly, I find that programmer enhancements often have little effect on program performance. I also find that the true cost of conservative garbage collection is not the CPU overhead, but the memory system overhead of the algorithm. I conclude that conservative garbage collection is a promising alternative to explicit storage management and that the performance of conservative collection is likely to improve in the future. C programmers should now seriously consider using conservative garbage collection instead of explicitly calling free in programs they write.