Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] Enhancement 231396: performance and memory usage

Hello all,

Now that 1.6.0 is out there and the hard work of moving to be based on
the Eclipse 1.6 compiler is done, we are looking at working on
performance and memory usage through a series of quite substantial
refactorings in the codebase.  I'm trying to track the work under:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=231396

Today I've committed the first serious change and this will benefit
users of iajc that are weaving into jar files or anyone binary weaving
into jars on the command line.  The change will be in todays dev
build.

For my own benchmark on this I wrote an aspect to weave before/after
advice into every public method and also before advice on a number on
the staticinitialization join point in a number of classes.

I then applied this aspect to the JDK rt.jar (as an example of a large
jar file).  This advised 121,431 join points.

I timed the application of this aspect to rt.jar over a number of runs
and averaged it:

1.6.0  takes ~ 58,000ms to do the weave
1.6.1 dev builds take ~ 31,500ms to do the weave

Now there are a few factors affecting these numbers - rt.jar is a
particularly large jar containing 13000 classes and this change I've
made really shines as the jar gets larger and larger.  So you may not
see a similarly huge performance boost for small jars, but hopefully
you will see some kind of benefit.

Any feedback appreciated on that bugzilla entry I linked above.

cheers,
Andy.


Back to the top