1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.buffer;
17
18 import org.openjdk.jmh.annotations.Benchmark;
19 import org.openjdk.jmh.annotations.BenchmarkMode;
20 import org.openjdk.jmh.annotations.Measurement;
21 import org.openjdk.jmh.annotations.Mode;
22 import org.openjdk.jmh.annotations.Param;
23 import org.openjdk.jmh.annotations.Threads;
24 import org.openjdk.jmh.annotations.Warmup;
25
26 @BenchmarkMode(Mode.Throughput)
27 @Threads(16)
28 @Warmup(iterations = 5)
29 @Measurement(iterations = 10)
30 public class ByteBufNoCleanerChangeCapacityBenchmark extends AbstractByteBufNoCleanerBenchmark {
31 private static final int MAX_DIRECT_MEMORY_PER_THREAD = 1024 * 1024;
32
33 @Param("1024")
34 public int initialCapacity;
35
36 @Benchmark
37 public boolean capacityChange() {
38 ByteBuf buffer = bufferType.newBuffer(initialCapacity);
39
40 for (int newCapacity = initialCapacity << 1; newCapacity <= MAX_DIRECT_MEMORY_PER_THREAD;
41 newCapacity += initialCapacity) {
42 buffer.capacity(newCapacity);
43 }
44 return buffer.release();
45 }
46 }