Package org.openjdk.jmh.runner
Class BenchmarkHandler
- java.lang.Object
-
- org.openjdk.jmh.runner.BenchmarkHandler
-
class BenchmarkHandler extends java.lang.Object
Base class for all benchmarks handlers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
BenchmarkHandler.BenchmarkTask
Worker body.private static class
BenchmarkHandler.ExecutorType
private static class
BenchmarkHandler.WorkerData
Handles thread-local data for each worker that should not change between the iterations.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<?>
clazz
private java.util.concurrent.ExecutorService
executor
Thread-pool for threads executing the benchmark tasksprivate static BenchmarkHandler.ExecutorType
EXECUTOR_TYPE
private java.lang.reflect.Method
method
private OutputFormat
out
private java.util.List<InternalProfiler>
profilers
private java.util.List<InternalProfiler>
profilersRev
private java.util.concurrent.BlockingQueue<ThreadParams>
tps
private java.util.concurrent.ConcurrentMap<java.lang.Thread,BenchmarkHandler.WorkerData>
workerData
-
Constructor Summary
Constructors Constructor Description BenchmarkHandler(OutputFormat out, Options options, BenchmarkParams executionParams)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static java.util.List<ThreadParams>
distributeThreads(int threads, int[] groups)
static java.lang.reflect.Method
findBenchmarkMethod(java.lang.Class<?> clazz, java.lang.String methodName)
private static boolean
isValidBenchmarkSignature(java.lang.reflect.Method m)
checks if method signature is valid benchmark signature, besited checks if method signature corresponds to benchmark type.private BenchmarkHandler.WorkerData
newWorkerData(java.lang.Thread worker)
IterationResult
runIteration(BenchmarkParams benchmarkParams, IterationParams params, boolean last)
Runs an iteration on the handled benchmark.void
shutdown()
Do required shutdown actions.protected void
startProfilers(BenchmarkParams benchmarkParams, IterationParams iterationParams)
protected void
stopProfilers(BenchmarkParams benchmarkParams, IterationParams iterationParams, IterationResult iterationResults)
-
-
-
Field Detail
-
executor
private final java.util.concurrent.ExecutorService executor
Thread-pool for threads executing the benchmark tasks
-
workerData
private final java.util.concurrent.ConcurrentMap<java.lang.Thread,BenchmarkHandler.WorkerData> workerData
-
tps
private final java.util.concurrent.BlockingQueue<ThreadParams> tps
-
out
private final OutputFormat out
-
profilers
private final java.util.List<InternalProfiler> profilers
-
profilersRev
private final java.util.List<InternalProfiler> profilersRev
-
clazz
private final java.lang.Class<?> clazz
-
method
private final java.lang.reflect.Method method
-
EXECUTOR_TYPE
private static final BenchmarkHandler.ExecutorType EXECUTOR_TYPE
-
-
Constructor Detail
-
BenchmarkHandler
public BenchmarkHandler(OutputFormat out, Options options, BenchmarkParams executionParams)
-
-
Method Detail
-
distributeThreads
static java.util.List<ThreadParams> distributeThreads(int threads, int[] groups)
-
findBenchmarkMethod
public static java.lang.reflect.Method findBenchmarkMethod(java.lang.Class<?> clazz, java.lang.String methodName)
-
isValidBenchmarkSignature
private static boolean isValidBenchmarkSignature(java.lang.reflect.Method m)
checks if method signature is valid benchmark signature, besited checks if method signature corresponds to benchmark type.- Parameters:
m
-- Returns:
-
startProfilers
protected void startProfilers(BenchmarkParams benchmarkParams, IterationParams iterationParams)
-
stopProfilers
protected void stopProfilers(BenchmarkParams benchmarkParams, IterationParams iterationParams, IterationResult iterationResults)
-
shutdown
public void shutdown()
Do required shutdown actions.
-
runIteration
public IterationResult runIteration(BenchmarkParams benchmarkParams, IterationParams params, boolean last)
Runs an iteration on the handled benchmark.- Parameters:
benchmarkParams
- Benchmark parametersparams
- Iteration parameterslast
- Should this iteration considered to be the last- Returns:
- IterationResult
-
newWorkerData
private BenchmarkHandler.WorkerData newWorkerData(java.lang.Thread worker)
-
-