Optimizations in a private nursery-based garbage collector

Optimizations in a private nursery-based garbage collector
复制标题

基于私人托儿所的垃圾收集器的优化

DOI:
--
复制
发表时间:
2010
期刊:
International Symposium on Mathematical Morphology and Its Application to Signal and Image Processing
影响因子:
--
通讯作者:
T. A. Anderson
T. A. Anderson
中科院分区:
--
文献类型:
--
作者:
T. A. Anderson

文献摘要

被引文献

相似文献

本文介绍了一个垃圾收集器,旨在使用永久的,私人的本地托儿所,并主要针对功能性语言。我们试图通过使线程不断重复其单个私人托儿所来最大化缓存命中率。这些私人托儿所的运作方式使它们可以独立于其他线程收集垃圾,从而产生低收集暂停时间。在线程本地收藏中生存的物体被移至成熟的一代,可以同时或以停止世界的方式收集。我们描述了几种优化(包括两个动态控制参数适应方案)与收集私人托儿所的垃圾以及与我们的并发收集器有关的优化,当语言提供可变性信息时,其中一些是可能的。我们测试了收集器针对六个基准测试,并在5-74%的范围内进行了单线程的性能提高。对于以前曾经是内存的一个并行基准,我们还看到可伸缩性增加了10倍(对于24个处理器)。
This paper describes a garbage collector designed around the use of permanent, private, thread-local nurseries and is principally oriented towards functional languages. We try to maximize the cache hit rate by having threads continually reuse their individual private nurseries. These private nurseries operate in such a way that they can be garbage collected independently of other threads, which creates low collection pause times. Objects which survive thread-local collections are moved to a mature generation that can be collected either concurrently or in a stop-the-world fashion. We describe several optimizations (including two dynamic control parameter adaptation schemes) related to garbage collecting the private nurseries and to our concurrent collector, some of which are made possible when the language provides mutability information. We tested our collector against six benchmarks and saw single-threaded performance improvements in the range of 5-74%. We also saw a 10x increase (for 24 processors) in scalability for one parallel benchmark that had previously been memory-bound.