Optimized Compilation of Around Advice for Aspect Oriented Programs
The technology that supports Aspect-Oriented Programming (AOP) tools is inherently intrusive, since it changes the behavior of base application code. Advice weaving performed by AspectJ compilers must introduce crosscutting behavior defined in advice into Java programs without causing great performance overhead. This paper shows the techniques applied by the ajc and abc AspectJ compilers for around advice weaving, and identifies problems in code they produce. The problems analyzed are advice and shadow implementation repetition and context variable repetition. Performance gain provided by solving these problems is discussed, showing that bytecode size, running time and memory consumption can be reduced by these optimizations. It is assumed that the reader is familiar with AOP and AspectJ constructs.