The Renaissance Suite is an increasingly popular Java benchmark and one of the many benchmarks that Azul uses internally to measure performance of Azul Platform Prime from release to release and against OpenJDK. In this blog, we will look at how we run Renaissance and how Azul Platform Prime performs against OpenJDK.
Benchmark Methodology
We ran Renaissance on the following machine:
- Intel(R) Xeon(R) CPU E3-1220 v5 @ 3.00GHz
- 4 Cores
- SSD hard drive
- Hyperthreading disabled
- Turbo Boost disabled
We tested these JDK versions:
- Azul Platform Prime: Azul Zing Builds of OpenJDK 21.07
- OpenJDK: Azul Zulu Builds of OpenJDK 11.0.11
We gave the JVMs 12GB of heap. To ensure that both JVMs are sufficiently warmed up, we run each benchmark inside the Renaissance Suite for at least 700 repetitions. The value in our results is the best value of the ten last repetitions. The Detailed Run Instructions section shows the exact commands we used for running each benchmark.
If you are trying this at home, make sure you run each benchmark for 700 repetitions. Renaissance benchmark results are unstable at low repetition counts and different benchmarks in the suite take different amounts of time to warm up properly.
Result: Azul Platform Prime Outperforms OpenJDK by 37%
Taking the geomean of all benchmark scores, Azul Platform Prime performs 37% better than OpenJDK on the entire Renaissance Suite. Individual benchmark scores are listed below.
Best run time for one repetition (ms – lower is better)
Benchmark | Azul Platform Prime | OpenJDK | Ratio |
akka-uct | 10549.498 | 8028.826 | -23.89% |
naive-bayes | 328.679 | 306.087 | -6.87% |
philosophers | 1538 | 1537 | -0.07% |
fj-kmeans | 3599.683 | 3711.731 | 3.11% |
reactors | 11545.391 | 11927.224 | 3.31% |
movie-lens | 6318.39 | 6812.419 | 7.82% |
finagle-http | 1196.808 | 1388.692 | 16.03% |
dotty | 1753.385 | 2047.935 | 16.80% |
page-rank | 2537.716 | 2968.951 | 16.99% |
future-genetic | 1501.889 | 1819.681 | 21.16% |
scala-stm-bench7 | 782.727 | 951.462 | 21.56% |
finagle-chirper | 1176.152 | 1482.27 | 26.03% |
dec-tree | 1066.93 | 1348.837 | 26.42% |
scala-kmeans | 197.251 | 264.682 | 34.19% |
db-shootout | 3342.461 | 4609.739 | 37.92% |
rx-scrabble | 180.222 | 265.868 | 47.52% |
als | 1813.85 | 2799.993 | 54.37% |
chi-square | 902.21 | 1402.555 | 55.46% |
gauss-mix | 670.127 | 1042.118 | 55.51% |
scrabble | 270.147 | 423.272 | 56.68% |
log-regression | 1294.146 | 2155.792 | 66.58% |
par-mnemonics | 1623.963 | 3848.12 | 136.96% |
mnemonics | 2075.104 | 4972.762 | 139.64% |
scala-doku | 1883.264 | 4699.728 | 149.55% |
neo4j-analytics | 3514.991 | 9190.704 | 161.47% |
Detailed Run Instructions
Here are the exact commands we used for each of the benchmarks. For each tests we run the following command:
$JAVA_HOME/bin/java -Xms12g -Xmx12g -jar $RENAISSANCE_HOME/renaissance-0.11.0.jar -r 700 all
Try It Yourself
Azul Platform Prime Stream Builds are free for testing and evaluation. Try it yourself.