Runs warmups until the maximum number of warmups is done, or the running times have stabilized.
Runs multiple JVM instances per each setup and aggregates all the results together.
Runs multiple JVM instances per each setup and aggregates all the results together.
This produces more stable results, as the performance related effects of each JVM instantiation are averaged.
Runs warmups until the maximum number of warmups is done, or the running times have stabilized. After that, it runs the tests the specified number of times and collects the results using an
aggregate
function.Stabilization is detected by tracking the running times for which there may have been and those for which there was no garbage collection. When either of the two running times stabilizes, we consider the JVM warmed up for the snippet.
We do this by registering on GC events instead of invoking
Platform.collectGarbage
, since usually the time to invoke the snippet is less than the time to perform full GC, and most triggered GC cycles are fast because they collect only the young generation.