< prev index next >

test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java

Print this page

26 import java.lang.foreign.MemorySegment;
27 
28 import org.openjdk.jmh.annotations.Benchmark;
29 import org.openjdk.jmh.annotations.BenchmarkMode;
30 import org.openjdk.jmh.annotations.Fork;
31 import org.openjdk.jmh.annotations.Measurement;
32 import org.openjdk.jmh.annotations.Mode;
33 import org.openjdk.jmh.annotations.OutputTimeUnit;
34 import org.openjdk.jmh.annotations.Setup;
35 import org.openjdk.jmh.annotations.State;
36 import org.openjdk.jmh.annotations.TearDown;
37 import org.openjdk.jmh.annotations.Warmup;
38 
39 import java.util.concurrent.TimeUnit;
40 
41 @BenchmarkMode(Mode.AverageTime)
42 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
43 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
44 @State(org.openjdk.jmh.annotations.Scope.Thread)
45 @OutputTimeUnit(TimeUnit.MILLISECONDS)
46 @Fork(value = 3, jvmArgsAppend = "--enable-preview")
47 public class LoopOverOfAddress extends JavaLayouts {
48 
49     static final int ITERATIONS = 1_000_000;
50 
51     @Benchmark
52     public long segment_loop_addr() {
53         long res = 0;
54         for (int i = 0; i < ITERATIONS; i++) {
55             res += MemorySegment.ofAddress(i % 100).address();
56         }
57         return res;
58     }
59 
60     @Benchmark
61     public long segment_loop_addr_size() {
62         long res = 0;
63         for (int i = 0; i < ITERATIONS; i++) {
64             res += MemorySegment.ofAddress(i)
65                     .reinterpret(i % 100).address();
66         }

26 import java.lang.foreign.MemorySegment;
27 
28 import org.openjdk.jmh.annotations.Benchmark;
29 import org.openjdk.jmh.annotations.BenchmarkMode;
30 import org.openjdk.jmh.annotations.Fork;
31 import org.openjdk.jmh.annotations.Measurement;
32 import org.openjdk.jmh.annotations.Mode;
33 import org.openjdk.jmh.annotations.OutputTimeUnit;
34 import org.openjdk.jmh.annotations.Setup;
35 import org.openjdk.jmh.annotations.State;
36 import org.openjdk.jmh.annotations.TearDown;
37 import org.openjdk.jmh.annotations.Warmup;
38 
39 import java.util.concurrent.TimeUnit;
40 
41 @BenchmarkMode(Mode.AverageTime)
42 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
43 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
44 @State(org.openjdk.jmh.annotations.Scope.Thread)
45 @OutputTimeUnit(TimeUnit.MILLISECONDS)
46 @Fork(3)
47 public class LoopOverOfAddress extends JavaLayouts {
48 
49     static final int ITERATIONS = 1_000_000;
50 
51     @Benchmark
52     public long segment_loop_addr() {
53         long res = 0;
54         for (int i = 0; i < ITERATIONS; i++) {
55             res += MemorySegment.ofAddress(i % 100).address();
56         }
57         return res;
58     }
59 
60     @Benchmark
61     public long segment_loop_addr_size() {
62         long res = 0;
63         for (int i = 0; i < ITERATIONS; i++) {
64             res += MemorySegment.ofAddress(i)
65                     .reinterpret(i % 100).address();
66         }
< prev index next >