Mladen Turk wrote:
The major problem is the way how the native OS abstraction layer is called. JNI is used as a single native interface from the ground up and didn't change much for all those years.
Almost all VMs have their own "proprietary" non-JNI native method interface that is much more efficient. E.g., JVCM has the "JCNI" which actually has zero overhead (this is possible because in JC both executing Java code and JCNI native code are are just compiled C code). On the other hand, optimizations (such as method inlining) involving native code are often difficult or impossible, so they still can have an indirect cost. -Archie __________________________________________________________________________ Archie Cobbs * CTO, Awarix * http://www.awarix.com