JITs are blackboxes that can make it hard to reason about performance in production:
miniblog.
Related Posts
It's strange how AOT compilers usually have different modes for optimising time or space usage, but JITs rarely have modes like "prefer fast startup".
The vast majority of JITs seem to focus on runtime of hot code after warming up.
This comparison of OpenSmalltalkVM and TruffleSqueak is a really effective demonstration of JITs.
TruffleSqueak initially has a lower framerate, but eventually exceeds OpenSmalltalkVM. As soon as the GUI is used (at 3:30), the framerate drops again!
Implementing Execute-Only Memory in userland: https://www.tedunangst.com/flak/post/userland-xnr-jit (an elegant way of hardening JITs to ROP exploits!)