对JMH Benchmark的基本了解

Basic understanding of JMH Benchmark

我有这样的 spring class:

@Component
@State(Scope.Thread)
public class CalculatorImpl implements Calculator {

    public CalculatorImpl() {
        System.out.println("Phase 1");
    }

    @PostConstruct
    @Benchmark
    public void init() {
        System.out.println("Phase 2");
    }
}

我添加了 required maven dependencies and plugin 和 运行 它:

java -jar target/benchmarks.jar

我的 "Phase 2" 打印进入无限循环。基本上,我只想要 helloworld 示例。我做错了什么?谢谢你的时间。

请参阅此处的 hello world 示例 http://hg.openjdk.java.net/code-tools/jmh/file/7a25c71b43bf/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_01_HelloWorld.java

我想,在你的情况下,你得到的不是无限循环,而是很长的调用,可能会受到终端打印行速度的限制或超时。 首先尝试对空方法进行基准测试。