1 package org.openjdk.bench.vm.gc.barriers.reads;
 2 
 3 import org.openjdk.jmh.annotations.*;
 4 import org.openjdk.jmh.infra.Blackhole;
 5 
 6 import java.util.concurrent.TimeUnit;
 7 
 8 @Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS)
 9 @Measurement(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS)
10 @Fork(3)
11 @BenchmarkMode(Mode.AverageTime)
12 @OutputTimeUnit(TimeUnit.NANOSECONDS)
13 @State(Scope.Thread)
14 public class RefArray {
15 
16     @Param({"1", "1000", "1000000", "1000000000"})
17     private int size;
18 
19     Object[] src;
20 
21     @Setup
22     public void setup() {
23         src = new Object[size];
24         for (int i = 0; i < size; i++) {
25             src[i] = new Object();
26         }
27     }
28 
29     @Benchmark
30     @CompilerControl(CompilerControl.Mode.DONT_INLINE)
31     public void plain(Blackhole bh) {
32         for (Object t : src) {
33             bh.consume(t);
34         }
35     }
36 
37 }