/*
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.openjdk.jmh.runner.options;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.results.format.ResultFormatType;
import org.openjdk.jmh.util.Optional;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;
public interface Options extends Serializable {
Which benchmarks to execute?
Returns: list of regexps matching the requested benchmarks
/**
* Which benchmarks to execute?
* @return list of regexps matching the requested benchmarks
*/
List<String> getIncludes();
Which benchmarks to omit?
Returns: list of regexps matching the ignored benchmarks
/**
* Which benchmarks to omit?
* @return list of regexps matching the ignored benchmarks
*/
List<String> getExcludes();
Which file to use for dumping the output
Returns: file name
/**
* Which file to use for dumping the output
* @return file name
*/
Optional<String> getOutput();
Result format to use
Returns: format type
/**
* Result format to use
* @return format type
*/
Optional<ResultFormatType> getResultFormat();
Which file to use for dumping the result
Returns: file name
/**
* Which file to use for dumping the result
* @return file name
*/
Optional<String> getResult();
Should force GC between iterations?
Returns: should GC?
/**
* Should force GC between iterations?
* @return should GC?
*/
Optional<Boolean> shouldDoGC();
Profilers to use for the run.
Profilers will start in the order specified by collection, and will stop in the reverse order.
Returns: profilers to use; empty collection if no profilers are required
/**
* Profilers to use for the run.
* Profilers will start in the order specified by collection, and will stop in the reverse order.
* @return profilers to use; empty collection if no profilers are required
*/
List<ProfilerConfig> getProfilers();
How verbose should we be?
Returns: verbosity mode
/**
* How verbose should we be?
* @return verbosity mode
*/
Optional<VerboseMode> verbosity();
Should harness terminate on first error encountered?
Returns: should terminate?
/**
* Should harness terminate on first error encountered?
* @return should terminate?
*/
Optional<Boolean> shouldFailOnError();
Number of threads to run
See Also: Returns: number of threads; 0 to use maximum number of threads
/**
* Number of threads to run
* @return number of threads; 0 to use maximum number of threads
* @see org.openjdk.jmh.annotations.Threads
*/
Optional<Integer> getThreads();
Thread subgroups distribution.
See Also: Returns: array of thread ratios
/**
* Thread subgroups distribution.
* @return array of thread ratios
* @see org.openjdk.jmh.annotations.Group
* @see org.openjdk.jmh.annotations.GroupThreads
*/
Optional<int[]> getThreadGroups();
Should synchronize iterations?
Returns: should we?
/**
* Should synchronize iterations?
* @return should we?
*/
Optional<Boolean> shouldSyncIterations();
Number of warmup iterations
See Also: Returns: number of warmup iterations
/**
* Number of warmup iterations
* @return number of warmup iterations
* @see org.openjdk.jmh.annotations.Warmup
*/
Optional<Integer> getWarmupIterations();
The duration for warmup iterations
See Also: Returns: duration
/**
* The duration for warmup iterations
* @return duration
* @see org.openjdk.jmh.annotations.Warmup
*/
Optional<TimeValue> getWarmupTime();
Number of batch size for warmup
See Also: Returns: number of batch size for warmup
/**
* Number of batch size for warmup
* @return number of batch size for warmup
* @see org.openjdk.jmh.annotations.Warmup
*/
Optional<Integer> getWarmupBatchSize();
Warmup mode.
See Also: Returns: warmup mode
/**
* Warmup mode.
* @return warmup mode
* @see org.openjdk.jmh.runner.options.WarmupMode
*/
Optional<WarmupMode> getWarmupMode();
Which benchmarks to warmup before doing the run.
Returns: list of regexps matching the relevant benchmarks; empty if no benchmarks are defined
/**
* Which benchmarks to warmup before doing the run.
* @return list of regexps matching the relevant benchmarks; empty if no benchmarks are defined
*/
List<String> getWarmupIncludes();
Number of measurement iterations
See Also: Returns: number of measurement iterations
/**
* Number of measurement iterations
* @return number of measurement iterations
* @see org.openjdk.jmh.annotations.Measurement
*/
Optional<Integer> getMeasurementIterations();
The duration for measurement iterations
See Also: Returns: duration
/**
* The duration for measurement iterations
* @return duration
* @see org.openjdk.jmh.annotations.Measurement
*/
Optional<TimeValue> getMeasurementTime();
Number of batch size for measurement
See Also: Returns: number of batch size for measurement
/**
* Number of batch size for measurement
* @return number of batch size for measurement
* @see org.openjdk.jmh.annotations.Measurement
*/
Optional<Integer> getMeasurementBatchSize();
Benchmarks modes to execute.
See Also: Returns: modes to execute the benchmarks in; empty to use the default modes
/**
* Benchmarks modes to execute.
* @return modes to execute the benchmarks in; empty to use the default modes
* @see org.openjdk.jmh.annotations.BenchmarkMode
*/
Collection<Mode> getBenchModes();
Timeunit to use in units.
See Also: Returns: timeunit
/**
* Timeunit to use in units.
* @return timeunit
* @see org.openjdk.jmh.annotations.OutputTimeUnit
*/
Optional<TimeUnit> getTimeUnit();
Operations per invocation.
See Also: Returns: operations per invocation.
/**
* Operations per invocation.
* @return operations per invocation.
* @see org.openjdk.jmh.annotations.OperationsPerInvocation
*/
Optional<Integer> getOperationsPerInvocation();
Fork count
See Also: Returns: fork count; 0, to prohibit forking
/**
* Fork count
* @return fork count; 0, to prohibit forking
* @see org.openjdk.jmh.annotations.Fork
*/
Optional<Integer> getForkCount();
Number of initial forks to ignore the results for
See Also: Returns: initial fork count; 0, to disable
/**
* Number of initial forks to ignore the results for
* @return initial fork count; 0, to disable
* @see org.openjdk.jmh.annotations.Fork
*/
Optional<Integer> getWarmupForkCount();
JVM executable to use for forks
Returns: path to JVM executable
/**
* JVM executable to use for forks
* @return path to JVM executable
*/
Optional<String> getJvm();
JVM parameters to use with forks
See Also: Returns: JVM parameters
/**
* JVM parameters to use with forks
* @return JVM parameters
* @see org.openjdk.jmh.annotations.Fork
*/
Optional<Collection<String>> getJvmArgs();
JVM parameters to use with forks (these options will be appended
after any other JVM option)
See Also: Returns: JVM parameters
/**
* JVM parameters to use with forks (these options will be appended
* after any other JVM option)
* @return JVM parameters
* @see org.openjdk.jmh.annotations.Fork
*/
Optional<Collection<String>> getJvmArgsAppend();
JVM parameters to use with forks (these options will be prepended
before any other JVM option)
See Also: Returns: JVM parameters
/**
* JVM parameters to use with forks (these options will be prepended
* before any other JVM option)
* @return JVM parameters
* @see org.openjdk.jmh.annotations.Fork
*/
Optional<Collection<String>> getJvmArgsPrepend();
The overridden value of the parameter.
Params: - name – parameter name
See Also: Returns: parameter
/**
* The overridden value of the parameter.
* @param name parameter name
* @return parameter
* @see org.openjdk.jmh.annotations.Param
*/
Optional<Collection<String>> getParameter(String name);
Timeout: how long to wait for an iteration to complete.
Returns: duration
/**
* Timeout: how long to wait for an iteration to complete.
* @return duration
*/
Optional<TimeValue> getTimeout();
}