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.
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 on 2007-07-16, modified on 2016-08-08