Hacker News new | ask | show | jobs
by mgaudet 1648 days ago
Interesting. OpenJ9 has something similar in preview: https://blog.openj9.org/tag/jitserver/
1 comments

So I thought this whole thing was bullshit, then I read the blogpost from OpenJ9

I changed my mind, this image is really what they ought to be showing. It gets the point across:

https://i0.wp.com/blog.openj9.org/wp-content/uploads/2021/09...

What you're looking at is allocation of multiple apps inside of nodes in a cluster. With a JIT Server in each node, the memory required for each instance of the app is reduced, such that the effect is more instances can be fit in the same node size than before.

It reminds me of "bonuses" on equipment in RPGs. You lose 1 equipment slot to have it taken up by the item, but in return the rest of your equipment gets a bonus that more than makes up for the slot you can't use now.

I suppose ahead-of-time compiling everything so there is no compiler in any application node is a technique that is still some years away.
The article addresses this actually. For a language like Java, the jit is the source of a ton of it's performance.

Think of it more like continuous PGO, but the delta perf improvement is much higher.

The problem is that requires a closed world approach, or constrained usage of reflection.

Yes there have been AOT compilers since around 2000, however you will notice that they target specific deployment cases, and also offer JIT caches in alternative.

Actually that is also how Android rebooted their AOT efforts in version 7.

You can see it in GraalVM and native image as well.