The Falcon JIT Compiler for Zing
After nearly twenty years, Java has a new just-in-time (JIT) compiler, and it is only available in the Zing runtime for Java. Azul Systems built the Falcon JIT compiler to ensure that Java developers and Java-based businesses can extract maximum performance from today’s server hardware.
The Falcon JIT compiler is fully integrated with Azul’s pauseless garbage collection technology as well as our ReadyNow! technology, which solves Java’s warm-up problems in latency-sensitive applications.
LLVM — The Technology Behind Falcon
The Falcon JIT compiler is based on technology from LLVM, the popular compiler infrastructure project with active involvement from leading universities and dozens of corporate contributors including Adobe, Apple, Google, NVIDIA, and Intel.
Today LLVM is used in a variety of programming languages and frameworks outside Java and the JVM, including newer platforms like Swift and Rust as well as many others including C/C++, Objective-C, Swift, Clang, OpenCL, CUDA and many more.
LLVM is considered the state-of-the-art in compiler technology, and the LLVM community is continually incorporating new optimization techniques and support for new processor instruction sets and hardware platforms.
Falcon – Business Benefits
The performance advantages for Java workloads when running with Zing’s new Falcon JIT compiler have significant business benefits:
- Better application service level metrics: reduced latency, reduced timeouts, better consistency
- Better customer experience: reliably achieve customer expectations even under unpredictable load, improved customer satisfaction
- Lower operating costs: reduced memory footprint requirements, improved load carrying capacities on similarly sized instances in Cloud/AWS deployments
- Lower development costs: fewer engineering hours required to achieve desired performance, consistency and scale
Frequently asked questions about Falcon
Q: When is Zing shipping with Falcon?
A: Falcon has been shipping with Zing for several months. Effective with version 17.03, Falcon is the default JIT compiler for Zing, replacing the legacy C2 compiler.
Q: Is Falcon faster than C2?
Q: Is C2 still supported by Zing?
A: Yes, C2 can be used by specifying a flag at JVM startup.
Q: Do I need to recompile my existing application to use Falcon?
Q: Which versions of Java are supported by Falcon?
A: Falcon works with applications built using Java SE 7 and Java SE 8.
Q: Will Falcon support Java 9?
A: Yes, in a future release of Zing.
Q: How about a Zing block diagram showing Falcon?
A: Here you go
Looking for more information about Falcon?
- Read the Falcon press release
- Read Azul CTO Gil Tene’s blog post
- Also see Simon Ritter’s blog post
- View a recording of the Falcon Launch Webinar, entitled “Java at Speed: The technology inside Azul’s new Zing release”
- Phillip Reames, Sanjoy Das; “Practical Fully Relocating Garbage Collection in LLVM” Oct 28, 2014 slides
- Philip Reames, Sanjoy Das; “LLVM for a Managed Language — What we’ve learned” Oct 30, 2015 slides video
- Artur Pilipenko; “Expressing high level optimizations within LLVM” March 27, 2017 slides