我有一个ArrayList包含5000万个对象,我想要测量将这么多对象存储在其中所需的时间。看起来所有JMH模式都是基于时间的,我们无法真正控制@Benchmark下的代码执行次数。例如,如何确保以下代码在每个分叉中精确地运行50M次?
@Benchmark
@BenchmarkMode(Mode.SampleTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Fork(5)
public void run(BenchmarkState state) {
try {
state.queue.add(System.nanoTime());
} catch (Exception e) {
e.printStackTrace();
}
}