I just read that Android has a 450% performance improvement because it added a JIT compiler, I know what JIT is, but I don’t really understand why is it faster than normal compiled code? or what’s the difference with the older approach from the Android platform (the Java like run compiled bytecode).
Thanks!
EDIT: This is hugely interesting, thanks!, I wish I could pick every answer as correct 🙂
First a disclaimer, I’m not at all familiar with Android. Anyway…
There are two applications of JIT compilation that I am familiar with. One is to convert from byte-codes into the actual machine instructions. The second is Superoptimisation.
JIT bytecode compilation speeds things up because the bytecodes are only interpeted once, instead of each time it is executed. This is probably the sort of optimisation you are seeing.
JIT superoptimsation, which searches for the truly optimal set of instructions to implement a programs logic, is a little more esoteric. It’s probably not what your talking about, though I have read reports of 100% – 200% speed increases as a result.