
There have never been more ways to run your Java apps, with so many vendors releasing Java platforms. Most – like Oracle Java, Azul Zulu, and Amazon Corretto – are straight builds of OpenJDK, meant to behave the same.
But we have also seen the rise of a new category of high-performance java platforms which aim to deliver better performance and user experience while maintaining lower resource consumption and cloud costs.
Vendors like Azul, Oracle, and IBM have fueled high-performance Java platforms by fielding offerings in this space.
How to choose the right high-performance Java platform for you
Understand your organization’s business needs when choosing a high-performance Java platform. Are you looking to improve performance? Availability and reliability? Total cost of ownership?
Once you know what you want to get, see what Java behavior changes best support those goals. The various knobs you can turn fall into four categories:
- Code execution speed. How fast will your code run once it is fully warmed up?
.This metric drives everything from median response latency to container sizing and how many servers you need to handle your traffic.
- Startup and warmup. How fast are newly started servers able to take transactions? How quickly do they warm up code to run at full speed? This metric is critical when determining your autoscaling strategy, whether to go serverless or design your microservice architecture.
- Execution consistency. How reliable and consistent are your response latencies? Do you have acceptable speed on most of your transactions, but outrageous hiccups and jitters on a small but critical number of them? Are you meeting your service level agreements without overprovisioning or spending lots of developer time tuning your applications?
- Memory footprint. How many resources can you commit to each server? This metric affects container sizing, serverless and architecture choices, and more, and can have a major impact on your total cost of ownership.
Important things to think about: performance tuning and code execution
Remember that performance tuning is often a game of tradeoffs, so you need to decide what’s most important for you.
For example, Graal Native Image improves startup and warmup by sacrificing code execution speed and compatibility. In other words, your apps will start very quickly but won’t run as fast, and you won’t be able to run all your existing code without changes.
So, it’s a great choice for short-lived, green-field apps that run on serverless, but not a great choice on existing apps with lots of dependencies that run on bare metal or long-living containers.
Some high-performance Java platforms, especially Azul Platform Prime, can eliminate some of these tradeoffs by using external services to get the best of both worlds. In fact, both Azul Platform Prime and GraalVM EE deliver higher code execution speed at the cost of longer warmup. But Azul Platform Prime can recoup that warmup penalty using Optimizer Hub and ReadyNow features.
Potential constraints and Java versions
Finally, determine what your constraints are. The most important questions here are:
- What Java version are your applications running? Many high-performance Java features are only available on newer Java versions. Azul Platform Prime improves performance across all Java releases.
- How much can you change the code of your applications to drive better performance and cost? Many features of high-performance Java platforms require code changes and do not work with all the Java language specification. This is especially important if your code relies on third-party libraries that you cannot easily change. Azul Platform Prime doesn’t require code changes, and there is no re-architecture or changes in DevOps workflows needed.
How does this work in practice to solve real world business problems? Faster Java code improves application carrying capacity and reduces cloud waste.

About Azul Platform Prime
Azul Platform Prime provides superior speed, warmup, and consistency vs typical OpenJDK distributions. Prime also adds centralized services capabilities external to client JVMs for greater performance and operational efficiency.