Making what it says is the first major upgrade to a Java compiler in 20 years, Azul Systems today is launching Falcon, a new just-in-time compiler that leverages LLVM technology to improve performance of Java applications.
Scott Sellers, CEO of Azul, said the Falcon compiler used inside the company’s Zing 17.03 Java runtime replaces the C2 compiler developed in 1997 for the Hotspot JVM. “Now we have a dramatically better dynamic compiler in Zing 17.03,” he said. That enables the JVM to improve the application’s performance during runtime, he explained.
Zing is based on the same source code used to create Oracle Hotspot, but the benefits of leveraging LLVM in Falcon include having “a vast community constantly evolving” the technology, Sellers said. Among the community members are engineers from Intel, Google, NVIDIA and Sony Playstation, he said. Meanwhile, even though Oracle is a massive organization, Sellers said they are resource-constrained when it comes to Hotspot, and that Zing is now “on a much more rapid trajectory” for updates and improvements than Hotspot will be capable of doing, he added.
Of course, Azul had to make some changes within LLVM to add the hooks and things required to get it to work with a dynamic runtime. Sellers called that functionality “the result of our work over the last seven or eight years in the community.” Aside from the aforementioned benefits, Azul decided to base Falcon on LLVM because the C2 compiler technology was old and the code was brittle, Sellers said. “It was difficult to evolve C2 to take advantage of the latest and greatest research,” he said. “And the codebase was so brittle that it was difficult to make changes without breaking” the code beneath the compiler, Sellers said.
According to Azul, the Falcon JIT compiler is 3.5 times faster than HotSpot on crypton workers, and up to 19% faster than the Zing runtime with the C2 compiler.
In this Zing release, the C4 garbage collector is integrated with Falcon, eliminating garbage collection and timeouts as concerns, Sellers pointed out. And Zing’s ReadyNow! Technology – which Azul said reduces warm up time to run Java applications – is also integrated with Falcon. Now, Falcon’s profiles and decisions that are output when an application is run can be used in subsequent application runs, the company said in its announcement today.