About Cloud Native Compiler
Cloud Native Compiler (CNC) is a component of Optimizer Hub that provides a server-side optimization solution that offloads JIT compilation to separate and dedicated resources. This approach provides more processing power to the JIT compilation, while freeing your client JVMs from the burden of doing JIT compilation locally.
JIT Optimization
Thanks to CNC, organizations can achieve faster, smarter, and more cost-effective application performance. This transforms the traditional limitations of on-JVM JIT compilation into strategic opportunities for performance gains, cost savings, and operational efficiency.
Enhanced Optimization Capabilities
CNC enables the use of advanced speculative optimizations that result in significantly faster application code execution. Offloading the JIT compilation process to an external optimizer, unlocks several key benefits:
-
Access to Better Compute Resources: Unlike traditional on-JVM JIT compilers, CNC has access to dedicated, scalable compute resources. This allows it to execute more sophisticated, aggressive optimizations that deliver higher performance outcomes.
-
Faster Optimization: Since the external compiler is not constrained by the application’s runtime environment, optimizations are applied more rapidly, enabling applications to achieve peak performance sooner.
Improved Application Performance from the Start
With CNC, applications experience a shorter warm-up period, leading to faster and more efficient execution right from the start.
-
Immediate Performance Gains: By offloading the JIT compilation to an external service, applications avoid the typical “slow-start” period caused by on-JVM compilation. Applications run closer to optimal performance right after launch.
-
Resource Efficiency: The application’s compute and memory resources only execute your business logic, leading to faster response times and more consistent performance during critical early phases of execution.
Optimized Resource Allocation and Cost Efficiency
CNC provides an opportunity to reduce wasteful resource allocation and optimize for efficiency:
-
Resource Cost Savings: Since JIT compilation happens on CNC, JVM instances can run with lower resource overhead, reducing operational and cloud infrastructure costs.
-
On-Demand Compiler Resources: The resources used by CNC for JIT compilation are provisioned only when needed, rather than being reserved for the entire lifecycle of a process. This ensures more efficient utilization of compute capacity.
Falcon JIT with CNC
Azul Zing Builds of OpenJDK replace OpenJDK’s C2 JIT compiler with the Falcon JIT compiler. The Falcon JIT compiler can run different levels of optimizations, and its upper tier of optimizations produces optimized code that can run significantly faster than code produced by the OpenJDK C2 compiler.
Using more aggressive optimization levels requires more resources, and when using JVM-local JIT compilers for optimization, resource tradeoffs can often lead to a choice of lowering optimization levels in favor of improved warmup times. Cloud Native Compiler eliminates these tradeoffs by removing JIT compilation work from individual JVMs, and shifting the work of the Falcon JIT compiler to a separate shared service. This shift of work and associated resources allows the Cloud Native Compiler to apply even the most aggressive Falcon JIT optimization levels without disrupting individual JVM behavior. The Cloud Native Compiler can bring to bear practically unlimited Falcon JIT compilation resources when a JVM needs them, and later scale those resources down when they are unused and unneeded. This results in JVMs that can consistently serve higher amounts of traffic in smaller footprint.