(Albert van der Horst):

> I always thought that the real point of JIT was that it can take
> advantage of type information that is not available until runtime. If
> it can infer that something is an integer, just before entering a loop
> to be executed millions of times, that should be a big win, not?

JIT most generally refers to on-the-fly optimization of the code. In the
case of Java, the code to be executed is bytecode that is independent of
the CPU instruction set and thus needs to be interpreted. You could
perform the optimization before the execution and save the executable
binary, but the Java gods are reluctant to do that for ideological
reasons ("compile once, run everywhere").

Python code, too, is compiled into interpreted bytecode. Again, you
could compile it into machine code ahead of execution or perform the
compilation on the fly with JIT techniques. However, Python is so
ridiculously dynamic that such compilers have an extremely difficult
time making effective optimizations.


Reply via email to