[log in to unmask] wrote: > > Essentially any criticism of Java's performance must be aimed at the JVM. > Ultimately, as long as Java runs on the JVM, it is *never* going to be as quick > as a compiled-to-native-code language. I don't agree with this since the latest JVMs essentially compile to native code at runtime anyway. There are a number of obstacles to good Java performance. The first is that the language design only allows classes, the only form of abstraction provided, to be allocated on the heap. Sun's JVM has a very fast allocator. I have found Java code will give "native" code a run for its money if both are doing similar amounts of heap allocation. Another bottleneck I have uncovered with Java is the inability to turn off run time checks. This is noticeable with "generic" collection classes - when casting an Object back to its true type a runtime check is performed. In some cases I have gained massive performance improvements by replacing a class in java.util with my own class specific version. One reason for using Java is that one can often get a program going in less time than with C/C++. This is also true of Ada, of course, but most people don't want to know it. Cheers Geoff