Is there a difference between the JVM distributed as part of GraalVM and other distributions?
Yes, the compiler is different, more optimizations
huh, I did not know that. You mean the JIT compiler? Should it be considered experimental?
No, GraalVM is supported as part of the Java SE subscription even
They have LTS releases as well
Somewhat tangentially related to graalvm, but has anyone heard of a helper that would kick up the native-image binary, and immediately after that start up the JVM version, and switch to that? Doing it in place would require support in graalvm itself, but perhaps even on http level (assuming that there are many small requests, not just one huge one)? You know, eating and having the cake and so on…
I guess Kubernetes could handle this for me, but I was thinking about making a single container that could do this internally, without depending on any external orchestration
How would you deal with port bindings? Seems like you'd have to use a container You'll also need some time to warm the jit up
If I'd have to start from scratch, I guess I would make a small proxy that has the external port open, it then starts first the native image and starts forwarding to that, and then the JVM and starts forwarding there instead
Pragmatically I wouldn't really be making that, it's not that much of a cost to just keep a long running JVM instance on all the time, and scale that up when load increases, instead of scaling all the way down to zero
Ugh, looks like Clojure running on Truffle is super slow. Startup is 10× and trying to run the test dataset actually froze the computer, before I had time to react to memory running out
@tomi.hukkalainen_slac What exactly did you do to run Clojure on Truffle? Did you make a Truffle interpreter for Clojure?
Just gu install espresso
and java -truffle
on the jar file
This is very much expected. espresso is a truffle interpreter that interprets bytecode.
It is not expected to be faster than executing bytecode directly.