[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ajdt-dev] AJDT speed with multiple projects
|
Sebastien, I have moved this to discussion in a bug report as that is
easier, see:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=221427
I have pasted in your comments and then added my own. Basically I need
to know what scenario you are testing, which way round the
dependencies are.
Andy.
On 04/03/2008, Sebastien Tardif <stardif@xxxxxxxxxxxx> wrote:
> Andy,
>
> After more understanding it seems there is nothing more to apply to the
> source code from what is already included in 1.5.4 final. So I'm still
> stock with the problem.
>
> How do we get debugIncrementalStates to be true to debug the problem?
>
> How do we trace AJDT and components?
>
> Only space and modification of method body avoid full build after this
> message: Preparing for build: not going to be incremental because path
> change detected (one of classpath/aspectpath/inpath/injars)
>
> Addition or removal of constant or method is triggering batch build.
>
>
> -----Original Message-----
> From: Sebastien Tardif
> Sent: Tuesday, March 04, 2008 3:17 PM
> To: 'ajdt-dev@xxxxxxxxxxx'
>
> Subject: RE: [ajdt-dev] AJDT speed with multiple projects
>
> Andy,
>
> >I was thinking I would do a 1.4 update just for you but I can't because
> Eclipse 3.2 won't seem to run on my Mac.
>
>
> Thanks to have tried.
>
>
> > However, you may be able to just drop in the 1.5.4 final components
> into AJDT1.4.2.
>
>
> We have tried the 1.5.4 final components but that didn't work. After
> reviewing the patch from
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=166580 it seems that we
> also need a small adaptation to AJDE, to plug
> src/org/aspectj/ajde/internal/OutputLocationAdapter.java. The bug said
> that this have been done under AJDT 1.5.0.200701100718 for Eclipse
> 3.3M4.
>
> We are currently trying to make the change to AJDE for Eclipse 3.2.
>
>
> >However, if you have mixed projects (some java, some Aj) I don't think
> this will address your problems...
>
>
> We have tried will all projects converted to AJ for the project we can
> convert. However, we are not allowed to convert EAR projects. Hopefully,
> EAR projects are not required, after all they don't compile Java code.
> That didn't solve our issue.
>
> I let you know the result of our custom AJDE for Eclipse 3.2.
>
>
> -----Original Message-----
> From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-bounces@xxxxxxxxxxx]
> On Behalf Of Andy Clement
>
> Sent: Tuesday, March 04, 2008 1:16 PM
> To: ajdt-dev@xxxxxxxxxxx
> Subject: Re: [ajdt-dev] AJDT speed with multiple projects
>
>
> Hello Sebastien,
>
> On 03/03/2008, Sebastien Tardif <stardif@xxxxxxxxxxxx> wrote:
> > Thanks for your prompt response.
> >
> > In the log we have provided, we added only a space so all the
> dependent
> > did incremental build, but when we add or remove a constant the
> > dependent do full build. We only use one output location for each
> > project but they have different names and we use special project type
> > Web, EAR, EJB module so they may add implicit output location or
> mix-up
> > the logic.
> >
> > Like you said, we are probably impacted by
> >
> > https://bugs.eclipse.org/bugs/show_bug.cgi?id=166580
>
> I was thinking I would do a 1.4 update just for you but I can't
> because Eclipse 3.2 won't seem to run on my Mac. However, you may be
> able to just drop in the 1.5.4 final components into AJDT1.4.2. If
> you are interested in trying this, you need to update 3 plugins in
> your eclipse/plugins folder with new versions from CVS. (Backup what
> you are replacing first...)
>
> org.aspectj.ajde_<whatever is the latest version>
> In this plugin you need to update ajde.jar - the 1.5.4 version is here:
> http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ajdt/AJDT_src/org.a
> spectj.ajde/ajde.jar?revision=1.79&root=Tools_Project&pathrev=AJDT151
>
> org.aspectj.runtime
> In this plugin you need to update aspectjrt.jar - the 1.5.4 version is
> here:
> http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ajdt/AJDT_src/org.a
> spectj.runtime/aspectjrt.jar?root=Tools_Project&view=co&pathrev=AJDT151
>
> org.aspectj.weaver
> In this plugin you need to update aspectjweaver.jar - the 1.5.4 version
> is here:
> http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ajdt/AJDT_src/org.a
> spectj.weaver/aspectjweaver.jar?root=Tools_Project&view=co&pathrev=AJDT1
> 51
>
> However, if you have mixed projects (some java, some Aj) I don't think
> this will address your problems...
>
> > We actually have a mix, because we wanted to minimize the overhead of
> > AJDT so we have excluded the projects we think are unlikely to need
> to
> > be woven.
>
> Perfectly understandable, I know this is a common case.
>
> > Is it always a problem to mix the project types? Do we have a precise
> > description somewhere of the combination having or not the problem?
>
> Anytime you have a dependency between the two, you get this problem.
> Whether it is the Java project or the Aj project that is being built,
> they won't understand what happened in the project they depend on
> because of the incompatible incremental state objects. I know it
> seems obvious that the class file is the same as before, but the state
> of what happened during a compilation is wrapped up inside a state
> object.
>
> The more straightforward case we can fix is where an AspectJ project
> depends on a Java project - because we can reflect on the JDT state
> object and enable the AspectJ project to query what changed - ie. was
> it a structural change, does this AspectJ project need to rebuild?
> The hard case to fix is where a JDT project depends on an AspectJ
> project, we cannot modify JDT so the best we can do is create some JDT
> representation of the AspectJ projects status and hope we can convince
> JDT to treat it as if it came from the JDT compiler.
>
> I know you mentioned concerns over memory - but can you try converting
> them all to AspectJ just to see if that improves what happens for a
> simple whitespace change? It should, otherwise we have a bug.
>
> Other approaches would be to shuffle dependencies so that you don't
> have a switch to the alternative project type half way down your chain
> of dependencies. If your aspectj projects are all at the top,
> followed by all the Java projects, then you should find working in the
> Java stuff will not cause a problem. It is only when we cross between
> project types down a dependency chain that you will see issues.
>
> Andy.
>
> > -----Original Message-----
> > From: ajdt-dev-bounces@xxxxxxxxxxx
> [mailto:ajdt-dev-bounces@xxxxxxxxxxx]
> > On Behalf Of Andy Clement
> >
> > Sent: Monday, March 03, 2008 11:59 PM
> > To: ajdt-dev@xxxxxxxxxxx
> > Subject: Re: [ajdt-dev] AJDT speed with multiple projects
> >
> >
> > On 03/03/2008, Sebastien Tardif <stardif@xxxxxxxxxxxx> wrote:
> > > It seems that AJDT 1.4.2.200705221209 was released before AspectJ
> > 1.5.4
> > > is released so that what is known to be fixed in AspectJ 1.5.4 may
> > not
> > > be included in 1.5.4.200705211336.
> >
> > Indeed - but I didn't think anything had gone in that would affect
> you
> > during that time. And from the query I just ran to see what was
> fixed
> > in that time:
> >
> https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_de
> >
> sc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.5.
> >
> 4&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssub
> >
> str&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboar
> >
> d=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailty
> >
> pe2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2007-
> >
> 05-21&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+
> > last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=
> >
> > only one thing struck me as a possible fix you didn't have:
> > https://bugs.eclipse.org/bugs/show_bug.cgi?id=166580
> >
> > which is to do with incremental builds always being full builds when
> > using multiple output locations. But as your information said every
> > build that did occur was incremental, I don't think this is affecting
> > you.
> >
> > > We have 22 projects in our workspace. The projects are dependents
> > like a
> > > tree, so some depend of x projects and those x projects may depend
> of
> > > others. We have no circular references.
> >
> > Do you have any java projects or are they all AspectJ projects? If
> you
> > have a mixture, you might well be hitting what I recently described
> in
> > another thread last week.
> >
> > > In the trace below, only a Java file was modified by adding a
> space
> > so
> > > the resulting *.class should be the same then there is no point to
> > > involve the dependents. Do you agree?
> >
> > Of course.
> >
> > > Do we already have a bug logged or it's already fixed?
> >
> > I had a quick look over the AJDT bugs and I can't see one.
> >
> > > We also notice that full build is often done when we expect
> > incremental
> > > build.
> >
> > This can be the case if Java/AJ projects are mixed. If it isn't that
> > then it sounds like a bug.
> >
> > > We also see that AspectJ compiler is keeping a big chunk of
> > > WeakReference that take around 800 megs in our RAD. One our
> developer
> > > said that if we call org.aspectj.weaver.Dump.reset() the leak will
> > go.
> > > 800 megs just for the AspectJ compiler is close to the limit a JVM
> > can
> > > have on Windows so we cannot extend our JVM memory allocation.
> >
> > I do believe I have a bug open for that somewhere - and am looking at
> > memory usage when I get a chance.
> >
> > > My team is complaining to me after I introduced AJDT in our big
> > > government project.
> > >
> > > Anyone is using AJDT on big software with multiple projects in the
> > same
> > > workspace?
> > >
> > > What's the best practice to use AspectJ with Eclipse/RAD without
> > AJDT?
> > >
> > >
> > > -----Original Message-----
> > > From: ajdt-dev-bounces@xxxxxxxxxxx
> > [mailto:ajdt-dev-bounces@xxxxxxxxxxx]
> > > On Behalf Of Andy Clement
> > > Sent: Monday, March 03, 2008 1:48 PM
> > > To: ajdt-dev@xxxxxxxxxxx
> > > Subject: Re: [ajdt-dev] AJDT speed with multiple projects
> > >
> > > I'm not planning on upgrading the Eclipse 3.2 version of AJDT any
> > time
> > > soon - but as far as I am aware it includes all the optimizations
> > that
> > > are in the later versions, so it wouldn't change your situation.
> > >
> > > How are your projects dependent? Just a big stack of AJ projects
> > that
> > > depend on each other?
> > >
> > > Andy.
> > >
> > > On 28/02/2008, Sebastien Tardif <stardif@xxxxxxxxxxxx> wrote:
> > > >
> > > >
> > > >
> > > >
> > > > Hi,
> > > >
> > > >
> > > >
> > > > I put a space in a file and saved. I got the log below. Could I
> > > optimize
> > > > something? By the way, I'm stock to use Eclipse 3.2 because I
> use
> > IBM
> > > RAD.
> > > > Is a possibility that a more recent AJDT supporting Eclipse 3.2
> > will
> > > be
> > > > built?
> > > >
> > > >
> > > >
> > > > 5:46:38 PM Startup information:
> > > >
> > > > AJDT version: 1.4.2.200705221209 for Eclipse 3.2
> > > >
> > > > AspectJ Compiler version: DEVELOPMENT
> > > >
> > > > usingVisualiser=true
> > > >
> > > > usingXref=true
> > > >
> > > > usingCUprovider=false
> > > >
> > > > doneAutoOpenXRefViewC:/cc_views_dr_5_1_0_0/workspace =
> > > > true
> > > >
> > > > org.aspectj.ajdt.core.compiler.weaver.XNoInline = true
> > > >
> > > > ajde.version.at.previous.startup = @AJDEVERSION@
> > > >
> > > > org.aspectj.ajdt.core.compiler.weaver.XNotReweavable =
> > > > true
> > > >
> > > > 5:46:49 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:49 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:49 PM Project=svcapp, kind of build requested=Incremental
> > AspectJ
> > > > compilation
> > > >
> > > > 5:46:49 PM build: Examined delta - source file changes in
> required
> > > project
> > > > svcapp
> > > >
> > > > 5:46:50 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:50 PM Starting incremental compilation loop 1 of possibly 5
> > > >
> > > > 5:46:51 PM Timer event: 1687ms: Time to first compiled message
> > > >
> > > > 5:46:51 PM Timer event: 1718ms: Time to first woven message
> > > >
> > > > 5:46:51 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:51 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:51 PM Timer event: 1890ms: Total time spent in AJDE
> > > >
> > > > 5:46:52 PM Timer event: 390ms: Create element map (1 rels in
> > project:
> > > > svcapp)
> > > >
> > > > 5:46:52 PM Types affected during build = 1
> > > >
> > > > 5:46:52 PM Timer event: 0ms: Add markers (2 markers)
> > > >
> > > > 5:46:52 PM Timer event: 2765ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:52 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:52 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:52 PM Project=svcCommon, kind of build
> requested=Incremental
> > > AspectJ
> > > > compilation
> > > >
> > > > 5:46:52 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:52 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:52 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:52 PM Timer event: 437ms: Total time spent in AJDE
> > > >
> > > > 5:46:53 PM Timer event: 63ms: Create element map (0 rels in
> > project:
> > > > svcCommon)
> > > >
> > > > 5:46:53 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:53 PM Timer event: 625ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:53 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:53 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:53 PM Project=imProvisioningHub, kind of build
> > > requested=Incremental
> > > > AspectJ compilation
> > > >
> > > > 5:46:53 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:53 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:53 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:53 PM Timer event: 375ms: Total time spent in AJDE
> > > >
> > > > 5:46:53 PM Timer event: 0ms: Create element map (0 rels in
> project:
> > > > imProvisioningHub)
> > > >
> > > > 5:46:53 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:53 PM Timer event: 421ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:53 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:53 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:53 PM Project=ctIvrWeb, kind of build requested=Incremental
> > > AspectJ
> > > > compilation
> > > >
> > > > 5:46:53 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:53 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:53 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:53 PM Timer event: 344ms: Total time spent in AJDE
> > > >
> > > > 5:46:53 PM Timer event: 0ms: Create element map (0 rels in
> project:
> > > > ctIvrWeb)
> > > >
> > > > 5:46:53 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:53 PM Timer event: 375ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:53 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:53 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:53 PM Project=connectors, kind of build
> requested=Incremental
> > > AspectJ
> > > > compilation
> > > >
> > > > 5:46:54 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:54 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:55 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:55 PM Timer event: 1062ms: Total time spent in AJDE
> > > >
> > > > 5:46:56 PM Timer event: 781ms: Create element map (0 rels in
> > project:
> > > > connectors)
> > > >
> > > > 5:46:56 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:56 PM Timer event: 2359ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:56 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:56 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:56 PM Project=ejbapp, kind of build requested=Incremental
> > AspectJ
> > > > compilation
> > > >
> > > > 5:46:56 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:57 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:57 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:57 PM Timer event: 702ms: Total time spent in AJDE
> > > >
> > > > 5:46:57 PM Timer event: 141ms: Create element map (0 rels in
> > project:
> > > > ejbapp)
> > > >
> > > > 5:46:57 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:57 PM Timer event: 1000ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:57 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:57 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:57 PM Project=ctWebClient, kind of build
> requested=Incremental
> > > AspectJ
> > > > compilation
> > > >
> > > > 5:46:58 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:58 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:58 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:58 PM Timer event: 906ms: Total time spent in AJDE
> > > >
> > > > 5:46:58 PM Timer event: 218ms: Create element map (1 rels in
> > project:
> > > > ctWebClient)
> > > >
> > > > 5:46:58 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:58 PM Timer event: 1437ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:58 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:58 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:58 PM Project=clusteringmdb, kind of build
> > requested=Incremental
> > > > AspectJ compilation
> > > >
> > > > 5:46:59 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:59 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:59 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:59 PM Timer event: 328ms: Total time spent in AJDE
> > > >
> > > > 5:46:59 PM Timer event: 0ms: Create element map (0 rels in
> project:
> > > > clusteringmdb)
> > > >
> > > > 5:46:59 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:59 PM Timer event: 344ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > > 5:46:59 PM
> > > >
> > >
> >
> ========================================================================
> > > ===================
> > > >
> > > > 5:46:59 PM Build kind = AUTOBUILD
> > > >
> > > > 5:46:59 PM Project=AppGUI, kind of build requested=Incremental
> > AspectJ
> > > > compilation
> > > >
> > > > 5:46:59 PM Preparing for build: planning to be an incremental
> build
> > > >
> > > > 5:46:59 PM AspectJ reports build successful, build was:
> INCREMENTAL
> > > >
> > > > 5:46:59 PM AJDE Callback: finish. Was full build: false
> > > >
> > > > 5:46:59 PM Timer event: 718ms: Total time spent in AJDE
> > > >
> > > > 5:46:59 PM Timer event: 0ms: Create element map (0 rels in
> project:
> > > AppGUI)
> > > >
> > > > 5:46:59 PM Timer event: 0ms: Add markers (0 markers)
> > > >
> > > > 5:46:59 PM Timer event: 734ms: Total time spent in
> > AJBuilder.build()
> > > >
> > > >
> > > > _______________________________________________
> > > > ajdt-dev mailing list
> > > > ajdt-dev@xxxxxxxxxxx
> > > > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> > > >
> > > >
> > > _______________________________________________
> > > ajdt-dev mailing list
> > > ajdt-dev@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> > > _______________________________________________
> > > ajdt-dev mailing list
> > > ajdt-dev@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> > >
> > _______________________________________________
> > ajdt-dev mailing list
> > ajdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> > _______________________________________________
> > ajdt-dev mailing list
> > ajdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> >
> _______________________________________________
> ajdt-dev mailing list
> ajdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
> _______________________________________________
> ajdt-dev mailing list
> ajdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>