有没有基于二空间Cheney算法的现代垃圾收集?

问题描述 投票:2回答:1

维基百科关于Cheney算法的文章

简而言之,我理解的两空间垃圾收集,每次使用一半的堆,当这一半堆满了,垃圾收集器就会把所有正在使用的对象复制到未使用的空间,第一个空间就变成了 "未使用"。时间成本与活对象的数量成比例。现在好像用的是三色法(维基百科说理论上是等价的)。

有没有什么语言或语言的实现,还能把内存分成连续的部分,而不是说,按使用方式划分内存?

garbage-collection programming-languages
1个回答
2
投票

这种情况极为常见。它通常被称为停止和复制收集器,而不是Cheney的算法,经常被用于混合垃圾收集器中,比如Java HotSpot中使用的垃圾收集器。在该垃圾收集器中,停止-复制收集器用于新的对象分配(因为大多数对象都会夭折),如果对象在足够的代数中存活下来,它们就会被推广到不同的内存池中,在那里使用更传统的标记-扫除收集器。

希望这能帮到你!

© www.soinside.com 2019 - 2024. All rights reserved.