Affiliation:
1. University of Colorado, Boulder, CO, USA
2. University of Lugano, Lugano, Switzerland
3. IBM Research, Hawthorne, NY, USA
Abstract
Performance analysts profile their programs to find methods that are worth optimizing: the "hot" methods. This paper shows that four commonly-used Java profilers (
xprof , hprof , jprofile, and yourkit
) often disagree on the identity of the hot methods. If two profilers disagree, at least one must be incorrect. Thus, there is a good chance that a profiler will mislead a performance analyst into wasting time optimizing a cold method with little or no performance improvement.
This paper uses causality analysis to evaluate profilers and to gain insight into the source of their incorrectness. It shows that these profilers all violate a fundamental requirement for sampling based profilers: to be correct, a sampling-based profilermust collect samples randomly.
We show that a proof-of-concept profiler, which collects samples randomly, does not suffer from the above problems. Specifically, we show, using a number of case studies, that our profiler correctly identifies methods that are important to optimize; in some cases other profilers report that these methods are cold and thus not worth optimizing.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
15 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Evaluating Finalization-Based Object Lifetime Profiling;Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management;2024-06-20
2. Exploiting Partially Context-sensitive Profiles to Improve Performance of Hot Code;ACM Transactions on Programming Languages and Systems;2023-12
3. Automated Detection of Software Performance Antipatterns in Java-Based Applications;IEEE Transactions on Software Engineering;2023-04-01
4. The ThreadRadar visualization for debugging concurrent Java programs;Journal of Visualization;2022-05-24
5. TIP: Time-Proportional Instruction Profiling;MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture;2021-10-17