Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] AJDT memory usage

Hi,

I've upgraded to the latests snapshot, and enabled the option. Memory usage 
went down quite a bit, I'd say about 300M. The AjState object I described 
earlier is now down to 250M. The structureModel is almost completely gone 
(180K left), the typeMap is still the same. This change makes AJDT a little 
more usable, but it still takes a huge amount of memory compared to the JDT. 
With AJDT eclipse takes about 850M after a GC, where with the JDT eclipse only 
takes about 150M (as indicated by the heap status of eclipse).

I'll leave the option on and report if I find any problems.

Best regards,
Emond

On Friday 16 July 2010 18:23:37 Andy Clement wrote:
> The first set of smaller changes are now in the AJDT dev builds (for
> 3.5 and 3.6).  These changes will impact the number you mention below
> under 'structureModel'.  As described in
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=278496 you need to turn
> this option on (because, right now, it is experimental) by setting
> -Xset:minimalModel=true in the project properties.
> 
> If anyone on the list wants to try this out, please do, as depending
> on the positive/negative feedback I may make it the default.
> 
> The world typemap will only shrink when type demotion is implemented
> for compile time weaving.  This is a harder problem but I think I know
> a viable solution - it is just finding the time to implement it.
> 
> cheers,
> Andy
> 
> On 14 July 2010 00:12, Emond Papegaaij <emond.papegaaij@xxxxxxxxxx> wrote:
> > Hi,
> > 
> > Unfortunately, I can't mail the heap dump. It is way to big (1.6G) and
> > contains information I cannot share. However, all the memory consumption
> > is in the same area: the world. This is what the AjState contains for
> > the largest project:
> > AjState: 340M
> > AjState.world: 220M (excluding model)
> > AjState.world.typeMap: 220M
> > AjState.world.typeMap.tMap: 220M (5040 items)
> > AjState.structureModel: 90M (not clear where this memory is going)
> > 
> > The dominating objects are Strings (almost 3,500,000 instances, for all
> > projects). Is seems most of this is part of the types in tMap (for
> > example, 1,458,577 ConstantUtf8 instances, for all projects).
> > 
> > I tried adding -Xset:typeDemotion=true, but that doesn't help (I thought
> > that option was enabled by default since 1.6.7). I also disabled the
> > spring-aspect library, reducing the number of aspects to 1, which only
> > contains declare error statements. The memory usage stayed about the
> > same.
> > 
> > I hope this helps. If you need more information, please let me know.
> > 
> > Best regards,
> > Emond Papegaaij
> > 
> > On Tuesday 13 July 2010 19:14:37 Andy Clement wrote:
> >> Hi,
> >> 
> >> I've been exploring some memory shrinking options under
> >> https://bugs.eclipse.org/bugs/show_bug.cgi?id=278496 for the last few
> >> releases (specifically reducing memory used under AJDT).  If you are
> >> able to share heap dumps with me, I'll revisit that work and make some
> >> appropriate changes.  Would that be possible?  You can email the heap
> >> dumps to me rather than attaching them to bugzilla.  I would like to
> >> confirm precisely where the memory is being used to ensure the
> >> techniques I'm looking at under 278496 will help.
> >> 
> >> Andy
> >> 
> >> On 13 July 2010 02:53, Emond Papegaaij <emond.papegaaij@xxxxxxxxxx> 
wrote:
> >> > Hi,
> >> > 
> >> > We are thinking about introducing AspectJ into our project, so we
> >> > started by switching from the Java compiler to the AspectJ Builder to
> >> > make sure it is at least capable of building the project. It turns
> >> > out the AspectJ Builder is able to build the project, but its memory
> >> > usage is way to high to be usable. After a full rebuild, eclipse uses
> >> > almost 1.2GB, even after a full GC.
> >> > 
> >> > Inspection of a heap dump shows this memory is all taken by 42 AjState
> >> > (and referenced) objects (one for each AspectJ project in my
> >> > workspace). One even takes over 350M. Most of the memory usage seems
> >> > to be in the AspectJ world.
> >> > 
> >> > This is on a project with just over 600k lines of Java code, 1 aspect
> >> > (with a few declare error statements, no advice) and the
> >> > spring-aspects, mostly for the @Transactional aspect. This project
> >> > contains 42 modules, all projects in Eclipse. I'm using Eclipse 3.5.2
> >> > with the latest AJDT development build (2.1.1.e35x-20100712-1300)
> >> > with AspectJ
> >> > 1.6.10.20100712130000.
> >> > 
> >> > Is there any way we can reduce this memory usage? I tried disabling
> >> > incremental building and disabling the weaving service, but that
> >> > didn't help.
> >> > 
> >> > Best regards,
> >> > Emond Papegaaij
> >> > _______________________________________________
> >> > aspectj-users mailing list
> >> > aspectj-users@xxxxxxxxxxx
> >> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >> 
> >> _______________________________________________
> >> aspectj-users mailing list
> >> aspectj-users@xxxxxxxxxxx
> >> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > 
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users


Back to the top