Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Garbage collector behavior

Actually, memory issues I encounter do not appear at class-loading but at runtime... My statistics are done amongst N runs of our program, systematically discarding the first run to put JVM optims/weaving/class loading aside.

Could you imagine any reason why the memory management would be affected by the LTWeaver ?
Do you have any link describing the bytecode duplication you mentioned ?

Thanks a lot for your answers.

--
Mathieu

Ron Bodkin wrote:

Hi Mathieu,

I'm very aware of these issues. I'm working on a general framework for
tracking performance in application using AspectJ
(https://glassbox-inspector.dev.java.net/).  I have been working with Alex
Vasseur and Matthew Webster to reduce the memory and startup time overhead
of this. This, of course, builds on past work that Adrian Colyer led with
Andy Clement and Ron DiFrango if memory serves me right.

Anyhow, I believe that the next stage of reducing overhead is Matthew's
promising idea of using reflective proxy delegates for already loaded
classes instead of storing multiple copies of bytecode for classes. This is
most easy to implement with bootstrap-loaded classes (think rt.jar).
However, over time I think it will be important to have cacheing and to
allow sharing of class-definition bytecodes when a class is loaded.

I'm very interested in your statistics on the GC affects of LTW and want to
better understand where the extra memory is consumed.

-----Original Message-----

I'm implementing a framework to profile our program execution, that is, memory consumptions, durations...
I use aspectJ (LTW mode) to instrumentate my classes.

Here is my problem..
I got memory issues when using aspectJ, comparing to a mode where I instrumentate my classes directly in the code (aspectJ is completely removed from this mode). Using aspectJ, memory consumptions of my program are much higher than without using it (eg 120Mo > 70Mo). Also profiling garbage collections, it seems that the GC collects much more when aspectJ is off (eg 4.5s > 2.3s).

Do you have any clue for that to happen ?
thanx !




Back to the top