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 -~----------~----~----~----~------~----~------~--~---
