package jdk.test; /* Results on Linux / i7-4771 9-ea+106: Benchmark Mode Cnt Score Error Units DirectBufferAllocBench06.alloc1M_t1 avgt 10 0.212 ± 0.022 ms/op DirectBufferAllocBench06.alloc1M_t4 avgt 10 0.586 ± 0.017 ms/op DirectBufferAllocBench06.alloc1M_t16 avgt 10 2.458 ± 0.066 ms/op patched: Benchmark Mode Cnt Score Error Units DirectBufferAllocBench06.alloc1M_t1 avgt 10 0.150 ± 0.006 ms/op DirectBufferAllocBench06.alloc1M_t4 avgt 10 0.586 ± 0.011 ms/op DirectBufferAllocBench06.alloc1M_t16 avgt 10 2.294 ± 0.040 ms/op */ import org.openjdk.jmh.annotations.*; import java.nio.ByteBuffer; import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.AverageTime) @Warmup(iterations = 5) @Measurement(iterations = 10) @OutputTimeUnit(TimeUnit.MILLISECONDS) @Fork(value = 1, jvmArgs = "-XX:MaxDirectMemorySize=128m") @State(Scope.Thread) public class DirectBufferAllocBench06 { @Benchmark @Threads(1) public ByteBuffer alloc1M_t1() { return ByteBuffer.allocateDirect(1024 * 1024); } @Benchmark @Threads(4) public ByteBuffer alloc1M_t4() { return ByteBuffer.allocateDirect(1024 * 1024); } @Benchmark @Threads(16) public ByteBuffer alloc1M_t16() { return ByteBuffer.allocateDirect(1024 * 1024); } }