< prev index next >

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

Print this page

 23 
 24 package org.openjdk.bench.java.lang.foreign;
 25 
 26 import java.lang.foreign.*;
 27 import java.lang.foreign.Arena;
 28 import java.lang.invoke.VarHandle;
 29 import org.openjdk.jmh.annotations.*;
 30 import org.openjdk.jmh.runner.Runner;
 31 import org.openjdk.jmh.runner.options.Options;
 32 import org.openjdk.jmh.runner.options.OptionsBuilder;
 33 import sun.misc.Unsafe;
 34 import java.util.concurrent.TimeUnit;
 35 
 36 import static java.lang.foreign.ValueLayout.*;
 37 
 38 @BenchmarkMode(Mode.AverageTime)
 39 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
 40 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
 41 @State(org.openjdk.jmh.annotations.Scope.Thread)
 42 @OutputTimeUnit(TimeUnit.MICROSECONDS)
 43 @Fork(value = 3, jvmArgsAppend = { "--enable-preview", "--enable-native-access=ALL-UNNAMED" })
 44 public class UnrolledAccess extends JavaLayouts {
 45 
 46     static final Unsafe U = Utils.unsafe;
 47 
 48     static final VarHandle VH_LONG_UNALIGNED = JAVA_LONG_UNALIGNED.arrayElementVarHandle();
 49 
 50     static final VarHandle VH_LONG = JAVA_LONG.arrayElementVarHandle();
 51 
 52     final static int SIZE = 1024;
 53 
 54     @State(Scope.Benchmark)
 55     public static class Data {
 56 
 57         final double[] inputArray;
 58         final double[] outputArray;
 59         final long inputAddress;
 60         final long outputAddress;
 61         final MemorySegment inputSegment;
 62         final MemorySegment outputSegment;
 63 
 64 
 65         public Data() {
 66             this.inputArray = new double[SIZE];
 67             this.outputArray = new double[SIZE];
 68             this.inputAddress = U.allocateMemory(8 * SIZE);
 69             this.outputAddress = U.allocateMemory(8 * SIZE);
 70             this.inputSegment = MemorySegment.ofAddress(inputAddress)
 71                     .reinterpret(8*SIZE);

 23 
 24 package org.openjdk.bench.java.lang.foreign;
 25 
 26 import java.lang.foreign.*;
 27 import java.lang.foreign.Arena;
 28 import java.lang.invoke.VarHandle;
 29 import org.openjdk.jmh.annotations.*;
 30 import org.openjdk.jmh.runner.Runner;
 31 import org.openjdk.jmh.runner.options.Options;
 32 import org.openjdk.jmh.runner.options.OptionsBuilder;
 33 import sun.misc.Unsafe;
 34 import java.util.concurrent.TimeUnit;
 35 
 36 import static java.lang.foreign.ValueLayout.*;
 37 
 38 @BenchmarkMode(Mode.AverageTime)
 39 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
 40 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
 41 @State(org.openjdk.jmh.annotations.Scope.Thread)
 42 @OutputTimeUnit(TimeUnit.MICROSECONDS)
 43 @Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" })
 44 public class UnrolledAccess extends JavaLayouts {
 45 
 46     static final Unsafe U = Utils.unsafe;
 47 




 48     final static int SIZE = 1024;
 49 
 50     @State(Scope.Benchmark)
 51     public static class Data {
 52 
 53         final double[] inputArray;
 54         final double[] outputArray;
 55         final long inputAddress;
 56         final long outputAddress;
 57         final MemorySegment inputSegment;
 58         final MemorySegment outputSegment;
 59 
 60 
 61         public Data() {
 62             this.inputArray = new double[SIZE];
 63             this.outputArray = new double[SIZE];
 64             this.inputAddress = U.allocateMemory(8 * SIZE);
 65             this.outputAddress = U.allocateMemory(8 * SIZE);
 66             this.inputSegment = MemorySegment.ofAddress(inputAddress)
 67                     .reinterpret(8*SIZE);
< prev index next >