Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] ITD Implementation & Performance

Hi,

> 1. Is what I'm seeing really correct? Or, is the profiler somehow being
> tricked by aspectj's ITD implementation?

I don't think the profiler can be tricked.  I use YourKit myself.

> 2. Are there known performance overheads for ITD? For example, is ITD
> implemented using some kind of mapping between object/aspect and therefore
> requires a lookup on each method invocation?

I'd need to know more about your setup.  The aim for every language feature
is that it performs close to the performance you would get if you hand crafted
that feature in Java - if that isn't the case, we should investigate.  Open a bug with more
information on your setup.  You will find that an ITD may not be implemented as a
single direct method call, but via a couple of method calls.  But once your code
has warmed up and the JIT has chewed on it, those should be highly optimized.
Are you profiling it after a warmup period?

> 3. Assuming people have experienced similar overhead as well, are there any
> workarounds/best-practices for implementing performant ITD?

I have no open bugs related to performance problems with ITDs...

cheers,
Andy.

2009/3/21 Keith Kowalczykowski <keith@xxxxxxxxxxx>
Hey Everyone,

   We are using aspectj and ITD to implement some cross-cutting concerns in
our project. Our implementation consists of ~5 ITD fields + getters for
those fields. I have recently been profiling the application, and noticed
that calling these getters takes up a significant amount of time; enough so
that it shows up as a couple percentage points on the profiler (YourKit).

   Therefore, I have a couple questions regarding the
implementation/performance of ITD:

1. Is what I'm seeing really correct? Or, is the profiler somehow being
tricked by aspectj's ITD implementation?
2. Are there known performance overheads for ITD? For example, is ITD
implemented using some kind of mapping between object/aspect and therefore
requires a lookup on each method invocation?
3. Assuming people have experienced similar overhead as well, are there any
workarounds/best-practices for implementing performant ITD?

   Thanks in advance,
               Keith


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


Back to the top