小编Ole*_*nko的帖子

JMH 如何测量粒度值以下的执行时间?

所以我正在尝试使用微基准测试,选择了 JMH,阅读了一些文章。JMH 如何测量低于系统计时器粒度的方法的执行情况?

更详细的解释:

这些是我正在运行的基准测试(方法名称不言自明):

import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;

import java.util.concurrent.TimeUnit;

@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@State(Scope.Thread)
@Warmup(iterations = 10, time = 200, timeUnit = TimeUnit.NANOSECONDS)
@Measurement(iterations = 20, time = 200, timeUnit = TimeUnit.NANOSECONDS)
public class RandomBenchmark {

    public long lastValue;

    @Benchmark
    @Fork(1)
    public void blankMethod() {
    }

    @Benchmark
    @Fork(1)
    public void simpleMethod(Blackhole blackhole) {
        int i = 0;
        blackhole.consume(i++);
    }

    @Benchmark
    @Fork(1)
    public void granularityMethod(Blackhole blackhole) {
        long initialTime = System.nanoTime();
        long measuredTime;
        do {
            measuredTime = System.nanoTime();
        } while …
Run Code Online (Sandbox Code Playgroud)

java jmh

6
推荐指数
1
解决办法
1865
查看次数

标签 统计

java ×1

jmh ×1