Profiling with AspectJ

Pearce, David J., Webster, Matthew, Berry, Robert and Kelly, Paul H.J. (2007). Profiling with AspectJ. Software practice and experience, 37 (7), pp. 747-777.


This paper investigates whether AspectJ can be used for efficient profiling of Java programs. Profiling differs from other applications of AOP (e.g. tracing), since it necessitates efficient and often complex interactions with the target program. As such, it was uncertain whether AspectJ could achieve this goal. Therefore, we investigate four common profiling problems (heap usage, object lifetime, wasted time and time-spent) and report on how well AspectJ handles them. For each, we provide an efficient implementation, discuss any trade-offs or limitations and present the results of an experimental evaluation into the costs of using it. Our conclusions are mixed. On the one hand, we find that AspectJ is sufficiently expressive to describe the four profiling problems and reasonably efficient in most cases. On the other hand, we find several limitations with the current AspectJ implementation that severely hamper its suitability for profiling. Copyright © 2006 John Wiley & Sons, Ltd.

Publication DOI:
Divisions: Engineering & Applied Sciences > Computer science
Engineering & Applied Sciences > Computer science research group
Uncontrolled Keywords: AspectJ,AOP,JAVA,profiling,performance
Full Text Link:
Related URLs:
Published Date: 2007-06-01
Authors: Pearce, David J.
Webster, Matthew
Berry, Robert ( 0000-0003-3395-046X)
Kelly, Paul H.J.

Export / Share Citation


Additional statistics for this record