< prev index next >

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

Print this page

 26 import java.lang.foreign.*;
 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.TearDown;
 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.State;
 36 import org.openjdk.jmh.annotations.Warmup;
 37 
 38 import java.lang.invoke.MethodHandle;
 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.NANOSECONDS)
 46 @Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "--enable-preview" })
 47 public class PointerInvoke extends CLayouts {
 48 
 49     Arena arena = Arena.ofConfined();
 50     MemorySegment segment = arena.allocate(100, 1);
 51 
 52     static {
 53         System.loadLibrary("Ptr");
 54     }
 55 
 56     static final MethodHandle F_LONG_LONG, F_PTR_LONG, F_LONG_PTR, F_PTR_PTR;
 57 
 58     static {
 59         Linker abi = Linker.nativeLinker();
 60         SymbolLookup loaderLibs = SymbolLookup.loaderLookup();
 61         F_LONG_LONG = abi.downcallHandle(loaderLibs.find("id_long_long").get(),
 62                 FunctionDescriptor.of(C_LONG_LONG, C_LONG_LONG));
 63         F_PTR_LONG = abi.downcallHandle(loaderLibs.find("id_ptr_long").get(),
 64                 FunctionDescriptor.of(C_LONG_LONG, C_POINTER));
 65         F_LONG_PTR = abi.downcallHandle(loaderLibs.find("id_long_ptr").get(),
 66                 FunctionDescriptor.of(C_POINTER, C_LONG_LONG));

 26 import java.lang.foreign.*;
 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.TearDown;
 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.State;
 36 import org.openjdk.jmh.annotations.Warmup;
 37 
 38 import java.lang.invoke.MethodHandle;
 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.NANOSECONDS)
 46 @Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" })
 47 public class PointerInvoke extends CLayouts {
 48 
 49     Arena arena = Arena.ofConfined();
 50     MemorySegment segment = arena.allocate(100, 1);
 51 
 52     static {
 53         System.loadLibrary("Ptr");
 54     }
 55 
 56     static final MethodHandle F_LONG_LONG, F_PTR_LONG, F_LONG_PTR, F_PTR_PTR;
 57 
 58     static {
 59         Linker abi = Linker.nativeLinker();
 60         SymbolLookup loaderLibs = SymbolLookup.loaderLookup();
 61         F_LONG_LONG = abi.downcallHandle(loaderLibs.find("id_long_long").get(),
 62                 FunctionDescriptor.of(C_LONG_LONG, C_LONG_LONG));
 63         F_PTR_LONG = abi.downcallHandle(loaderLibs.find("id_ptr_long").get(),
 64                 FunctionDescriptor.of(C_LONG_LONG, C_POINTER));
 65         F_LONG_PTR = abi.downcallHandle(loaderLibs.find("id_long_ptr").get(),
 66                 FunctionDescriptor.of(C_POINTER, C_LONG_LONG));
< prev index next >