|
|
|
Back to newsletter 178 contents
Shortly after I published my reference article listing all the garbage collectors that are available for the Oracle JVM in Java 7, someone at Oracle took a look at my full list and said to themselves "why on earth are we supporting all those different options! Surely we don't need them all, and simplification means lower maintenance". And as a result, Oracle targeted removing some of these options from the JVM, resulting in the enhancement JEP 173 (see the news items below).
Rather than remove some options immediately, Oracle instead deprecated them in Java8. Three combinations are deprecated: Incremental CMS; DefNew + CMS; and ParNew + SerialOld.
So specifically, using any of the following options will produce a
warning from the Java 8 JVM on startup: "... is deprecated and will
likely be removed in a future release":
-Xincgc (Incremental CMS)
-XX:CMSIncrementalMode (Incremental CMS)
-XX:+UseParNewGC (ParNew + SerialOld)
-XX:+UseParNewGC -XX:-UseConcMarkSweepGC (ParNew + SerialOld)
-XX:-UseParNewGC -XX:+UseConcMarkSweepGC (DefNew + CMS)
In Java 9, these combinations will cause a startup error instead of the deprecated message, aborting JVM startup. Indeed Java 9 has more extensive command-line option validation so if you include any incorrect options it will error and abort on startup (eg the -XX:MaxPermSize flag will prevent the JVM starting as Java 9 has no perm space - in Java 8 that option is just ignored).
I've now updated the list of Oracle garbage collectors to include the Java 8 and Java 9 changes. Now on to all our usual sections: links to tools, articles, news, talks and as ever, all the extracted tips from all of this month's referenced articles .
Java performance tuning related news.
Java performance tuning related tools.
Back to newsletter 178 contents