Location of Repository

Interpreter Implementation of Advice Weaving

By Muhammad Immad Naseer

Abstract

Implementing advice weaving using code rewriting can cause performance problems during application startup and incremental development. We present an interpreter based (non-rewriting) approach using a simple table and cache structure for matching pointcuts against dynamic join points together with a simple mechanism for calling the matched advice. An implementation in the JikesRVM, an open source research virtual machine, shows the approach is straightforward to implement. Internal microbenchmarks show dynamic join point execution overhead of approximately 28 % in the common case where no advice is applicable. Comparative microbenchmarks with ajc load time weaving show startup time reductions equivalent to the interpreted execution of 100-117 million unadvised dynamic join points. The cache and table structures could be used during later (i.e. JIT time) per-method rewrite based weaving to reduce pointcut matching overhead. We conclude that it is worthwhile to develop and evaluate a complete in-VM hybrid implementation, comprising both non-rewriting and rewriting based advice weaving. ii Table of contents Abstract................................. i

Year: 2011
OAI identifier: oai:CiteSeerX.psu:10.1.1.186.4370
Provided by: CiteSeerX
Download PDF:
Sorry, we are unable to provide the full text but you may find it at the following location(s):
  • http://citeseerx.ist.psu.edu/v... (external link)
  • http://www.cs.ubc.ca/grads/res... (external link)
  • Suggested articles


    To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.