I'm doing some initial performance comparisons of classpath 0.08 and classpath 0.09 on Jikes RVM (cvs head). I've found that the performance of _228_jack (one of the SPECjvm98 benchmarks) suffers a serve degradation on classpath 0.09. It is twice as slow (10 seconds vs 5 seconds on my machine with a production version of Jikes RVM cvs head) with the only difference being the version of classpath.
An initial investigation seems to point the finger at the changes in the classpath I/O layers between these two versions. In particular, the profiling data suggests a large increase in both direct and indirect costs of I/O due to the implementation of gnu_java_nio_channels_FileChannelImpl.get_native_fd which is doing 3 JNI calls per invocation, two of which are going to convert strings from C => Java causing allocation in the VM and driving up the GC rate (time spent in GC doubles looking at classpath 0.08 vs. classpath 0.09).
I think there is a relatively easy fix to this particular problem by computing and caching the fieldId as part of the init method. I'm willing to play with this and provide a patch if this does ease the performance degradation. But I did want to check to see if (1) anyone else has noted the problem and (2) if a fix is already being prepared.
thanks,
--dave
_______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath