29 import org.openjdk.jmh.annotations.Fork;
30 import org.openjdk.jmh.annotations.Measurement;
31 import org.openjdk.jmh.annotations.Mode;
32 import org.openjdk.jmh.annotations.OutputTimeUnit;
33 import org.openjdk.jmh.annotations.Param;
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.lang.foreign.Arena;
40 import java.util.ArrayList;
41 import java.util.List;
42 import java.util.concurrent.TimeUnit;
43
44 @BenchmarkMode(Mode.AverageTime)
45 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
46 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
47 @State(org.openjdk.jmh.annotations.Scope.Thread)
48 @OutputTimeUnit(TimeUnit.MICROSECONDS)
49 @Fork(value = 3, jvmArgsAppend = "--enable-preview")
50 public class MemorySessionClose {
51
52 static final int ALLOC_SIZE = 1024;
53
54 public enum StressMode {
55 NONE,
56 MEMORY,
57 THREADS
58 }
59
60 @Param({"NONE", "MEMORY", "THREADS"})
61 StressMode mode;
62
63 List<byte[]> arrays;
64 volatile boolean stop = false;
65 List<Thread> threads;
66
67 @Setup
68 public void setup() throws Throwable {
69 if (mode == StressMode.MEMORY) {
|
29 import org.openjdk.jmh.annotations.Fork;
30 import org.openjdk.jmh.annotations.Measurement;
31 import org.openjdk.jmh.annotations.Mode;
32 import org.openjdk.jmh.annotations.OutputTimeUnit;
33 import org.openjdk.jmh.annotations.Param;
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.lang.foreign.Arena;
40 import java.util.ArrayList;
41 import java.util.List;
42 import java.util.concurrent.TimeUnit;
43
44 @BenchmarkMode(Mode.AverageTime)
45 @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
46 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
47 @State(org.openjdk.jmh.annotations.Scope.Thread)
48 @OutputTimeUnit(TimeUnit.MICROSECONDS)
49 @Fork(3)
50 public class MemorySessionClose {
51
52 static final int ALLOC_SIZE = 1024;
53
54 public enum StressMode {
55 NONE,
56 MEMORY,
57 THREADS
58 }
59
60 @Param({"NONE", "MEMORY", "THREADS"})
61 StressMode mode;
62
63 List<byte[]> arrays;
64 volatile boolean stop = false;
65 List<Thread> threads;
66
67 @Setup
68 public void setup() throws Throwable {
69 if (mode == StressMode.MEMORY) {
|