[kaffe] 1.1.0 Interpreter Performance

Helmer Krämer hkraemer@freenet.de
Wed Jun 11 04:59:01 2003


On Wed, 11 Jun 2003 13:02:16 +0200
"Kevin D. Kissell" <kevink@mips.com> wrote:

> > > Our of curiousity, I configured the MIPS/Linux interpretive kaffe
> > > with --disable-debug, for speed, and ran the Embedded CaffeieneMark
> > > benchmark.  Comparing the result with an equivalent 1.0.7-based build,
> > > we can see that a bunch of things have improved a little, some things
> > > have stayed the same, and that something has slowed down dramatically
> > > in string handling which more than cancells all the other improvements.
> > > 
> > > [ test results skipped ]
> > 
> > If you've got some time to waste, it'd be nice if you could
> > compare the performance of 1.0.7's System.arraycopy() with
> > the performance of 1.1.0's System.arraycopy() (nothing serious,
> > just create a huge array and measure how long it takes to
> > copy that array).
> 
> Before going through the hassle of rebuilding/re-installing to
> try your experiment, I thought I'd look at the code.  Jeez.
> No wonder.  In 1.0.7, System.arraycopy() was a native
> method, defined in libraries/clib/native/System.c, which used
> the platform's memmov/memcpy functions.  Now
> it's a Java implementation.  Certainly easier to maintain
> that way, but it's unsurprising if it's more than 5 times slower.

It's almost the same thing with jit3 on i386 here. With a pure
java implementation of System.arraycopy() I get a String score
of 1693, with a native implementation I get a String score of 2899.
Given that System.arraycopy() is used all over the place, I'm
currently tempted to revert the pure java implementation. Any
thoughts?

Greetings,
Helmer