|
|
|
Back to newsletter 276 contents
The number of JVM configuration options that you can change dynamically has always been very limited. You can see the (fairly short) list with java -XX:+PrintFlagsFinal -version | [grep|findstr] "manageable"
(grep
on Unix, findstr
on Windows).
Part of the reason is that the process data structure of the JVM is dramatically different depending on which GC algorithm is chosen (so it's hugely unlikely that the choice of GC algorithm will ever be dynamically alterable). Part of the reason is that it's much much easier programmatically to check a value at (lazy) initialization and assume that value is never subsequently changed asynchronously. If you have to assume a value can be changed at any time, you have the full overhead of concurrent programming considerations to work through, something people are very bad at. Immutable values and structures and objects are much more efficient to manage and to reason about. This is especially true for performance.
So we're unlikely to see that list ever grow significantly, even though some JVM options would be very useful to change dynamically. Now on to all the usual newsletter list of links, tips, tools, news and articles, and as usual I've extracted all the tips into this month's tips page
Java performance tuning related news
Java performance tuning related tools
Back to newsletter 276 contents