|
JNIPort 0.48 is now available in the Cincom Public Repository.
What's new:
-----------
Starting a Java VM with ghost classes and generating the initial set of
wrappers for Java classes is about four times faster than in version
0.45. That means 2 seconds on my laptop (Pentium M 1.73 GHz), which used
to be 8 seconds or more.
About half of the effect is due to not generating unneeded ghost
classes, the rest comes from the optimizations in 0.47. Generating ghost
classes after startup should be much faster as well (and no, I haven't
run any benchmarks yet).
Ghost class generation has been tuned. Generating source code does no
longer create unneeded wrapper classes as a side effect of using
reflection methods for determining parameter and field types.
What's next:
------------
I would like to avoid compiling every generated method from source code.
Many methods have the same source code and could be reused. JavaConnect
stores compiled code in a cache for reuse. I intend to adopt this
technique.
JNIPort also generates ghost wrapper classes for Java classes which
already have a static (predefined) wrapper class. As calling Java
methods in static wrapper classes is now almost as fast as in ghost
classes, this is no longer necessary. If this step is eliminated during
JVM startup, there will be no code generation at all in this phase,
meaning that startup can be about 10 times faster than now - something
like 0.2-0.3 seconds.
Enjoy!
Joachim Geidel
|