Towards effective assessment of steady state performance in Java software: Are we there yet?
Luca Traini, Vittorio Cortellessa, Daniele Di Pompeo, Michele Tucci

TL;DR
This paper investigates the reliability of Java microbenchmark warmup estimation, revealing that benchmarks often do not reach steady state and developer estimates are frequently inaccurate, impacting performance assessment quality.
Contribution
It demonstrates that Java microbenchmarks often fail to reach steady state and that developer warmup estimates are frequently inaccurate, highlighting the need for automated solutions.
Findings
Many benchmarks do not reach steady state.
Developer warmup estimates are often inaccurate.
Dynamic reconfiguration improves warmup estimation accuracy.
Abstract
Microbenchmarking is a widely used form of performance testing in Java software. A microbenchmark repeatedly executes a small chunk of code while collecting measurements related to its performance. Due to Java Virtual Machine optimizations, microbenchmarks are usually subject to severe performance fluctuations in the first phase of their execution (also known as warmup). For this reason, software developers typically discard measurements of this phase and focus their analysis when benchmarks reach a steady state of performance. Developers estimate the end of the warmup phase based on their expertise, and configure their benchmarks accordingly. Unfortunately, this approach is based on two strong assumptions: (i) benchmarks always reach a steady state of performance and (ii) developers accurately estimate warmup. In this paper, we show that Java microbenchmarks do not always reach a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Parallel Computing and Optimization Techniques · Software Testing and Debugging Techniques
