Package org.openjdk.jmh.runner
Class BenchmarkHandler
- java.lang.Object
-
- org.openjdk.jmh.runner.BenchmarkHandler
-
class BenchmarkHandler extends java.lang.ObjectBase class for all benchmarks handlers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classBenchmarkHandler.BenchmarkTaskWorker body.private static classBenchmarkHandler.ExecutorTypeprivate static classBenchmarkHandler.WorkerDataHandles 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<?>clazzprivate java.util.concurrent.ExecutorServiceexecutorThread-pool for threads executing the benchmark tasksprivate static BenchmarkHandler.ExecutorTypeEXECUTOR_TYPEprivate java.lang.reflect.Methodmethodprivate OutputFormatoutprivate java.util.List<InternalProfiler>profilersprivate java.util.List<InternalProfiler>profilersRevprivate java.util.concurrent.BlockingQueue<ThreadParams>tpsprivate 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.MethodfindBenchmarkMethod(java.lang.Class<?> clazz, java.lang.String methodName)private static booleanisValidBenchmarkSignature(java.lang.reflect.Method m)checks if method signature is valid benchmark signature, besited checks if method signature corresponds to benchmark type.private BenchmarkHandler.WorkerDatanewWorkerData(java.lang.Thread worker)IterationResultrunIteration(BenchmarkParams benchmarkParams, IterationParams params, boolean last)Runs an iteration on the handled benchmark.voidshutdown()Do required shutdown actions.protected voidstartProfilers(BenchmarkParams benchmarkParams, IterationParams iterationParams)protected voidstopProfilers(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)
-
-