Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] {Spam?} Re: AJDT and memory

On Thursday 02 September 2010 18:31:05 Andy Clement wrote:
> Thanks for confirming that stackoverflow is fixed.
> 
> > I wait until Eclipse is finished building, force a few GCs, until memory
> > usage is stable and then make a heap dump. The heapdump shows about 700M
> > used by AjState objects. About 75% of this memory is taken by
> > world.typeMap.tMap. For the largest AjState, the expendableMap (I
> > suspect that this is where the demoted types move to) is very small in
> > size (only 700k), but still contains 5224 entries, according to the size
> > field. I don't know if this number really shows the number of entries in
> > the map, because the size() method on WeakHashMap first expunges stale
> > entries. The tMap has a size of 1424.
> 
> I'm still surprised there is so much memory being held onto.  I
> vaguely recall you were just using declare warning/error - or am I
> mistaken?  The typemap 'tMap' field should hold onto:
> - primitive type representations
> - Object
> - aspects
> - types affected by intertype declarations from aspects
> 
> and nothing else.  1424 does seem high as if you are using only
> declare warning that would suggest you have around 1415 aspects :)  So
> something else must be going on.

We indeed only have a single aspect with a few declare error statements. In 
the tMap I see many classes that are not affected by aspects (if they were, I 
should have seen a compile error). Is there any way I can see why these types 
are kept in the tMap?

Best regards,
Emond Papegaaij


Back to the top