首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMH脚本->,例如集迭代(5)

JMH脚本->,例如集迭代(5)
EN

Stack Overflow用户
提问于 2016-03-22 11:12:41
回答 1查看 634关注 0票数 2

当我开始我的基准测试时,我将只有5 warmupInterations,5 measurementIterations和只有1叉。我不想使用命令行选项!

代码语言:javascript
复制
**my test code in Eclipse:**

package org.sample;

import java.util.concurrent.TimeUnit;

import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;

public class MyBenchmark {

    @Benchmark @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS)
    public String[] testMethod() {
        return "1,2,3,4,5,6,7,8,9,10".split(",");
    }


    public static void main(String[] args) throws RunnerException {
        Options opt = new OptionsBuilder()
                .include(MyBenchmark.class.getSimpleName())
                .warmupIterations(5)
                .measurementIterations(5)
                .forks(1)
                .build();

        new Runner(opt).run();
    }

}

然后我说

代码语言:javascript
复制
mvn clean install
java -jar benchmark.jar

我得到的输出和往常一样(没有改变的迭代或分叉!)

代码语言:javascript
复制
C:\Users\SPARK\Desktop\workspace\jmhBenchmark\target>java -jar benchmarks.jar
# JMH 1.11.3 (released 68 days ago)
# VM version: JDK 1.8.0_74, VM 25.74-b02
# VM invoker: C:\Program Files\Java\jre1.8.0_74\bin\java.exe
# VM options: <none>
# Warmup: 20 iterations, 1 s each
# Measurement: 20 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: org.sample.MyBenchmark.testMethod

# Run progress: 0,00% complete, ETA 00:06:40
# Fork: 1 of 10
# Warmup Iteration   1: 2108087,328 ops/s
# Warmup Iteration   2: 2435219,249 ops/s
# Warmup Iteration   3: 2589289,173 ops/s
# Warmup Iteration   4: 2606293,767 ops/s
# Warmup Iteration   5: 2548095,405 ops/s
# Warmup Iteration   6: 2594874,969 ops/s
# Warmup Iteration   7: 2583629,760 ops/s
# Warmup Iteration   8: 2579041,971 ops/s
# Warmup Iteration   9: 2580402,155 ops/s
# Warmup Iteration  10: 2546640,733 ops/s
# Warmup Iteration  11: 2580002,548 ops/s
# Warmup Iteration  12:

我做错什么了??

非常感谢你的阅读

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-23 07:47:18

通过执行java -jar benchmark.jar,使用默认的JMH设置执行测试。

如果要使用OptionsBuilder指定的设置运行测试,请执行以下操作。您必须以java -cp benchmark.jar org.sample.MyBenchmark的身份运行它。

在下面找到一个完整的例子。

代码语言:javascript
复制
mvn archetype:generate \
    -DarchetypeGroupId=org.openjdk.jmh \
    -DarchetypeArtifactId=jmh-java-benchmark-archetype \
    -DgroupId=org.sample \
    -DartifactId=jmh-example \
    -Dversion=0.0.1 \
    -DinteractiveMode=false 

用源代码替换文件src/main/java/org/sample/MyBenchmark.java

执行java -jar target/benchamrks.jar使用下列设置

代码语言:javascript
复制
# VM options: <none>
# Warmup: 20 iterations, 1 s each
# Measurement: 20 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: org.sample.MyBenchmark.testMethod
...
# Fork: 1 of 10

执行java -cp target/benchmarks.jar org.sample.MyBenchmark使用下列设置

代码语言:javascript
复制
# VM options: <none>
# Warmup: 5 iterations, 1 s each
# Measurement: 5 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: org.sample.MyBenchmark.testMethod
...
# Fork: 1 of 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36152872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档