문제

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.

도움이 되었습니까?

해결책

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 !

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top