A microbenchmarking test framework for Adopt OpenJDK
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
META-INF Initial commit of bumblebench Jul 24, 2018
net/adoptopenjdk/bumblebench Updating crypto microbenchmarks Jul 30, 2018
.classpath Initial commit of bumblebench Jul 24, 2018
.gitignore Add JNI tests Jul 25, 2018
.project Initial commit of bumblebench Jul 24, 2018
LICENSE Initial commit Jul 20, 2018
README.md Add links to wiki page Jul 26, 2018
build.xml Add JNI tests Jul 25, 2018



This microbenchmarking test framework for AdoptOpenJDK, along with jmh will be used to create and run different types of benchmarks on binaries produced at AdoptOpenJDK (to verify that large perf regressions are caught). While we may have limited access to isolated performance machines, many microbenchmarks can still be useful to catch regressions early. You can find a Quick Start Guide and other useful documentation at the BumbleBench and HumbleBench wiki page.

BumbleBench is a microbenchmark tool intended to make it as easy as possible to avoid common pitfalls when microbenchmarking Java. It is intended to make sure that test runs spend most of their time running the desired piece of code compiled at the highest possible level of quality. This is surprisingly tricky in an environment with dynamic compilation employing aggressive speculative optimizations.

The name "BumbleBench" derives from the manner in which the tool varies the iteration count of the benchmark's main loop in order to determine the highest iteration count that can be completed within a given target duration. The target score vacillates around the estimated maximum achievable score, alternating between low and high target scores in an attempt to converge on the actual achievable score, while remaining sensitive to variations in performance that can occur due to effects like jit compilation occurring during the run.