Yeah Firefox 3.1 JavaScript performance is going to be ridiculously
fast. There's a white paper on the technique here, surprisingly (and
like JavaScript itself) derived from the Java world:
http://www.usenix.org/events/vee06/full_papers/p144-gal.pdf

It makes you wonder about whether this has parallels to what google is
doing with their Dalvik engine (which also sought a better compilation-
price/performance ratio) and whether this wouldn't make good sense as
a default strategy for Java RIA apps (applet, JWS, JavaFX) to try and
make up for the current overhead.

/Casper


On Aug 31, 12:44 pm, sherod <[EMAIL PROTECTED]> wrote:
> 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