Towards Realistic Results for Instrumentation-Based Profilers for JIT-Compiled Systems

Humphrey Burchell, Octave Larose, Stefan Marr

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Profilers are crucial tools for identifying and improving application performance. However, for language implementations with just-in-time (JIT) compilation, e.g., for Java and JavaScript, instrumentation-based profilers can have significant overheads and report unrealistic results caused by the instrumentation. In this paper, we examine state-of-the-art instrumentation-based profilers for Java to determine the realism of their results. We assess their overhead, the effect on compilation time, and the generated bytecode. We found that the profiler with the lowest overhead increased run time by 82x. Additionally, we investigate the realism of results by testing a profiler’s ability to detect whether inlining is enabled, which is an important compiler optimization. Our results document that instrumentation can alter program behavior so that performance observations are unrealistic, i.e., they do not reflect the performance of the uninstrumented program. As a solution, we sketch late-compiler-phase-based instrumentation for just-in-time compilers, which gives us the precision of instrumentation-based profiling with an overhead that is multiple magnitudes lower than that of standard instrumentation-based profilers, with a median overhead of 23.3% (min. 1.4%, max. 464%). By inserting probes late in the compilation process, we avoid interfering with compiler optimizations, which yields more realistic results.
Original languageEnglish
Title of host publicationProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes
EditorsM. Anton Ertl, Christoph M. Kirsch, Christoph M. Kirsch
PublisherACM
Pages82-89
Number of pages8
ISBN (Electronic)9798400711183
DOIs
Publication statusPublished - 13 Sept 2024
Externally publishedYes

Publication series

NameMPLR
PublisherACM

Fields of science

  • 102 Computer Sciences

Cite this