Class BenchmarkParams

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<BenchmarkParams>

    public class BenchmarkParams
    extends java.lang.Object
    Benchmark parameters.

    BenchmarkParams handles the parameters used in the current run.

    This class is dual-purpose:

    1. It acts as the interface between host JVM and forked JVM, so that the latter would not have to figure out the benchmark configuration again
    2. It can be injected into benchmark methods to access the runtime configuration info about the benchmark
    See Also:
    Serialized Form
    • Field Detail

      • benchmark

        protected final java.lang.String benchmark
      • generatedTarget

        protected final java.lang.String generatedTarget
      • synchIterations

        protected final boolean synchIterations
      • threads

        protected final int threads
      • threadGroups

        protected final int[] threadGroups
      • threadGroupLabels

        protected final java.util.Collection<java.lang.String> threadGroupLabels
      • forks

        protected final int forks
      • warmupForks

        protected final int warmupForks
      • mode

        protected final Mode mode
      • timeUnit

        protected final java.util.concurrent.TimeUnit timeUnit
      • opsPerInvocation

        protected final int opsPerInvocation
      • jvm

        protected final java.lang.String jvm
      • jvmArgs

        protected final java.util.Collection<java.lang.String> jvmArgs
      • jdkVersion

        protected final java.lang.String jdkVersion
      • jmhVersion

        protected final java.lang.String jmhVersion
      • vmName

        protected final java.lang.String vmName
      • vmVersion

        protected final java.lang.String vmVersion
    • Constructor Detail

      • BenchmarkParams

        public BenchmarkParams​(java.lang.String benchmark,
                               java.lang.String generatedTarget,
                               boolean synchIterations,
                               int threads,
                               int[] threadGroups,
                               java.util.Collection<java.lang.String> threadGroupLabels,
                               int forks,
                               int warmupForks,
                               IterationParams warmup,
                               IterationParams measurement,
                               Mode mode,
                               WorkloadParams params,
                               java.util.concurrent.TimeUnit timeUnit,
                               int opsPerInvocation,
                               java.lang.String jvm,
                               java.util.Collection<java.lang.String> jvmArgs,
                               java.lang.String jdkVersion,
                               java.lang.String vmName,
                               java.lang.String vmVersion,
                               java.lang.String jmhVersion,
                               TimeValue timeout)
    • Method Detail

      • getTimeout

        public TimeValue getTimeout()
        Returns:
        how long to wait for iteration to complete
      • shouldSynchIterations

        public boolean shouldSynchIterations()
        Returns:
        do we synchronize iterations?
      • getWarmup

        public IterationParams getWarmup()
        Returns:
        iteration parameters for warmup phase
      • getMeasurement

        public IterationParams getMeasurement()
        Returns:
        iteration parameters for measurement phase
      • getThreads

        public int getThreads()
        Returns:
        total measurement thread count
      • getThreadGroupLabels

        public java.util.Collection<java.lang.String> getThreadGroupLabels()
        Returns:
        subgroup thread labels
        See Also:
        getThreadGroups()
      • getForks

        public int getForks()
        Returns:
        number of forked VM runs, which we measure
      • getWarmupForks

        public int getWarmupForks()
        Returns:
        number of forked VM runs, which we discard from the result
      • getMode

        public Mode getMode()
        Returns:
        benchmark mode
      • getBenchmark

        public java.lang.String getBenchmark()
        Returns:
        benchmark name
      • getTimeUnit

        public java.util.concurrent.TimeUnit getTimeUnit()
        Returns:
        timeUnit used in results
      • getOpsPerInvocation

        public int getOpsPerInvocation()
        Returns:
        operations per invocation used
      • getParamsKeys

        public java.util.Collection<java.lang.String> getParamsKeys()
        Returns:
        all workload parameters
      • getParam

        public java.lang.String getParam​(java.lang.String key)
        Parameters:
        key - parameter key; usually the field name
        Returns:
        parameter value for given key
      • generatedBenchmark

        public java.lang.String generatedBenchmark()
        Returns:
        generated benchmark name
      • getJvm

        public java.lang.String getJvm()
        Returns:
        JVM executable path
      • getJmhVersion

        public java.lang.String getJmhVersion()
        Returns:
        JMH version identical to Version.getPlainVersion(), but output format should get there input via bean for testing purposes.
      • getJvmArgs

        public java.util.Collection<java.lang.String> getJvmArgs()
        Returns:
        JVM options
      • getJdkVersion

        public java.lang.String getJdkVersion()
        Returns:
        version information as returned by the effective target JVM, via system property java.version and java.vm.version
      • getVmVersion

        public java.lang.String getVmVersion()
        Returns:
        version information as returned by the effective target JVM, via system property java.vm.version
      • getVmName

        public java.lang.String getVmName()
        Returns:
        name information as returned by the effective target JVM, via system property java.vm.name
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • id

        public java.lang.String id()