Java gets the (usual) dishonorable mention with Mozilla implying that
their tracing JIT compiler is superior to the JIT solution in Java.

Anybody with stronger experience than I with this stuff care to
comment?

*Start quote*

Traditional just-in-time compilers (like Sun’s Hotspot VM) are in
their design and structure very similar to static compilers (like
GCC). They observe which methods get executed frequently, and
translate the method into native machine code once a certaint
threshold has been reached. While such methods often contain
performance-critical parts (such as loops), they often also contain
slow paths and non-loopy code, which barely if at all contributes to
the runtime of the method. A whole-method compiler, however, has to
always analyze and translate the entire method, even if parts of it
are not particularly “compilation-worthy”.

Trace-based compilation takes a very different approach. We monitor
the interpretation of bytecode instruction by the virtual machine and
scan for frequently taken backwards branches, which are an indicator
for loops in the underlying program. Once we identify such a loop
start point, we follow the interpreter as it executes the program and
record the sequence of bytecode instructions that get executed along
the way. Since we start at a loop header, the interpreter will
eventually return to this entry point once it completed an iteration
through the loop. The resulting linear sequence of instructions is
what we call a trace.

*end quote*

Rest of the article here:

http://www.infoq.com/news/2008/08/tracemonkey
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to