Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] LTW vs Compile Time weaving and AspectJ

Hi,

We are heavily into incorporating aspectJ in our cash order management system.
AspectJ will be used in all aspect, sorry about the pun, system type services that we may not want to be included within the business components.
Example of which are performance counter collections of method executions etc.

What I would like to know is the detail of how the "Around" is weaved into the target code. From what I can see when LTW is used a "proxy" based pattern is used by AspectJ whereby the aspectJ class defined by the aspect developer is executed by by AspectJ, we then need to invoke "joinpoint.proceed" to then invoked the original method.
From that I could say that the use of "before" or "after" since it seems that before or after is directly weaved into the the target class, i.e. inlined, as opposed to the method used by Around.

Now the question is, is the same method used above for "Around" is also used when Compile Time weaving, or binary weaving for that matter?

I guess what i'm getting to is a little bit of technical detail of the implementation differences between "around" and "after/before" from the AspectJ compiler/weaver is concern, and in general which one would be more performant, if latency is of utmost importance.

Thank you

--
Sonny


Back to the top