Die heilige GraalVM
Vor einigen Jahren habe ich schon einmal mit GraalVM experimentiert. Damals
bin ich relativ schnell zu dem Entschluss gekommen, dass GraalVM für meine
Anwendungszwecke zu langsam ist. Ich hatte damals auch eine nette
Unterhaltung mit einem der Entwickler.
Geschwindigkeit war aber nicht der einzige Grund, wieso ich GraalVM
skeptisch gegenüber stand. Auch die Tatsache, dass es sich in diversen
Situationen anders verhält. Ich teste ja wegen extrem langer Kompilierzeiten
von GraalVM immer noch mit Hotspot, um dann am Ende festzustellen, dass sich
die GraalVM-Variante anders verhält. Leider fällt das schon bei relativ
einfachen Dingen auf.
Jetzt, einige Jahre später, wollte ich es mal wieder ausprobieren. Ich will
nicht in die Details gehen, aber es ist immer noch "inkompatibel". Die
Performance hat sich gebessert, ist aber nicht bemerkenswert schneller,
manchmal sogar immer noch langsamer (Benchmarks).
Und schade ist, dass die gute Performance mit Geld erkauft werden muss. Mit
GraalVM CE schaut man in die Röhre. Man braucht GraalVM EE. Auch ein Grund,
wieso mich GraalVM schon damals wenig interessierte.
Und natürlich die Tatsache, dass quasi keine bestehende Anwendung kompatibel
ist :D. Und selbst, wenn ich für GraalVM optimiere, bei einem neuen Projekt
zum Beispiel, bemerke ich, dass Dinge am Ende anders funktionieren
(Kompatibilität).
Aber ich verstehe natürlich, dass GraalVM für Cloudanwendungen nützlich sein
kann. Schnellerer Start, weniger Ram für die "Runtime" etc...
Wobei, Payara startet in weniger als 4 Sekunden. Und dann braucht die
eigentliche Webanwendung ein Vielfaches, um zu starten. Und das bisschen Ram
vom Payara und der Hotspot VM...weiß nicht. Die eigentliche Anwendung
schnappt sich dann mehrere GigaByte, aber gut, wenn man in Microservices
denkt, dann summiert sich die Ramnutzung schnell, nur für die Runtime.
Wie auch immer, GraalVM ist nicht für mich, noch nicht :).