Java Performance Tuning
Java(TM) - see bottom of page
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 August 2026
|
JProfiler
|
|
Get rid of your performance problems and memory leaks!
|
|
JProfiler
|
|
Get rid of your performance problems and memory leaks!
|
|
|
Back to newsletter 309 contents
As usual before a Java release, I'm listing all the new performance features in the upcoming release, this time for Java 27 (I have done this every 6 months, prior to each new release, you can track back to the previous February and August newsletters if you want to see what's new performance-wise in any particular release). In each of these pre-release newsletters, I give the new features, the performance benefits from each feature, and how to use the feature. If you want to see the full list of performance features for any version, they are conveniently listed together in my page showing all the performance changes in each release of the JVM since Java/JDK/JVM 10.
There aren't any standout performance features in this release. Compact Object Headers becomes "on" by default (it's available in Java 25 definitely worth trying with -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders), there are performance improvements to some authentication and cryptographic tools, and various other small improvements. One useful improvement is VM.info now reports open file descriptors, which should help diagnose edge case performance issues related to too many open file descriptors. And definitely of note is the change to G1 as default even for 1 CPU and small heap machines and containers. If you were previously relying on the default efficient Serial GC for these configurations, you may need to set GC explicitly after testing whether or not G1 is now better for them.
Java 27 is a non-LTS release, so will only be supported for 6 months. Now on to the details of those Java 27 changes, including the options you have available to use them. And of course the tips from this month's articles, as ever are extracted into this month's tips page.
A note from this newsletter's sponsor
JProfiler
Get rid of your performance problems and memory leaks!
News
Java performance tuning related news
- JEP-523: G1 becomes the default garbage collector in all environments. Even with 1 CPU and small heaps which were previously serial - the claim is that in JVM 27 G1 is as good as serial for these
- JEP-534: Compact Object Headers will be on by default. You can disable it by running with -XX:-UseCompactObjectHeaders
- JDK-8384353: Significant performance gains in ML-KEM and ML-DSA algorithms
- JDK-8378893: Significant performance gains in X25519 key agreement and Ed25519 signature algorithms
- JDK-8359706: VM.info and hs_err_pid Logs Now Report Current Open File Descriptors
- JDK-8227106: Rename -XX:InitiatingHeapOccupancyPercent to -XX:G1IHOP
- JDK-8382740: JFR Event jdk.OldObjectSample Disabled for Generational ZGC
- JDK-8381002: JSON format thread dump now generates thread identifiers, thread counts, and the process identifier as numbers
- JDK-8238686: Change the Default Values of MinHeapFreeRatio and MaxHeapFreeRatio for G1
- JDK-8369736: New Management Interface for AOT Cache Creation
- JEP-537: Vector API (Twelfth Incubator). Vector computations that reliably compile at runtime to optimal vector hardware instructions. Useful for ML, GenAI, image processing, scientific processing, massive financial calculations, etc
- JEP-533: Structured Concurrency (Seventh Preview). Simplify concurrent programming by grouping related tasks running in different threads
- JEP-532: Primitive types in patterns, instanceof, and switch (Fifth Preview). Unlikely to provide any significant performance improvement (fair enough as that's not the motivation)
- JEP-531: Lazy Constants (Third Preview). An API for lazy constants, objects that hold unmodifiable data. Treated as constants by the JVM, enabling the same performance optimizations that are available by declaring a field final
Tools
Java performance tuning related tools
Articles
Jack Shirazi
Back to newsletter 309 contents
Last Updated: 2026-09-28
Copyright © 2000-2026 Fasterj.com. All Rights Reserved.
All trademarks and registered trademarks appearing on JavaPerformanceTuning.com are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. JavaPerformanceTuning.com is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
URL: http://www.JavaPerformanceTuning.com/news/news309.shtml
RSS Feed: http://www.JavaPerformanceTuning.com/newsletters.rss
Trouble with this page? Please contact us