New Zing JVM Adds Falcon JIT Compiler
- By John K. Waters
- May 10, 2017
Java runtime solutions provider Azul Systems has just released Zing 17.03, the latest version of its Java Virtual Machine (JVM), with full support for its Falcon just-in-time (JIT) compiler.
The Falcon JIT compiler is based on technology from the LLVM Project, a popular open source effort that serves as an umbrella project for a collection of modular and reusable compiler and toolchain technologies. It has become the preferred back-end "engine" for many newer languages, including Swift and Rust. Dozens of universities and corporate contributors are involved with the project, including Adobe, Apple, Google, NVIDIA and Intel. Code in the LLVM project is licensed under the UIUC BSD-style license.
Zing, Azul's flagship product, is based on Oracle's HotSpot JVM, a core component of Java SE. It's a "no-pause" JVM designed to eliminate garbage collection (GC) pauses, a long-standing challenge for Java developers. This pauselessness, which Azul calls "generational pauseless garbage collection" (GPGC), enables Java app instances to scale dynamically and reliably. Azul has long targeted GC, which Azul CEO and co-founder Scott Sellers has called the Achilles heel of Java.
With the release of Zing 17.03, Falcon becomes the JVM's default JIT compiler, replacing the C2-based compiler from HotSpot. It is fully integrated with Zing's C4 concurrent garbage collector, which addresses that Achilles heel, and Azul's ReadyNow technology, which addresses developers' concerns about slow startups by starting from a cache filled with information from a prior run of an application.
"We've essentially replaced HotSpot's 15-plus-year-old dynamic compiler technology with this best-of-breed technology from the LLVM project," Sellers told ADTmag. "And this is technology supported by a large and growing community with lot of commercial backing, which enables what you might call long-term leverage. We didn't pick LLVM out of a hat."
In fact, Azul has been working on the integration of Falcon and Zing for more than three years, Sellers said. His company is the first to use LLVM technology in a production Java runtime. Along the way, the company made its own contributions to the project "that help Java and other managed runtimes more readily integrate the unique and modern compiler capabilities of LLVM," the company said in a statement.
"Compilers are really hard technologies," Sellers said. "They require a lot of engineering resources, and you just need to get a lot of things right, so they don't change that often," he said. "Remember: HotSpot C2 was introduced at JavaOne in 1997."
Azul is claiming that the Falcon JIT compiler enables a big jump in performance, in terms of what a typical Java runtime can deliver. How much the new compiler will improve performance depends on the application, Sellers allowed, but his company is citing a 10 percent bump over HotSpot on Cassandra benchmarks using Skylake-based servers, a 24 percent improvement running MonteCarlo Simulations, and a 10 percent improvement over Zing using C2.
By adopting LLVM for its next-generation JIT compiler, Azul is leveraging an innovative and dynamic global community that is continually upgrading performance across multiple languages and technologies," said 451 Research analyst John Abbott in a statement. "Bringing LLVM to the Java runtime will help enterprises drive additional value from their ongoing investments in Java-based applications and infrastructure."
John K. Waters is the editor in chief of a number of Converge360.com sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS. He can be reached at [email protected].