Infoscience

Journal article

Exact and Portable Profiling for the JVM Using Bytecode Instruction Counting

This paper presents a novel profiling approach, which is entirely based on program transformation techniques in order to enable exact profiling, preserving complete call stacks, method invocation counters, and bytecode instruction counters. We exploit the number of executed bytecode instructions as profiling metric, which has several advantages, such as making the instrumentation entirely portable and generating reproducible profiles. These ideas have been implemented as the JP tool. It provides a small and flexible API to write portable profiling agents in pure Java, which are periodically activated to process the collected profiling information. Performance measurements point out that JP causes significantly less overhead than a prevailing tool for the exact profiling of Java code.

    Keywords: Java ; JVM ; Profiling ; Program Transformations ; Bytecode Instrumentation

    Note:

    Extended version of paper presented at QAPL'06 (4th International Workshop on Quantitative Aspects of Programming Languages), Vienna, Austria, 1-2 April 2006

    Reference

    • LGL-ARTICLE-2007-002

    Record created on 2007-07-16, modified on 2016-08-08

Related material