To: Andy Thomas who wrote (8484 ) 6/16/1998 11:52:00 PM From: Bearded One Read Replies (2) | Respond to of 74651
Don't know who's engine is the fastest. I would have to assume Microsoft's is the fastest. I do know that Sun's JDK 1.1.6 contains Symantec's JIT, but I know of no head-to-head benchmarks. Also, the line between JITs and JVMs are getting blurry. I have heard nothing to indicate that HP's isn't compatible. Supposedly, Sun's Hotspot technology will leapfrog everyone. Definitions and Preface for the ungeeky (I've handwaved a bit): Java Source Code is what programmers write. It then gets compiled into "Java Byte Code." Just like C++ code gets compiled on Intel machines into "x86 object code" which can be run on Intel or Cyrix or AMD machines, this Java Byte code can be run by a certain set of machines. In most cases, the machines are actually themselves software programs known as "Java Virtual Machines," or JVM's. A JVM running on an Intel machine is written in, naturally, "x86 object code". Since there is an extra layer between the Chip and the Java Byte code, there is a potential major slowdown in execution speed. JIT: Just In Time Compiler-- takes Java byte code and converts it on the fly into the lower level code of the appropriate machine. It's a funny term since the JVM still stays around and links into the compiled code. Performance is usually much better than a JVM except that you get a minor hit because you have to do compilation-- for very short (in runtime) programs this minor hit can outweigh the speedup you get. There are compilers that turn Java into pure low level (such as x86) object code--IBM has a good one at alphaworks.ibm.com has a good one. Once this is done, there is no JVM present and it can run as fast as "normal" programs. Sun's latest JVM (JDK 1.1.6) has a built in JIT--so the definitions get even blurrier. Finally, Hotspot is a just in time compiler that only compiles portions that the system judges to be worth the effort-- it thus tries to mitigate the performance hit that compiling short (in runtime) routines gives you. There are other optimizations but I'm not an expert in this. Hope this helps.