30 import org.openjdk.jmh.annotations.BenchmarkMode;
31 import org.openjdk.jmh.annotations.Fork;
32 import org.openjdk.jmh.annotations.Measurement;
33 import org.openjdk.jmh.annotations.Mode;
34 import org.openjdk.jmh.annotations.OutputTimeUnit;
35 import org.openjdk.jmh.annotations.Setup;
36 import org.openjdk.jmh.annotations.State;
37 import org.openjdk.jmh.annotations.Warmup;
38
39 import java.lang.invoke.MethodHandle;
40 import java.lang.invoke.MethodHandles;
41 import java.lang.invoke.MethodType;
42 import java.lang.invoke.VarHandle;
43 import java.util.concurrent.TimeUnit;
44
45 @BenchmarkMode(Mode.AverageTime)
46 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
47 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
48 @State(org.openjdk.jmh.annotations.Scope.Thread)
49 @OutputTimeUnit(TimeUnit.MILLISECONDS)
50 @Fork(value = 3, jvmArgsAppend = "--enable-preview")
51 public class TestAdaptVarHandles extends JavaLayouts {
52
53 static class IntBox {
54
55 private final int value;
56
57 IntBox(int value) {
58 this.value = value;
59 }
60
61 int intValue() {
62 return value;
63 }
64 }
65
66 static final int ELEM_SIZE = 1_000_000;
67
68 static final MethodHandle INT_TO_INTBOX;
69 static final MethodHandle INTBOX_TO_INT;
70
|
30 import org.openjdk.jmh.annotations.BenchmarkMode;
31 import org.openjdk.jmh.annotations.Fork;
32 import org.openjdk.jmh.annotations.Measurement;
33 import org.openjdk.jmh.annotations.Mode;
34 import org.openjdk.jmh.annotations.OutputTimeUnit;
35 import org.openjdk.jmh.annotations.Setup;
36 import org.openjdk.jmh.annotations.State;
37 import org.openjdk.jmh.annotations.Warmup;
38
39 import java.lang.invoke.MethodHandle;
40 import java.lang.invoke.MethodHandles;
41 import java.lang.invoke.MethodType;
42 import java.lang.invoke.VarHandle;
43 import java.util.concurrent.TimeUnit;
44
45 @BenchmarkMode(Mode.AverageTime)
46 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
47 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
48 @State(org.openjdk.jmh.annotations.Scope.Thread)
49 @OutputTimeUnit(TimeUnit.MILLISECONDS)
50 @Fork(3)
51 public class TestAdaptVarHandles extends JavaLayouts {
52
53 static class IntBox {
54
55 private final int value;
56
57 IntBox(int value) {
58 this.value = value;
59 }
60
61 int intValue() {
62 return value;
63 }
64 }
65
66 static final int ELEM_SIZE = 1_000_000;
67
68 static final MethodHandle INT_TO_INTBOX;
69 static final MethodHandle INTBOX_TO_INT;
70
|