We have compiled ADB (AcapellaDB) to a native binary with Excelsior JET.
Everything just works. Startup and first query time decreased by 10 times, but runtime performance has not changed.
Excelsior JET is not a JIT, it is an AOT compiler.
I previously wanted to obfuscate the code for the box version — this is it.
Time of first SELECT request:
Oracle JVM (general java) — 500 ms
Excelsior JET (compiled to bin) — 50 ms
Lets look at SELECT timings and compare compiled and interpreted version:
Compiled version doesn’t use dynamic runtime information and application profile, but source not extractable and performance is predictably high. The chart shows, that at first the AOT version is faster, but over time the JIT outperforms the AOT.