Personal tools
You are here: Home Members Oege de Moor Publications Optimising AspectJ
Document Actions

Optimising AspectJ

Authors: Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Ondřej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibble
> PLDI 2005, June 2005, Chicago, USA

Abstract

AspectJ, an aspect-oriented extension of Java, is becoming increasingly popular. However, not much work has been directed at optimising compilers for AspectJ. Optimising AOP languages provides many new and interesting challenges for compiler writers, and this paper identifies and addresses three such challenges.

First, compiling around advice efficiently is particularly challenging. We provide a new code generation strategy for around advice, which (unlike previous implementations) both avoids the use of excessive inlining and the use of closures. We show it leads to more compact code, and can also improve run-time performance. Second, woven code sometimes includes run-time tests to determine whether advice should execute. One important case is the cflow pointcut which uses information about the dynamic calling context. Previous techniques for cflow were very costly in terms of both time and space. We present new techniques to minimise or eliminate the overhead of cflow using both intra- and inter-procedural analyses. Third, we have addressed the general problem of how to structure an optimising compiler so that traditional analyses can be easily adapted to the AOP setting.

We have implemented all of the techniques in this paper in abc, our AspectBench Compiler for AspectJ, and we demonstrate significant speedups with empirical results. Some of our techniques have already been integrated into the production AspectJ compiler, ajc 1.2.1.

(PDF, PS)

BIBTEX:

           @inproceedings{pldi05abc, 
           author = "Pavel Avgustinov and 
                         Aske Simon Christensen and
                         Laurie Hendren and 
                         Sascha Kuzins and 
                         Jennifer Lhot{\'{a}}k and 
                         Ondrej Lhot{\'{a}}k and 
                         Oege de Moor and 
                         Damien Sereni and
                         Ganesh Sittampalam and
                         Julian Tibble", 
           title = "Optimising {AspectJ}", 
           booktitle = "{ACM SIGPLAN} Conference on Programming Language Design and Implementation { (PLDI)}", 
           editor = "Mary Hall", 
           year = "2005", 
           publisher = "ACM Press"} 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: