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.

Published in:
ENTCS (Electronic Notes in Theoretical Computer Science), 164, 3, 45-64
Extended version of paper presented at QAPL'06 (4th International Workshop on Quantitative Aspects of Programming Languages), Vienna, Austria, 1-2 April 2006

 Record created 2007-07-16, last modified 2018-01-28

Rate this document:

Rate this document:
(Not yet reviewed)