Oh Performance!
AOP performance is not generally a study field. And most experience on the subject does it the Fibonacci-way (e.g. what the AspectWerkz guys have done). That is to say, the existing benchmarks analyze the overhead imposed by an AOP engine in the context of a purely computational application.
What does your AOP application look like?
Certainly, embedded applications need to use every single little megahertz available in the CPU. But AOP aims also at enterprise applications. And by enterprise I mean great scale information systems. This systems heavily rely on distribution and persistance. What does that have to do with my aspects? In an enterprise application, by far the greatest overhead takes place when accessing disk or when waiting for network availability or simply due to network latency.
What are you planning to use that AOP engine for?
The scenario I have in mind is basically that of using an AOP engine as the middleware layer. That said, all AOP-related overhead will only go to gluing tasks. And that, we think, is not that bad in terms of overall performance in that huge enterprise application of yours.
How are you planning to prove that?
Basically by doing dynamic weaving on a given application and comparing results. PetStore looks like a great example to play with.
Why haven't you done this study yet?
Because it takes time! If you're willing to join in and help in doing it, just write to the mailing lists.
