changeset 1023:9237036291e9

7901033: Make @Timeout annotations
author shade
date Thu, 06 Nov 2014 15:52:35 +0300
parents 2cfeed0767c5
children 9cc12a0ce88d
files jmh-core/src/main/java/org/openjdk/jmh/annotations/Timeout.java jmh-core/src/main/java/org/openjdk/jmh/generators/core/BenchmarkGenerator.java jmh-core/src/main/java/org/openjdk/jmh/generators/core/MethodGroup.java jmh-core/src/main/java/org/openjdk/jmh/runner/BenchmarkListEntry.java jmh-core/src/main/java/org/openjdk/jmh/runner/Runner.java jmh-core/src/test/resources/org/openjdk/jmh/runner/MicroBenchmarks
diffstat 6 files changed, 104 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/main/java/org/openjdk/jmh/annotations/Timeout.java	Thu Nov 06 15:52:35 2014 +0300
@@ -0,0 +1,53 @@
+/*
+ * 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.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * <p>Timeout annotation allows to set the default timeout parameters for the benchmark.</p>
+ *
+ * <p>This annotation may be put at {@link org.openjdk.jmh.annotations.Benchmark} method to have effect on that method
+ * only, or at the enclosing class instance to have the effect over all {@link org.openjdk.jmh.annotations.Benchmark}
+ * methods in the class. This annotation may be overridden with the runtime options.</p>
+ */
+@Target({ElementType.METHOD,ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface Timeout {
+
+    /** @return Timeout for each iteration */
+    int time();
+
+    /** @return Time unit for timeout duration */
+    TimeUnit timeUnit() default TimeUnit.SECONDS;
+
+}
+
--- a/jmh-core/src/main/java/org/openjdk/jmh/generators/core/BenchmarkGenerator.java	Tue Nov 04 02:08:02 2014 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/generators/core/BenchmarkGenerator.java	Thu Nov 06 15:52:35 2014 +0300
@@ -178,7 +178,8 @@
                             group.getJvmArgsAppend(),
                             group.getParams(),
                             group.getOutputTimeUnit(),
-                            group.getOperationsPerInvocation()
+                            group.getOperationsPerInvocation(),
+                            group.getTimeout()
                     );
                     writer.println(br.toLine());
                 }
--- a/jmh-core/src/main/java/org/openjdk/jmh/generators/core/MethodGroup.java	Tue Nov 04 02:08:02 2014 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/generators/core/MethodGroup.java	Thu Nov 06 15:52:35 2014 +0300
@@ -31,6 +31,7 @@
 import org.openjdk.jmh.annotations.OutputTimeUnit;
 import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Threads;
+import org.openjdk.jmh.annotations.Timeout;
 import org.openjdk.jmh.annotations.Warmup;
 import org.openjdk.jmh.runner.options.TimeValue;
 import org.openjdk.jmh.util.Optional;
@@ -248,6 +249,14 @@
         return Optional.none();
     }
 
+    public Optional<TimeValue> getTimeout() {
+        Timeout ann = getFinal(Timeout.class);
+        if (ann != null) {
+            return Optional.of(new TimeValue(ann.time(), ann.timeUnit()));
+        }
+        return Optional.none();
+    }
+
     private <T extends Annotation> T getFinal(Class<T> annClass) {
         T finalAnn = null;
         for (MethodInvocation mi : methods) {
--- a/jmh-core/src/main/java/org/openjdk/jmh/runner/BenchmarkListEntry.java	Tue Nov 04 02:08:02 2014 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/runner/BenchmarkListEntry.java	Thu Nov 06 15:52:35 2014 +0300
@@ -59,6 +59,7 @@
     private final Optional<Map<String, String[]>> params;
     private final Optional<TimeUnit> tu;
     private final Optional<Integer> opsPerInvocation;
+    private final Optional<TimeValue> timeout;
 
     private WorkloadParams workloadParams;
 
@@ -67,7 +68,8 @@
                               Optional<Integer> measurementIterations, Optional<TimeValue> measurementTime, Optional<Integer> measurementBatchSize,
                               Optional<Integer> forks, Optional<Integer> warmupForks,
                               Optional<String> jvm, Optional<Collection<String>> jvmArgs, Optional<Collection<String>> jvmArgsPrepend, Optional<Collection<String>> jvmArgsAppend,
-                              Optional<Map<String, String[]>> params, Optional<TimeUnit> tu, Optional<Integer> opsPerInv) {
+                              Optional<Map<String, String[]>> params, Optional<TimeUnit> tu, Optional<Integer> opsPerInv,
+                              Optional<TimeValue> timeout) {
         this.userName = userName;
         this.generatedName = generatedName;
         this.mode = mode;
@@ -89,12 +91,13 @@
         this.workloadParams = new WorkloadParams();
         this.tu = tu;
         this.opsPerInvocation = opsPerInv;
+        this.timeout = timeout;
     }
 
     public BenchmarkListEntry(String line) {
         String[] args = line.split(BR_SEPARATOR);
 
-        if (args.length != 20) {
+        if (args.length != 21) {
             throw new IllegalStateException("Mismatched format for the line: " + line);
         }
 
@@ -119,6 +122,7 @@
         this.params = Optional.of(args[17], PARAM_COLLECTION_UNMARSHALLER);
         this.tu = Optional.of(args[18], TIMEUNIT_UNMARSHALLER);
         this.opsPerInvocation = Optional.of(args[19], INTEGER_UNMARSHALLER);
+        this.timeout = Optional.of(args[20], TIME_VALUE_UNMARSHALLER);
     }
 
     public BenchmarkListEntry(String userName, String generatedName, Mode mode) {
@@ -126,7 +130,8 @@
                 Optional.<Integer>none(), Optional.<TimeValue>none(), Optional.<Integer>none(), Optional.<Integer>none(), Optional.<TimeValue>none(), Optional.<Integer>none(),
                 Optional.<Integer>none(), Optional.<Integer>none(),
                 Optional.<String>none(), Optional.<Collection<String>>none(), Optional.<Collection<String>>none(), Optional.<Collection<String>>none(),
-                Optional.<Map<String, String[]>>none(), Optional.<TimeUnit>none(), Optional.<Integer>none());
+                Optional.<Map<String, String[]>>none(), Optional.<TimeUnit>none(), Optional.<Integer>none(),
+                Optional.<TimeValue>none());
     }
 
     public String toLine() {
@@ -139,7 +144,8 @@
                 jvmArgsPrepend.toString(STRING_COLLECTION_MARSHALLER) + BR_SEPARATOR +
                 jvmArgsAppend.toString(STRING_COLLECTION_MARSHALLER) + BR_SEPARATOR +
                 params.toString(PARAM_COLLECTION_MARSHALLER) + BR_SEPARATOR + tu.toString(TIMEUNIT_MARSHALLER) + BR_SEPARATOR +
-                opsPerInvocation;
+                opsPerInvocation + BR_SEPARATOR +
+                timeout;
     }
 
     public BenchmarkListEntry cloneWith(Mode mode) {
@@ -148,7 +154,8 @@
                 measurementIterations, measurementTime, measurementBatchSize,
                 forks, warmupForks,
                 jvm, jvmArgs, jvmArgsPrepend, jvmArgsAppend,
-                params, tu, opsPerInvocation);
+                params, tu, opsPerInvocation,
+                timeout);
     }
 
     public BenchmarkListEntry cloneWith(WorkloadParams p) {
@@ -157,7 +164,8 @@
                 measurementIterations, measurementTime, measurementBatchSize,
                 forks, warmupForks,
                 jvm, jvmArgs, jvmArgsPrepend, jvmArgsAppend,
-                params, tu, opsPerInvocation);
+                params, tu, opsPerInvocation,
+                timeout);
         br.workloadParams = p;
         return br;
     }
@@ -297,6 +305,10 @@
         return opsPerInvocation;
     }
 
+    public Optional<TimeValue> getTimeout() {
+        return timeout;
+    }
+
     static final Optional.Unmarshaller<Integer> INTEGER_UNMARSHALLER = new Optional.Unmarshaller<Integer>() {
         @Override
         public Integer valueOf(String s) {
--- a/jmh-core/src/main/java/org/openjdk/jmh/runner/Runner.java	Tue Nov 04 02:08:02 2014 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/runner/Runner.java	Thu Nov 06 15:52:35 2014 +0300
@@ -462,7 +462,7 @@
                 benchmark.getJvmArgsAppend().orElse(Collections.<String>emptyList())));
 
         TimeValue timeout = options.getTimeout().orElse(
-                Defaults.TIMEOUT);
+                benchmark.getTimeout().orElse(Defaults.TIMEOUT));
 
         return new BenchmarkParams(benchmark.getUsername(), benchmark.generatedTarget(), synchIterations,
                 threads, threadGroups, forks, warmupForks,
--- a/jmh-core/src/test/resources/org/openjdk/jmh/runner/MicroBenchmarks	Tue Nov 04 02:08:02 2014 +0300
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/runner/MicroBenchmarks	Thu Nov 06 15:52:35 2014 +0300
@@ -23,25 +23,25 @@
 #
 
 
-oracle.micro.benchmarks.api.java.util.concurrent.NormalMaps.testConcurrentHashMap===,===oracle.micro.benchmarks.api.java.util.concurrent.generated.NormalMaps.testConcurrentHashMap===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.api.java.util.concurrent.NormalMaps.testConcurrentHashMap===,===oracle.micro.benchmarks.api.java.util.concurrent.generated.NormalMaps.testConcurrentHashMapThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetInt===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntGC===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntGCThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetInteger===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntegerThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetInt===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetIntThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetInteger===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetIntegerThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.sjent.GeneratedPrintBase64.printBase64Binary_128bytes===,===oracle.micro.benchmarks.app.sjent.generated.GeneratedPrintBase64.printBase64Binary_128bytesThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.sjent.GeneratedPrintBase64.printBase64Binary_32bytes===,===oracle.micro.benchmarks.app.sjent.generated.GeneratedPrintBase64.printBase64Binary_32bytesThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.app.sjent.GeneratedPrintBase64.printBase64Binary_512bytes===,===oracle.micro.benchmarks.app.sjent.generated.GeneratedPrintBase64.printBase64Binary_512bytesThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-oracle.micro.benchmarks.api.java.util.concurrent.GeneratedMaps.testConcurrentHashMap===,===oracle.micro.benchmarks.api.java.util.concurrent.generated.GeneratedMaps.testConcurrentHashMapThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
+oracle.micro.benchmarks.api.java.util.concurrent.NormalMaps.testConcurrentHashMap===,===oracle.micro.benchmarks.api.java.util.concurrent.generated.NormalMaps.testConcurrentHashMap===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.api.java.util.concurrent.NormalMaps.testConcurrentHashMap===,===oracle.micro.benchmarks.api.java.util.concurrent.generated.NormalMaps.testConcurrentHashMapThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetInt===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntGC===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntGCThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetInteger===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005HashMapGetIntegerThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetInt===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetIntThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.jbb05.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetInteger===,===oracle.micro.benchmarks.app.jbb05.generated.GeneratedSPECjbb2005HashMap.jbb2005ResizedHashMapGetIntegerThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.sjent.GeneratedPrintBase64.printBase64Binary_128bytes===,===oracle.micro.benchmarks.app.sjent.generated.GeneratedPrintBase64.printBase64Binary_128bytesThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.sjent.GeneratedPrintBase64.printBase64Binary_32bytes===,===oracle.micro.benchmarks.app.sjent.generated.GeneratedPrintBase64.printBase64Binary_32bytesThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.app.sjent.GeneratedPrintBase64.printBase64Binary_512bytes===,===oracle.micro.benchmarks.app.sjent.generated.GeneratedPrintBase64.printBase64Binary_512bytesThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+oracle.micro.benchmarks.api.java.util.concurrent.GeneratedMaps.testConcurrentHashMap===,===oracle.micro.benchmarks.api.java.util.concurrent.generated.GeneratedMaps.testConcurrentHashMapThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
 
-org.openjdk.jmh.runner.TestMicro.dummy===,===org.openjdk.jmh.runner.generated.TestMicro.dummyThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.dummyWarm===,===org.openjdk.jmh.runner.generated.TestMicro.dummyWarmThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.dummyWarmOnly===,===org.openjdk.jmh.runner.generated.TestMicro.dummyWarmOnlyThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.dummySetupPayload===,===org.openjdk.jmh.runner.generated.TestMicro.dummySetupPayloadThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.boom_Exception===,===org.openjdk.jmh.runner.generated.TestMicro.boom_ExceptionThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.boom_Error===,===org.openjdk.jmh.runner.generated.TestMicro.boom_ErrorThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.boom_Throwable===,===org.openjdk.jmh.runner.generated.TestMicro.boom_ThrowableThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestMicro.blackholed===,===org.openjdk.jmh.runner.generated.TestMicro.blackholedThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestBrokenMicro.dummyPayload===,===org.openjdk.jmh.runner.generated.TestBrokenMicro.dummyPayloadThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
-org.openjdk.jmh.runner.TestExceptionThrowingMicro.ouch===,===org.openjdk.jmh.runner.generated.TestExceptionThrowingMicro.ouchThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]
+org.openjdk.jmh.runner.TestMicro.dummy===,===org.openjdk.jmh.runner.generated.TestMicro.dummyThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.dummyWarm===,===org.openjdk.jmh.runner.generated.TestMicro.dummyWarmThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.dummyWarmOnly===,===org.openjdk.jmh.runner.generated.TestMicro.dummyWarmOnlyThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.dummySetupPayload===,===org.openjdk.jmh.runner.generated.TestMicro.dummySetupPayloadThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.boom_Exception===,===org.openjdk.jmh.runner.generated.TestMicro.boom_ExceptionThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.boom_Error===,===org.openjdk.jmh.runner.generated.TestMicro.boom_ErrorThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.boom_Throwable===,===org.openjdk.jmh.runner.generated.TestMicro.boom_ThrowableThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestMicro.blackholed===,===org.openjdk.jmh.runner.generated.TestMicro.blackholedThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestBrokenMicro.dummyPayload===,===org.openjdk.jmh.runner.generated.TestBrokenMicro.dummyPayloadThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]
+org.openjdk.jmh.runner.TestExceptionThrowingMicro.ouch===,===org.openjdk.jmh.runner.generated.TestExceptionThrowingMicro.ouchThroughput===,===AverageTime===,===1====,===[4]===,===[5]===,===[1 s]===,===[]===,===[5]===,===[4 s]===,===[]===,===[1]===,===[]===,===[]===,===[]===,===[]===,===[]===,===[prefixLen===SEP-K===0===SEP-V===10===SEP-V===100===SEP-V======PAIR-SEP===]===,===[NANOSECONDS]===,===[]===,===[10 min]