是否有任何JVM不使用分代垃圾收集

时间:2013-05-30 16:24:17

标签: java garbage-collection jvm jvm-hotspot

我正在基本讨论Java中的垃圾收集,以及使用的不同算法等。我对GC的体验只适用于Hotspot JVM。

我只是想知道周围是否有任何JVM不使用世代集合概念(即Young,Old)?以防万一有人问我这个问题!

感谢。

3 个答案:

答案 0 :(得分:3)

有很多JVM实现(请参阅this page以获得一个想法)。所以是的,有些可能不是基于Weak Generational Hypothesis。例如,诸如JamaicaVM(用于嵌入式系统的硬实时Java VM)之类的JVM可以做出其他假设,因为它们不是针对与Oracle JVM相同的应用程序。

但是,最常用的实现(Oracle JVM,IBM J9和Azul Zing)都基于它。

请注意,使用G1 GC,Oracle JVM添加了一种新类型的集合:代际和区域集合

希望有所帮助!

答案 1 :(得分:1)

Java 1.0和1.1使用了标记扫描收集器。

参考:http://en.wikipedia.org/wiki/Java_performance#Garbage_collection

我也理解现代JVM在极端情况下会回落到标记扫描紧凑的收集器;例如当您配置了CMS并且无法跟上时。

答案 2 :(得分:1)

IBM JVM默认使用mark-sweep-compact变体(-Xgcpolicy:throughput和-Xgcpolicy:optavgpause)直到Java 7.请参阅:description of policies