The Core Concept: JDK 26‘s G1 Garbage Collector improvements reduce synchronization overhead when reaching global safe points, where all application threads must pause for garbage collection, directly improving latency and throughput for containerized Java workloads.
The Guest: Simon Ritter, Deputy CTO at Azul
The Bottom Line:
• Upgrading to the latest JDK version delivers free performance improvements without configuration tuning or code changes
Speaking with TFiR, Simon Ritter of Azul explained how JDK 26’s G1 Garbage Collector optimization delivers measurable performance improvements for containerized Java workloads by reducing the synchronization overhead required to reach global safe points during garbage collection cycles.
WHAT IS G1 GARBAGE COLLECTOR GLOBAL SAFE POINT OPTIMIZATION?
The G1 Garbage Collector is one of several garbage collection algorithms available in the JVM. A global safe point is a coordination point where all application threads reach a common state, allowing the garbage collector to safely pause execution and reclaim memory. In JDK 26, improvements reduce the synchronization time required to coordinate threads reaching this global safe point, minimizing application pause times.
“To get a little bit more detail about that, it’s where you have to get to what’s called a global safe point, and that’s where all threads are at a common place where you can then take action to perform the garbage collection. Sometimes that takes longer than necessary because of the synchronization that needs to happen between those threads. So what they’re actually doing in this JEP is reducing the amount of synchronization that’s necessary so you can reach that global safe point more quickly, and that then reduces the time that you have to wait for the application threads to do their work and reduces the overhead on that.”
Reducing global safe point synchronization overhead directly impacts multi-threaded Java applications by decreasing garbage collection pause times, which improves both latency and throughput for production workloads.
Free Performance Improvements from JDK Version Upgrades
Beyond the 10 major JDK Enhancement Proposals in JDK 26, OpenJDK engineers continuously integrate hundreds of smaller performance optimizations, bug fixes, and efficiency improvements into each release. The cumulative effect of these incremental changes delivers measurable performance gains for applications that upgrade to newer JDK versions.
“This is one of the good things about Java. If you’re looking to improve the performance of your applications, just keeping up to date with the latest version is always going to give you a free performance improvement. The OpenJDK engineers are always looking at ways to improve the efficiency of how the JVM works. Even though I’ve outlined 10 JEPs, there’s also a whole set of other changes that come from very small things that may be bugs reported or things that people have identified as ways to improve efficiency or performance. All those things collected together, once they’re delivered into the JDK, mean you get a bump in performance.”
This architectural approach to continuous optimization means that upgrading Java versions delivers performance benefits without requiring developers to modify application code or tune configuration parameters.
Broader Context: JDK 26 Adoption for CI/CD and Containerized Microservices
In the full TFiR interview, Simon Ritter explained why CI/CD pipelines and containerized deployment models make adopting non-LTS releases like JDK 26 practical for enterprise teams. Organizations already updating container images frequently as part of continuous delivery workflows can integrate JDK version upgrades into existing processes without additional operational overhead.
“If you’re talking about containers, you’re typically going to be doing a CI/CD pipeline for rolling those things out, and you may be doing fairly frequent updates to your container images and your application code or microservices. Using JDK 26 can become a practical way of doing things because you’re not too concerned about having to update on a regular basis. You could decide to use JDK 26, take advantage of the small improvements in performance, and then deliver that to your containerized images.”
For teams operating Kubernetes clusters or Docker-based microservices architectures, the performance gains from G1 Garbage Collector optimization, HTTP/3 API support, and hundreds of smaller JVM efficiency improvements justify adopting JDK 26 despite its non-LTS designation. The aggregated performance impact translates to reduced cloud infrastructure costs, improved application responsiveness, and better resource utilization across containerized Java deployments.
Watch the full TFiR interview with Simon Ritter here.





