portable, efficient, and accurate sampling profiling for java-based middleware
This paper presents innovative program transformations for the efficient and accurate profiling of Java programs. The profiling is based on a deterministic sampling mechanism that exploits the number of executed JVM bytecode instructions to trigger a user-defined profiling agent in order to process samples of the call stack. The instrumentation is entirely portable, profiles are reproducible, and the sampling rate can be dynamically tuned. Moderate overhead and high profile accuracy make the profiling framework attractive for developers of complex systems, such as application servers.
sampling profiling java program transformations jvm bytecode instrumentation