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 <[email protected]> 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 <[email protected]> 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 > >> > [email protected] > >> > https://dev.eclipse.org/mailman/listinfo/aspectj-users > >> > >> _______________________________________________ > >> aspectj-users mailing list > >> [email protected] > >> https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > > _______________________________________________ > > aspectj-users mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
