Java Performance Tuning

Java(TM) - see bottom of page

|home |services |training |newsletter |tuning tips |tool reports |articles |resources |about us |site map |contact us |
Tools: | GC log analysers| Multi-tenancy tools| Books| SizeOf| Thread analysers| Heap dump analysers|

Our valued sponsors who help make this site possible
JProfiler: Get rid of your performance problems and memory leaks! 

Training online: Concurrency, Threading, GC, Advanced Java and more ... 

News November 2019

Get rid of your performance problems and memory leaks!

Modern Garbage Collection Tuning
Shows tuning flow chart for GC tuning

Java Performance Training Courses
COURSES AVAILABLE NOW. We can provide training courses to handle all your Java performance needs

Java Performance Tuning, 2nd ed
The classic and most comprehensive book on tuning Java

Java Performance Tuning Newsletter
Your source of Java performance news. Subscribe now!
Enter email:

Training online
Threading Essentials course

Get rid of your performance problems and memory leaks!

Back to newsletter 228 contents

Bye Bye CMS. JEP 363 (Remove the Concurrent Mark Sweep (CMS) Garbage Collector) has been applied in the draft Java 14, so there will no longer be the Concurrent Mark Sweep garbage collector available.

Though it was never the default collector, for a decade it's been the collector of choice for applications that needed good pause time handling (eg anything customer facing or latency sensitive). But it was always a massive pain to tune properly, with way too many tuning flags; even getting the tuning right left it fragile, needing re-tuning when the application was upgraded or the throughput pattern changed or increased; and critically it suffered from fragmentation that you desperately needed to avoid or you would get a huge long (many seconds) pause. My own advice for CMS was to do a basic level of tuning, determine the interval between defragmentation GCs, and take instances out of the cluster more frequently one at a time, do an explicit full GC, then put them back into the cluster.

So with CMS gone, what are your options from Java 14 on? Well as I pointed out in my September newsletter you still have 11 other collectors to choose amongst so you're not exactly lost for choice. A good percentage of applications can transfer to G1 and gain similar pause statistics to CMS. But a significant number will see an unacceptable degradation from switching to G1. These should try out the low pause collectors: ZGC, Shenandoah, metronome, gencon+concurrentScavenge, optavgpause. But do note, the lower the pause you need, the higher the memory and additional (non-application) CPU you need to provide.

Now on to this month's tips, tools, news, articles and talks. And of course the tips from this month's articles and talks, as ever are extracted into this month's tips page.

A note from this newsletter's sponsor

Get rid of your performance problems and memory leaks!


Java performance tuning related news.


Java performance tuning related tools.


Jack Shirazi

Back to newsletter 228 contents

Last Updated: 2023-08-28
Copyright © 2000-2023 All Rights Reserved.
All trademarks and registered trademarks appearing on are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
RSS Feed:
Trouble with this page? Please contact us