Hi, I just had a look and the system properties (can be easier than managing eclipse settings) are:
aspectj.typeDemotion=true aspectj.minimalModel=true but it sounds like you are getting them through as regular project settings anyway. > "ClassFileChangeChecking: no reported changes in that state". Somtimes it is > alot of Messages i get eg. when soemthing changed I can't immediately see how those messages related to the two flag settings. Let's ignore them for now. > The only difference that i see is the time when eclipse crashes with settings > off it crashes earlier. That sounds like what I might expect - it takes longer to run out of memory. > What do you mean by alot of files? I actually don't know the exact number of > hits but i would guess somewhere around 1000. Can't figure it out exactly > since the build doesn't finish. I was more thinking as a percentage. If you are hitting 99% of the files from the aspects then 'minimalModel' won't do much since it only discards model entries for types that are not hit by aspects. Your 1000 doesn't sound a lot given the size of your project, so I'd hope that setting would at least do something. We can try something, but I'm not sure if it has been tried with such large projects before. On the AJDT event trace view is a button to dump the structure models for all the projects. It is the two boxes with arrows going between them. If you, for example, closed all but 1 or two of the base projects, you could click that dump button after builds with and without using the minimalModel setting. In the latter case it should be a lot smaller - if we can observe rogue entries in there (types not affected by aspects that haven't been discarded), I can further improve the minimal model code. I raised https://bugs.eclipse.org/bugs/show_bug.cgi?id=335619 to track this issue for you (cc yourself on it) - maybe we can exchange findings on there, or if you want to email me pieces of the output (the model) we could do that. > What i was wondering, now i have alwas two dependencies between projects, one > of type src and one of type lib (the bin folder of the same project). Does > this lead to any problems? > Example: > > Project2: .classpath > ... > <classpathentry exported="true" kind="src" path="/Project1"/> > <classpathentry exported="true" kind="lib" path="/Project1/bin/"> > <attributes> > <attribute name="org.eclipse.ajdt.aspectpath" > value="org.eclipse.ajdt.aspectpath"/> > </attributes> > </classpathentry> That should be fine. If you were using inpath I'd be more concerned. > Just tried to build it again with -Xset:minimalModel=true,typeDemotion=true > set in the global compiler preferences. > And eclipse started with -consolelog. > On the console i get: "typeDemotion=true: type demotion switched ON" per > project that is being build. that sounds right, there isn't a message for minimalModel becoming true right now. We can actually see into what type demotion is doing if you also turn on typeDemotionDebug=true - I believe that output will go to the consolelog. Type demotion (unlike minimal model) is a bit of a memory<>performance trade off - activating it causes stuff to be more eagerly discarded, hoping that it isn't required later, if it is required then there is a cost to pull it back into memory. Minimal Model should just be a straight improvement in memory consumption. > > Project1: > 21:1:22 Types affected during build = 899 > 21:1:23 Timer event: 33609ms: Total time spent in AJBuilder.build() > 21:1:24 Created 71 markers in 899 files > > Project2: > 21:3:19 Types affected during build = 1926 > 21:3:20 Timer event: 116984ms: Total time spent in AJBuilder.build() > 21:3:22 Created 198 markers in 1926 files > > Project3: > 21:17:7 Types affected during build = 4441 > 21:17:9 Timer event: 828563ms: Total time spent in AJBuilder.build() > 21:17:10 Created 3 markers in 4441 files That Project3 is taking a long time, but I suppose it is 4k files. Do you know if the VM is already thrashing at this point? You should be able to see that if you either attach JConsole or if you turn on the heap info in eclipse (Eclipse>Preferences>General>Show Heap Status - it will turn up in the lower right of eclipse). >From what you describe, I am suspicious of minimal model not behaving as expected (not being aggressive enough perhaps). If you are up for it we could try some of what I suggested above. Close all but a few projects, turn the flags all OFF. Do a build, press that model dumping button, see what we get. Turn on minimalModel, do a build, dump again, hopefully we should not see files in there that are not affected by aspects (You could even just do the second part of this and dump the model with the flag off - have a look for anything that shouldn't be there). cheers Andy _______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org https://dev.eclipse.org/mailman/listinfo/aspectj-users