Affiliation:
1. University of Lugano, Switzerland
2. University of Lugano, Switzerland / Charles University, Czech Republic
Abstract
Many profilers based on bytecode instrumentation yield wrong results in the presence of an optimizing dynamic compiler, either due to not being aware of optimizations such as stack allocation and method inlining, or due to the inserted code disrupting such optimizations. To avoid such perturbations, we present a novel technique to make any profiler implemented at the bytecode level aware of optimizations performed by the dynamic compiler. We implement our approach in a state-of-the-art Java virtual machine and demonstrate its significance with concrete profilers. We quantify the impact of escape analysis on allocation profiling, object life-time analysis, and the impact of method inlining on callsite profiling. We illustrate how our approach enables new kinds of profilers, such as a profiler for non-inlined callsites, and a testing framework for locating performance bugs in dynamic compiler implementations.
Funder
European Commission
Oracle
Schweizerische Nationalfonds zur Förderung der Wissenschaftlichen Forschung
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Optimization-Aware Compiler-Level Event Profiling;ACM Transactions on Programming Languages and Systems;2023-06-26
2. TIP: Time-Proportional Instruction Profiling;MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture;2021-10-17
3. $$\mathsf{P}^{3}$$: A Profiler Suite for Parallel Applications on the Java Virtual Machine;Programming Languages and Systems;2020
4. Analysis and Optimization of Task Granularity on the Java Virtual Machine;ACM Transactions on Programming Languages and Systems;2019-07-20