Does some final cleanup after execution of all benchmarks in a performance test.
Does some final cleanup after execution of all benchmarks in a performance test.
This method is invoked in the PerformanceTest
executeTests
method
just after execution of all benchmarks.
Most measurers do not need to do any side effects in beforeExecution, so the default implementation just does nothing.
Does some side effects before execution of all benchmarks in a performance test.
Does some side effects before execution of all benchmarks in a performance test.
This method is invoked in the PerformanceTest
executeTests
method
just before execution of any benchmarks.
Most measurers do not need add additional context keys in prepareContext, so the default implementation just does nothing.
Modifies the initial test context.
Modifies the initial test context.
This method is invoked before the PerformanceTest
object's ctor is invoked.
The key-value pairs that the org.scalameter.Measurer adds to
the org.scalameter.Context in this method are visible to all
the test snippets within the PerformanceTest
class.
Most measurers do not need to add any specific keys,
so the default implementation just returns the context
.
Indicates if a measurer uses instrumented classpath -
if true
measurer must be run using an executor that spawns separate JVMs.
Indicates if a measurer uses instrumented classpath -
if true
measurer must be run using an executor that spawns separate JVMs.
A mixin measurer which detects outliers (due to an undetected GC or JIT) and requests additional measurements to replace them. Outlier elimination can also eliminate some pretty bad allocation patterns in some cases. Only outliers from above are considered.
When detecting an outlier, up to
Key.exec.outliers.suspectPercent
% (with a minimum of1
) of worst times will be considered. For example, givenKey.exec.outliers.suspectPercent = 25
the times:times
12
and44
are considered for outlier elimination.Given the times:
the time
55
will be considered for outlier elimination.A potential outlier (suffix) is removed if removing it increases the coefficient of variance by at least
Key.exec.outliers.covMultiplier
times.