Rapid development of extensible profilers for the Java virtual machine with aspect-oriented programming

  • Authors:
  • Danilo Ansaloni;Walter Binder;Alex Villazón;Philippe Moret

  • Affiliations:
  • University of Lugano, Lugano, Switzerland;University of Lugano, Lugano, Switzerland;University of Lugano, Lugano, Switzerland;University of Lugano, Lugano, Switzerland

  • Venue:
  • Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many profilers for Java applications are implemented with low-level bytecode instrumentation techniques, which is tedious, error-prone, and complicates maintenance and extension of the tools. In order to reduce development time and cost, we promote building Java profilers using high-level aspect-oriented programming (AOP). We show that the use of aspects yields concise profilers that are easy to develop, extend, and maintain, because low-level instrumentation details are hidden from the tool developer. Our profiler relies on inter-advice communication, an extension to common AOP languages that enables efficient data passing between advice woven into the same method. We illustrate our approach with two case studies. First, we show that an existing, instrumentation-based tool for listener latency profiling can be easily recast as an aspect. Second, we present an aspect for comprehensive calling context profiling. In order to reduce profiling overhead, our aspect parallelizes application execution and profile creation.