Question

I am giving a basic talk on garbage collection in Java, and the different algorithms used etc. My experience with GC has been only with the Hotspot JVM.

I was just wondering if there are any JVMs around that do not use a generational collection concept (i.e. Young, Old)? Just in case someone asks me this question!

Thanks.

Was it helpful?

Solution

There a lots of JVM implementations (see this page to have an idea). So yes, it is possible that some of them are not based on the Weak Generational Hypothesis. For instance, JVM such as JamaicaVM (hard real-time Java VM for embedded systems) could make other assumptions since they do not target the same applications than Oracle JVM does.

However, the most used implementations (Oracle JVM, IBM J9 and Azul Zing) are based on it.

Note that with G1 GC, Oracle JVM added a new type of collections : the generational-and-regional collections

Hope that helps !

OTHER TIPS

Java 1.0 and 1.1 used mark-sweep collectors.

Reference: http://en.wikipedia.org/wiki/Java_performance#Garbage_collection

I also understand that modern JVMs will fallback to a mark-sweep-compact collector in extreme situations; e.g. when you have configured CMS and it can't keep up.

The IBM JVM used variants of mark-sweep-compact by default (-Xgcpolicy:throughput and -Xgcpolicy:optavgpause) until Java 7. See: description of policies.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top