In my testing, Graal native images can speed up start time and lower memory usage, but they are slower for long-running processes since they don’t get to benefit from an optimizing JIT compiler. So they’re ideal for command line tools, for example. For a long running server like Minecraft, I suspect the JIT optimization ends up helping a great deal down the road. At the cost of running the JVM, of course.
It would be interesting to do a comparative analysis of profiles from the NI version and the HotSpot JIT dumps to see where the JIT is actually being applied over time to a long running server process. And it might be possible to rework the high level code so that the AOT version has many of the same properties as the JITed version.
I am aware that the JIT can do things that are non-representable in the high level bytecode.
Working on the semantic analysis and JIT compilation for jank. Also putting out a new Compiler Spotlight post on Gwion. Probably also finishing Mistborn: Shadows of Self and moving onto the final book in the series.