:rocket: Big news: Kotlin and Azul are teaming up ...
# announcements
a
🚀 Big news: Kotlin and Azul are teaming up to boost runtime performance for Kotlin apps! From bytecode to JVM optimizations, we’re joining forces to push performance further, and early benchmarks look very promising. 🔬 Learn more in the official blog post.
🎉 11
👍 11
👍🏾 2
🚀 34
n
Based on the blogpost the openjdk test was performed using G1 GC (default). If Azul is running on C4 wouldn’t the comparable GC in openjdk be Z GC?
👆 1
Also why was zing on java version 11 while openjdk on 21.
👆 1
y
I agree. The default GC for openjdk is machine-dependent, and definitely not comparable to C4. I think setting it explicitly is likely a good idea for such a test
m
great news 😃
n
I am also curious what the byte-code optimisations would look like at compiler level. Will the compiler output zing specific bytecode via some sort of target flag? Sounds like a bit problematic approach if true especially for libraries. So I am a bit confused with what the compiler bytecode optimisations involve.
s
I’m wondering whether this is only relevant for backend services running Azul Prime on Linux, or if Kotlin Desktop applications in general can benefit from using Azul over Temurin.
👀 1
7
t
i had the same question but for Android 😄
👀 1
a
Hey folks. Sorry for the delayed reply. That’s a good point about ZGC. As we’re just kicking off this exploration, we started with relatively simple benchmarks. In those initial tests, ZGC didn’t really show its strengths. Tail latency with OpenJDK’s default GC (G1) was higher than average latency, but nothing dramatic. So in the end, ZGC performed worse even with tail latency. Lower throughput and and higher avg. latency were expected.
thank you color 1
Speaking about different JDK versions (Zing 11 and OpenJDK 21) - yes, ideally, test should be on the same versions. I had here an assumption, that newer JDK versions generally don’t have performance regressions, only improvements, so it felt safe. At the same time, this difference addressed two other questions: 1. If we chose JDK 21 for both, people could ask if Zing performs equally well on older versions. As many people use older versions. 2. If we chose JDK 11, the question might be whether recent OpenJDK versions narrowed the performance gap with new optimizations. So, it seemed to me an appropriate compromise to have a slight difference in versions.
K 1
Will the compiler output zing specific bytecode via some sort of target flag?
No, we don’t plan to make different code gen. We will rather try to find places, that could be improved to fit common optimizations in JDK. If it will work only for Zing, that’s also ok.
if Kotlin Desktop applications in general can benefit from using Azul over Temurin.
That’s a good question, I have never tested it, and never seen such benchmarks. My assumption is that at least some Zing optimizations can benefit a Linux Desktop app, especially if it’s heavyweight. Whereas others are targeted on backend high-load. It’s worth noting that Zing is offered only for Linux.
👍 1
Here’s my answer about android