I am struggling to understand and get more details on the steps involved in CMS tenured collection cycles.
- Initial Mark
- Concurrent Mark
- Concurrent pre-clean
- Re-mark
- Concurrent Sweep
- Concurrent Reset
These steps are explained in lot of places in very short. But if I have to describe them in a class with diagrams and psuedo-examples where can I get that information from?
PS - I have searched extensively on Google, it throws up with a lot of textual stuff and jargon which I understand. But I am looking for a more animated explanation so that I can teach my audience.
These are some of the links which are popular, the 3rd one was very promising but it failed to explain the CMS in particular
- http://www.infoq.com/articles/Java_Garbage_Collection_Distilled
- http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
- http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/
Dear all, thanks for commenting and pointing me to some resources. I have tried to create a visual representation of the CMS steps, can you please let me know if this matches your understanding ?
Also I seem to be missing the Compacting step, which step does it belong to ?
Answer : Ok so compacting is not handled by CMS, instead it is delegated to full GC.