SPLASH 2023
Sun 22 - Fri 27 October 2023 Cascais, Portugal
Sun 22 Oct 2023 14:45 - 15:07 at Room II - MPLR Session 3 Chair(s): Rodrigo Bruno

To identify optimisation opportunities, Java developers often use sampling profilers that attribute a percentage of run time to the methods of a program. Even so these profilers use sampling, are probabilistic in nature, and may suffer for instance from safepoint bias, they are normally considered to be relatively reliable. However, unreliable or inaccurate profiles may misdirect developers in their quest to resolve performance issues by not correctly identifying the program parts that would benefit most from optimisations.

With the wider adoption of profilers such as async-profiler and Honest Profiler, which are designed to avoid the safepoint bias, we wanted to investigate how precise and accurate Java sampling profilers are today. We investigate the precision, reliability, accuracy, and overhead of async-profiler, Honest Profiler, Java Flight Recorder, JProfiler, perf, and YourKit, which are all actively maintained. We assess them on the fully deterministic Are We Fast Yet benchmarks to have a stable foundation for the probabilistic profilers.

We find that profilers are relatively reliable over 30 runs and normally report the same hottest method. Unfortunately, this is not true for all benchmarks, which suggests their reliability may be application-specific. Different profilers also report different methods as hottest and cannot reliably agree on the set of top 5 hottest methods. On the positive side, the average run time overhead is in the range of 1% to 5.4% for the different profilers.

Future work should investigate how results can become more reliable, perhaps by reducing the observer effect of profilers by using optimisation decisions of unprofiled runs or by developing a principled approach of combining multiple profiles that explore different dynamic optimisations.

Sun 22 Oct

Displayed time zone: Lisbon change

14:00 - 15:30
MPLR Session 3MPLR at Room II
Chair(s): Rodrigo Bruno INESC-ID - IST-ULisboa
14:00
22m
Talk
A Multifaceted Memory Analysis of Java Benchmarks
MPLR
Orion Papadakis University of Manchester, Andreas Andronikakis University of Manchester, Nikos Foutris University of Manchester, Michail Papadimitriou University of Manchester, Athanasios Stratikopoulos University of Manchester, Foivos S. Zakkak Red Hat, Polychronis Xekalakis Nvidia, Christos Kotselidis University of Manchester
DOI
14:22
22m
Talk
Improving Garbage Collection Observability with Performance Tracing
MPLR
Claire Huang Australian National University, Stephen M. Blackburn Google; Australian National University, Zixian Cai Australian National University
DOI Pre-print Media Attached
14:45
22m
Talk
Don’t Trust Your Profiler: An Empirical Study on the Precision and Accuracy of Java Profilers
MPLR
Humphrey Burchell University of Kent, Octave Larose University of Kent, Sophie Kaleba University of Kent, Stefan Marr University of Kent
DOI Pre-print
15:07
22m
Talk
Heap Size Adjustment with CPU Control
MPLR
Sanaz Tavakolisomeh University of Oslo, Marina Shimchenko Uppsala University, Erik Österlund Oracle, Rodrigo Bruno INESC-ID - IST-ULisboa, Paulo Ferreira University of Oslo, Tobias Wrigstad Uppsala University
DOI