33 import org.openjdk.jmh.annotations.Mode;
34 import org.openjdk.jmh.annotations.OutputTimeUnit;
35 import org.openjdk.jmh.annotations.Param;
36 import org.openjdk.jmh.annotations.Setup;
37 import org.openjdk.jmh.annotations.State;
38 import org.openjdk.jmh.annotations.Warmup;
39
40 import java.lang.foreign.Arena;
41 import java.nio.ByteBuffer;
42 import java.util.concurrent.TimeUnit;
43
44 import static java.lang.foreign.ValueLayout.JAVA_BYTE;
45
46 @BenchmarkMode(Mode.AverageTime)
47 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
48 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
49 @State(org.openjdk.jmh.annotations.Scope.Thread)
50 @OutputTimeUnit(TimeUnit.NANOSECONDS)
51 @Fork(value = 1, jvmArgsAppend = {
52 "-Dforeign.restricted=permit",
53 "--enable-native-access", "ALL-UNNAMED",
54 "--enable-preview"})
55 public class TestLoadBytes {
56 @Param("1024")
57 private int size;
58
59 private byte[] srcArray;
60 private ByteBuffer srcBufferNative;
61 private MemorySegment srcSegmentImplicit;
62
63 @Setup
64 public void setup() {
65 srcArray = new byte[size];
66 for (int i = 0; i < srcArray.length; i++) {
67 srcArray[i] = (byte) i;
68 }
69
70 srcBufferNative = ByteBuffer.allocateDirect(size);
71 Arena scope = Arena.ofAuto();
72 srcSegmentImplicit = scope.allocate(size, 1);
73 }
74
|
33 import org.openjdk.jmh.annotations.Mode;
34 import org.openjdk.jmh.annotations.OutputTimeUnit;
35 import org.openjdk.jmh.annotations.Param;
36 import org.openjdk.jmh.annotations.Setup;
37 import org.openjdk.jmh.annotations.State;
38 import org.openjdk.jmh.annotations.Warmup;
39
40 import java.lang.foreign.Arena;
41 import java.nio.ByteBuffer;
42 import java.util.concurrent.TimeUnit;
43
44 import static java.lang.foreign.ValueLayout.JAVA_BYTE;
45
46 @BenchmarkMode(Mode.AverageTime)
47 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
48 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
49 @State(org.openjdk.jmh.annotations.Scope.Thread)
50 @OutputTimeUnit(TimeUnit.NANOSECONDS)
51 @Fork(value = 1, jvmArgsAppend = {
52 "-Dforeign.restricted=permit",
53 "--enable-native-access", "ALL-UNNAMED"})
54 public class TestLoadBytes {
55 @Param("1024")
56 private int size;
57
58 private byte[] srcArray;
59 private ByteBuffer srcBufferNative;
60 private MemorySegment srcSegmentImplicit;
61
62 @Setup
63 public void setup() {
64 srcArray = new byte[size];
65 for (int i = 0; i < srcArray.length; i++) {
66 srcArray[i] = (byte) i;
67 }
68
69 srcBufferNative = ByteBuffer.allocateDirect(size);
70 Arena scope = Arena.ofAuto();
71 srcSegmentImplicit = scope.allocate(size, 1);
72 }
73
|