1 package org.openjdk.bench.vm.gc.barriers.reads;
2
3 import org.openjdk.jmh.annotations.*;
4 import java.lang.ref.WeakReference;
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 WeakRef {
15
16 WeakReference<Target> src;
17
18 @Setup
19 public void setup() {
20 src = new WeakReference<>(new Target());
21 }
22
23 @Benchmark
24 @CompilerControl(CompilerControl.Mode.DONT_INLINE)
25 public Object test_ref() {
26 return src.get();
27 }
28
29 static class Target {
30 int dummy;
31 }
32 }