WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.AllocationBench.allocate # Parameters: (size = 64) # Run progress: 0.00% complete, ETA 00:06:24 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 89505.196 ops/ms # Warmup Iteration 2: 110710.155 ops/ms # Warmup Iteration 3: 109186.832 ops/ms Iteration 1: 113499.875 ops/ms gc.alloc.rate: 8658.190 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 64.000 counts gc.time: 62.000 ms Iteration 2: 111831.578 ops/ms gc.alloc.rate: 8531.007 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 66.000 counts gc.time: 71.000 ms Iteration 3: 113544.130 ops/ms gc.alloc.rate: 8661.737 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 66.000 counts gc.time: 75.000 ms Iteration 4: 113883.946 ops/ms gc.alloc.rate: 8687.543 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 70.000 counts gc.time: 72.000 ms Iteration 5: 113142.483 ops/ms gc.alloc.rate: 8630.894 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 66.000 counts gc.time: 74.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocate": 113180.402 ±(99.9%) 3074.552 ops/ms [Average] (min, avg, max) = (111831.578, 113180.402, 113883.946), stdev = 798.451 CI (99.9%): [110105.851, 116254.954] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate": 8633.874 ±(99.9%) 234.530 MB/sec [Average] (min, avg, max) = (8531.007, 8633.874, 8687.543), stdev = 60.907 CI (99.9%): [8399.345, 8868.404] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate.norm": 80.000 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (80.000, 80.000, 80.000), stdev = 0.001 CI (99.9%): [80.000, 80.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.count": 332.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (64.000, 66.400, 70.000), stdev = 2.191 CI (99.9%): [332.000, 332.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.time": 354.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (62.000, 70.800, 75.000), stdev = 5.167 CI (99.9%): [354.000, 354.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.AllocationBench.allocate # Parameters: (size = 1024) # Run progress: 6.25% complete, ETA 00:06:10 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 6299.951 ops/ms # Warmup Iteration 2: 7807.387 ops/ms # Warmup Iteration 3: 7967.237 ops/ms Iteration 1: 7627.122 ops/ms gc.alloc.rate: 7563.524 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 56.000 counts gc.time: 74.000 ms Iteration 2: 7931.342 ops/ms gc.alloc.rate: 7865.582 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 62.000 counts gc.time: 90.000 ms Iteration 3: 7978.652 ops/ms gc.alloc.rate: 7912.350 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 60.000 counts gc.time: 66.000 ms Iteration 4: 7807.745 ops/ms gc.alloc.rate: 7742.928 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 62.000 counts gc.time: 87.000 ms Iteration 5: 7937.916 ops/ms gc.alloc.rate: 7871.793 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 66.000 counts gc.time: 77.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocate": 7856.555 ±(99.9%) 551.806 ops/ms [Average] (min, avg, max) = (7627.122, 7856.555, 7978.652), stdev = 143.302 CI (99.9%): [7304.749, 8408.361] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate": 7791.235 ±(99.9%) 547.523 MB/sec [Average] (min, avg, max) = (7563.524, 7791.235, 7912.350), stdev = 142.190 CI (99.9%): [7243.713, 8338.758] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate.norm": 1040.000 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (1040.000, 1040.000, 1040.000), stdev = 0.001 CI (99.9%): [1040.000, 1040.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.count": 306.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (56.000, 61.200, 66.000), stdev = 3.633 CI (99.9%): [306.000, 306.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.time": 394.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (66.000, 78.800, 90.000), stdev = 9.783 CI (99.9%): [394.000, 394.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.AllocationBench.allocate # Parameters: (size = 32768) # Run progress: 12.50% complete, ETA 00:05:45 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 208.276 ops/ms # Warmup Iteration 2: 250.983 ops/ms # Warmup Iteration 3: 253.784 ops/ms Iteration 1: 255.220 ops/ms gc.alloc.rate: 7978.517 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 60.000 counts gc.time: 70.000 ms Iteration 2: 255.879 ops/ms gc.alloc.rate: 7999.237 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 62.000 counts gc.time: 84.000 ms Iteration 3: 250.909 ops/ms gc.alloc.rate: 7843.774 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 66.000 counts gc.time: 91.000 ms Iteration 4: 255.153 ops/ms gc.alloc.rate: 7976.000 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 66.000 counts gc.time: 91.000 ms Iteration 5: 249.566 ops/ms gc.alloc.rate: 7801.721 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 62.000 counts gc.time: 84.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocate": 253.346 ±(99.9%) 11.131 ops/ms [Average] (min, avg, max) = (249.566, 253.346, 255.879), stdev = 2.891 CI (99.9%): [242.215, 264.476] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate": 7919.850 ±(99.9%) 347.834 MB/sec [Average] (min, avg, max) = (7801.721, 7919.850, 7999.237), stdev = 90.331 CI (99.9%): [7572.016, 8267.684] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate.norm": 32784.014 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (32784.014, 32784.014, 32784.014), stdev = 0.001 CI (99.9%): [32784.013, 32784.015] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.count": 316.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (60.000, 63.200, 66.000), stdev = 2.683 CI (99.9%): [316.000, 316.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.time": 420.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (70.000, 84.000, 91.000), stdev = 8.573 CI (99.9%): [420.000, 420.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop # Parameters: (size = 64) # Run progress: 18.75% complete, ETA 00:05:21 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 86590.155 ops/ms # Warmup Iteration 2: 113184.286 ops/ms # Warmup Iteration 3: 106911.607 ops/ms Iteration 1: 110667.256 ops/ms gc.alloc.rate: 8442.189 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 70.000 counts gc.time: 73.000 ms Iteration 2: 109976.883 ops/ms gc.alloc.rate: 8389.466 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 62.000 counts gc.time: 70.000 ms Iteration 3: 109411.098 ops/ms gc.alloc.rate: 8346.345 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 72.000 counts gc.time: 84.000 ms Iteration 4: 111486.667 ops/ms gc.alloc.rate: 8504.877 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 62.000 counts gc.time: 71.000 ms Iteration 5: 110815.977 ops/ms gc.alloc.rate: 8453.487 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 66.000 counts gc.time: 73.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop": 110471.576 ±(99.9%) 3078.498 ops/ms [Average] (min, avg, max) = (109411.098, 110471.576, 111486.667), stdev = 799.476 CI (99.9%): [107393.078, 113550.074] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate": 8427.273 ±(99.9%) 235.100 MB/sec [Average] (min, avg, max) = (8346.345, 8427.273, 8504.877), stdev = 61.055 CI (99.9%): [8192.173, 8662.373] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate.norm": 80.000 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (80.000, 80.000, 80.000), stdev = 0.001 CI (99.9%): [80.000, 80.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.count": 332.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (62.000, 66.400, 72.000), stdev = 4.561 CI (99.9%): [332.000, 332.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.time": 371.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (70.000, 74.200, 84.000), stdev = 5.630 CI (99.9%): [371.000, 371.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop # Parameters: (size = 1024) # Run progress: 25.00% complete, ETA 00:04:56 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 6240.137 ops/ms # Warmup Iteration 2: 7690.908 ops/ms # Warmup Iteration 3: 7956.648 ops/ms Iteration 1: 7803.859 ops/ms gc.alloc.rate: 7739.010 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 58.000 counts gc.time: 78.000 ms Iteration 2: 7899.555 ops/ms gc.alloc.rate: 7834.069 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 58.000 counts gc.time: 81.000 ms Iteration 3: 7943.942 ops/ms gc.alloc.rate: 7877.717 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 62.000 counts gc.time: 79.000 ms Iteration 4: 7537.317 ops/ms gc.alloc.rate: 7474.365 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 62.000 counts gc.time: 85.000 ms Iteration 5: 7960.275 ops/ms gc.alloc.rate: 7894.009 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 62.000 counts gc.time: 75.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop": 7828.990 ±(99.9%) 670.095 ops/ms [Average] (min, avg, max) = (7537.317, 7828.990, 7960.275), stdev = 174.022 CI (99.9%): [7158.895, 8499.084] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate": 7763.834 ±(99.9%) 664.881 MB/sec [Average] (min, avg, max) = (7474.365, 7763.834, 7894.009), stdev = 172.668 CI (99.9%): [7098.953, 8428.715] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate.norm": 1040.000 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (1040.000, 1040.000, 1040.000), stdev = 0.001 CI (99.9%): [1040.000, 1040.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.count": 302.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (58.000, 60.400, 62.000), stdev = 2.191 CI (99.9%): [302.000, 302.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.time": 398.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (75.000, 79.600, 85.000), stdev = 3.715 CI (99.9%): [398.000, 398.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop # Parameters: (size = 32768) # Run progress: 31.25% complete, ETA 00:04:31 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 212.430 ops/ms # Warmup Iteration 2: 249.395 ops/ms # Warmup Iteration 3: 256.676 ops/ms Iteration 1: 249.759 ops/ms gc.alloc.rate: 7807.761 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 62.000 counts gc.time: 90.000 ms Iteration 2: 249.979 ops/ms gc.alloc.rate: 7814.711 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 56.000 counts gc.time: 76.000 ms Iteration 3: 255.773 ops/ms gc.alloc.rate: 7995.587 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 60.000 counts gc.time: 73.000 ms Iteration 4: 251.837 ops/ms gc.alloc.rate: 7872.670 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 60.000 counts gc.time: 72.000 ms Iteration 5: 246.563 ops/ms gc.alloc.rate: 7707.692 MB/sec gc.alloc.rate.norm: 32784.014 B/op gc.count: 62.000 counts gc.time: 86.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop": 250.782 ±(99.9%) 12.989 ops/ms [Average] (min, avg, max) = (246.563, 250.782, 255.773), stdev = 3.373 CI (99.9%): [237.793, 263.771] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate": 7839.684 ±(99.9%) 405.956 MB/sec [Average] (min, avg, max) = (7707.692, 7839.684, 7995.587), stdev = 105.426 CI (99.9%): [7433.728, 8245.641] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate.norm": 32784.014 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (32784.014, 32784.014, 32784.014), stdev = 0.001 CI (99.9%): [32784.013, 32784.015] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.count": 300.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (56.000, 60.000, 62.000), stdev = 2.449 CI (99.9%): [300.000, 300.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.time": 397.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (72.000, 79.400, 90.000), stdev = 8.112 CI (99.9%): [397.000, 397.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival # Parameters: (payloadBytes = 512, survivorDepth = 0) # Run progress: 37.50% complete, ETA 00:04:06 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 11057.708 ops/ms # Warmup Iteration 2: 13483.130 ops/ms # Warmup Iteration 3: 11971.642 ops/ms Iteration 1: 13767.851 ops/ms gc.alloc.rate: 6930.811 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 53.000 counts gc.time: 74.000 ms Iteration 2: 13462.276 ops/ms gc.alloc.rate: 6777.315 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 44.000 counts gc.time: 72.000 ms Iteration 3: 14101.981 ops/ms gc.alloc.rate: 7099.771 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 56.000 counts gc.time: 68.000 ms Iteration 4: 14251.991 ops/ms gc.alloc.rate: 7175.508 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 54.000 counts gc.time: 79.000 ms Iteration 5: 13934.815 ops/ms gc.alloc.rate: 7015.722 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 58.000 counts gc.time: 88.000 ms Result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival": 13903.783 ±(99.9%) 1178.857 ops/ms [Average] (min, avg, max) = (13462.276, 13903.783, 14251.991), stdev = 306.145 CI (99.9%): [12724.926, 15082.639] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate": 6999.825 ±(99.9%) 594.610 MB/sec [Average] (min, avg, max) = (6777.315, 6999.825, 7175.508), stdev = 154.418 CI (99.9%): [6405.215, 7594.436] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate.norm": 528.000 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (528.000, 528.000, 528.000), stdev = 0.001 CI (99.9%): [528.000, 528.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.count": 265.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (44.000, 53.000, 58.000), stdev = 5.385 CI (99.9%): [265.000, 265.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.time": 381.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (68.000, 76.200, 88.000), stdev = 7.694 CI (99.9%): [381.000, 381.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival # Parameters: (payloadBytes = 512, survivorDepth = 4096) # Run progress: 43.75% complete, ETA 00:03:42 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 10803.212 ops/ms # Warmup Iteration 2: 12623.875 ops/ms # Warmup Iteration 3: 13769.490 ops/ms Iteration 1: 13216.163 ops/ms gc.alloc.rate: 6653.988 MB/sec gc.alloc.rate.norm: 528.002 B/op gc.count: 52.000 counts gc.time: 69.000 ms Iteration 2: 13939.700 ops/ms gc.alloc.rate: 7018.158 MB/sec gc.alloc.rate.norm: 528.002 B/op gc.count: 54.000 counts gc.time: 89.000 ms Iteration 3: 13448.262 ops/ms gc.alloc.rate: 6770.694 MB/sec gc.alloc.rate.norm: 528.002 B/op gc.count: 52.000 counts gc.time: 73.000 ms Iteration 4: 13924.991 ops/ms gc.alloc.rate: 7010.906 MB/sec gc.alloc.rate.norm: 528.002 B/op gc.count: 55.000 counts gc.time: 75.000 ms Iteration 5: 13653.903 ops/ms gc.alloc.rate: 6874.371 MB/sec gc.alloc.rate.norm: 528.002 B/op gc.count: 51.000 counts gc.time: 92.000 ms Result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival": 13636.604 ±(99.9%) 1198.623 ops/ms [Average] (min, avg, max) = (13216.163, 13636.604, 13939.700), stdev = 311.278 CI (99.9%): [12437.981, 14835.226] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate": 6865.623 ±(99.9%) 603.494 MB/sec [Average] (min, avg, max) = (6653.988, 6865.623, 7018.158), stdev = 156.725 CI (99.9%): [6262.129, 7469.117] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate.norm": 528.002 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (528.002, 528.002, 528.002), stdev = 0.001 CI (99.9%): [528.002, 528.002] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.count": 264.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (51.000, 52.800, 55.000), stdev = 1.643 CI (99.9%): [264.000, 264.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.time": 398.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (69.000, 79.600, 92.000), stdev = 10.237 CI (99.9%): [398.000, 398.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival # Parameters: (payloadBytes = 512, survivorDepth = 262144) # Run progress: 50.00% complete, ETA 00:03:17 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 10383.438 ops/ms # Warmup Iteration 2: 11535.805 ops/ms # Warmup Iteration 3: 12596.328 ops/ms Iteration 1: 12621.127 ops/ms gc.alloc.rate: 6355.516 MB/sec gc.alloc.rate.norm: 528.139 B/op gc.count: 70.000 counts gc.time: 595.000 ms Iteration 2: 12549.207 ops/ms gc.alloc.rate: 6319.535 MB/sec gc.alloc.rate.norm: 528.139 B/op gc.count: 72.000 counts gc.time: 559.000 ms Iteration 3: 12345.649 ops/ms gc.alloc.rate: 6216.270 MB/sec gc.alloc.rate.norm: 528.142 B/op gc.count: 66.000 counts gc.time: 572.000 ms Iteration 4: 12789.964 ops/ms gc.alloc.rate: 6440.193 MB/sec gc.alloc.rate.norm: 528.137 B/op gc.count: 66.000 counts gc.time: 489.000 ms Iteration 5: 12897.269 ops/ms gc.alloc.rate: 6494.219 MB/sec gc.alloc.rate.norm: 528.136 B/op gc.count: 66.000 counts gc.time: 472.000 ms Result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival": 12640.643 ±(99.9%) 825.684 ops/ms [Average] (min, avg, max) = (12345.649, 12640.643, 12897.269), stdev = 214.428 CI (99.9%): [11814.959, 13466.328] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate": 6365.147 ±(99.9%) 415.749 MB/sec [Average] (min, avg, max) = (6216.270, 6365.147, 6494.219), stdev = 107.969 CI (99.9%): [5949.398, 6780.895] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate.norm": 528.139 ±(99.9%) 0.009 B/op [Average] (min, avg, max) = (528.136, 528.139, 528.142), stdev = 0.002 CI (99.9%): [528.130, 528.148] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.count": 340.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (66.000, 68.000, 72.000), stdev = 2.828 CI (99.9%): [340.000, 340.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.time": 2687.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (472.000, 537.400, 595.000), stdev = 53.854 CI (99.9%): [2687.000, 2687.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences # Parameters: (nodes = 1048576) # Run progress: 56.25% complete, ETA 00:02:52 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 87222.686 us/op # Warmup Iteration 2: 87336.766 us/op # Warmup Iteration 3: 92527.000 us/op Iteration 1: 89837.538 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 312.941 B/op gc.count: ≈ 0 counts Iteration 2: 92342.552 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 322.424 B/op gc.count: ≈ 0 counts Iteration 3: 100691.660 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 354.667 B/op gc.count: ≈ 0 counts Iteration 4: 89533.291 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 311.529 B/op gc.count: ≈ 0 counts Iteration 5: 89239.856 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 312.941 B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences": 92328.979 ±(99.9%) 18617.022 us/op [Average] (min, avg, max) = (89239.856, 92328.979, 100691.660), stdev = 4834.781 CI (99.9%): [73711.958, 110946.001] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences:gc.alloc.rate": 0.003 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.003, 0.003, 0.003), stdev = 0.001 CI (99.9%): [0.003, 0.003] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences:gc.alloc.rate.norm": 322.901 ±(99.9%) 70.399 B/op [Average] (min, avg, max) = (311.529, 322.901, 354.667), stdev = 18.282 CI (99.9%): [252.501, 393.300] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences:gc.count": ≈ 0 counts # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly # Parameters: (nodes = 1048576) # Run progress: 62.50% complete, ETA 00:02:28 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 0.021 us/op # Warmup Iteration 2: 0.023 us/op # Warmup Iteration 3: 0.022 us/op Iteration 1: 0.022 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 2: 0.023 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 3: 0.023 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 4: 0.022 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 5: 0.026 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly": 0.023 ±(99.9%) 0.006 us/op [Average] (min, avg, max) = (0.022, 0.023, 0.026), stdev = 0.001 CI (99.9%): [0.017, 0.029] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly:gc.alloc.rate": 0.003 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.003, 0.003, 0.003), stdev = 0.001 CI (99.9%): [0.003, 0.003] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly:gc.alloc.rate.norm": ≈ 10⁻⁴ B/op Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly:gc.count": ≈ 0 counts # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives # Parameters: (nodes = 1048576) # Run progress: 68.75% complete, ETA 00:02:03 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 269.713 us/op # Warmup Iteration 2: 271.486 us/op # Warmup Iteration 3: 271.731 us/op Iteration 1: 269.887 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 0.957 B/op gc.count: ≈ 0 counts Iteration 2: 270.545 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 0.959 B/op gc.count: ≈ 0 counts Iteration 3: 272.368 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 0.966 B/op gc.count: ≈ 0 counts Iteration 4: 270.207 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 0.958 B/op gc.count: ≈ 0 counts Iteration 5: 269.894 us/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: 0.957 B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives": 270.580 ±(99.9%) 3.986 us/op [Average] (min, avg, max) = (269.887, 270.580, 272.368), stdev = 1.035 CI (99.9%): [266.594, 274.567] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives:gc.alloc.rate": 0.003 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.003, 0.003, 0.003), stdev = 0.001 CI (99.9%): [0.003, 0.003] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives:gc.alloc.rate.norm": 0.959 ±(99.9%) 0.014 B/op [Average] (min, avg, max) = (0.957, 0.959, 0.966), stdev = 0.004 CI (99.9%): [0.945, 0.973] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives:gc.count": ≈ 0 counts # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld # Parameters: (slots = 1048576) # Run progress: 75.00% complete, ETA 00:01:38 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 3.048 ns/op # Warmup Iteration 2: 3.256 ns/op # Warmup Iteration 3: 3.191 ns/op Iteration 1: 3.128 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 2: 3.273 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 3: 3.091 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 4: 3.335 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 5: 3.368 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld": 3.239 ±(99.9%) 0.477 ns/op [Average] (min, avg, max) = (3.091, 3.239, 3.368), stdev = 0.124 CI (99.9%): [2.762, 3.716] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld:gc.alloc.rate": 0.003 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.003, 0.003, 0.003), stdev = 0.001 CI (99.9%): [0.003, 0.003] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld:gc.alloc.rate.norm": ≈ 10⁻⁵ B/op Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld:gc.count": ≈ 0 counts # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld # Parameters: (slots = 1048576) # Run progress: 81.25% complete, ETA 00:01:13 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 3.299 ns/op # Warmup Iteration 2: 3.543 ns/op # Warmup Iteration 3: 3.325 ns/op Iteration 1: 3.398 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 2: 3.332 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 3: 3.467 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 4: 3.520 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 5: 3.592 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld": 3.462 ±(99.9%) 0.392 ns/op [Average] (min, avg, max) = (3.332, 3.462, 3.592), stdev = 0.102 CI (99.9%): [3.070, 3.854] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld:gc.alloc.rate": 0.003 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.003, 0.003, 0.003), stdev = 0.001 CI (99.9%): [0.003, 0.003] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld:gc.alloc.rate.norm": ≈ 10⁻⁵ B/op Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld:gc.count": ≈ 0 counts # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung # Parameters: (slots = 1048576) # Run progress: 87.50% complete, ETA 00:00:49 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 8.306 ns/op # Warmup Iteration 2: 5.958 ns/op # Warmup Iteration 3: 6.544 ns/op Iteration 1: 6.557 ns/op gc.alloc.rate: 2326.838 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 24.000 counts gc.time: 511.000 ms Iteration 2: 6.229 ns/op gc.alloc.rate: 2449.267 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 20.000 counts gc.time: 383.000 ms Iteration 3: 6.718 ns/op gc.alloc.rate: 2270.776 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 22.000 counts gc.time: 441.000 ms Iteration 4: 6.496 ns/op gc.alloc.rate: 2348.706 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 24.000 counts gc.time: 536.000 ms Iteration 5: 6.909 ns/op gc.alloc.rate: 2208.107 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 23.000 counts gc.time: 446.000 ms Result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung": 6.582 ±(99.9%) 0.979 ns/op [Average] (min, avg, max) = (6.229, 6.582, 6.909), stdev = 0.254 CI (99.9%): [5.603, 7.561] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung:gc.alloc.rate": 2320.739 ±(99.9%) 347.204 MB/sec [Average] (min, avg, max) = (2208.107, 2320.739, 2449.267), stdev = 90.168 CI (99.9%): [1973.534, 2667.943] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung:gc.alloc.rate.norm": 16.000 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (16.000, 16.000, 16.000), stdev = 0.001 CI (99.9%): [16.000, 16.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung:gc.count": 113.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (20.000, 22.600, 24.000), stdev = 1.673 CI (99.9%): [113.000, 113.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung:gc.time": 2317.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (383.000, 463.400, 536.000), stdev = 60.838 CI (99.9%): [2317.000, 2317.000] (assumes normal distribution) # JMH version: 1.37 # VM version: JDK 25.0.3, Java HotSpot(TM) 64-Bit Server VM, 25.0.3+9-LTS-195 # VM invoker: C:\Program Files\Java\jdk-25.0.3\bin\java.exe # VM options: -XX:+UseZGC -Xms2g -Xmx2g # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 3 iterations, 3 s each # Measurement: 5 iterations, 3 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld # Parameters: (slots = 1048576) # Run progress: 93.75% complete, ETA 00:00:24 # Fork: 1 of 1 WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.openjdk.jmh.util.Utils (file:/C:/Users/Ankur/ankurm-blog-tools/projects/zgc-jdk25-benchmarks/jmh/target/benchmarks.jar) WARNING: Please consider reporting this to the maintainers of class org.openjdk.jmh.util.Utils WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release # Warmup Iteration 1: 1.796 ns/op # Warmup Iteration 2: 1.804 ns/op # Warmup Iteration 3: 1.875 ns/op Iteration 1: 1.851 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 2: 1.864 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 3: 1.867 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 4: 1.940 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 5: 1.872 ns/op gc.alloc.rate: 0.003 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld": 1.879 ±(99.9%) 0.135 ns/op [Average] (min, avg, max) = (1.851, 1.879, 1.940), stdev = 0.035 CI (99.9%): [1.744, 2.013] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld:gc.alloc.rate": 0.003 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.003, 0.003, 0.003), stdev = 0.001 CI (99.9%): [0.003, 0.003] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld:gc.alloc.rate.norm": ≈ 10⁻⁵ B/op Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld:gc.count": ≈ 0 counts # Run complete. Total time: 00:06:34 REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial experiments, perform baseline and negative tests that provide experimental control, make sure the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. Do not assume the numbers tell you what you want them to tell. NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise extra caution when trusting the results, look into the generated code to check the benchmark still works, and factor in a small probability of new VM bugs. Additionally, while comparisons between different JVMs are already problematic, the performance difference caused by different Blackhole modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. Benchmark (nodes) (payloadBytes) (size) (slots) (survivorDepth) Mode Cnt Score Error Units AllocationBench.allocate N/A N/A 64 N/A N/A thrpt 5 113180.402 ± 3074.552 ops/ms AllocationBench.allocate:gc.alloc.rate N/A N/A 64 N/A N/A thrpt 5 8633.874 ± 234.530 MB/sec AllocationBench.allocate:gc.alloc.rate.norm N/A N/A 64 N/A N/A thrpt 5 80.000 ± 0.001 B/op AllocationBench.allocate:gc.count N/A N/A 64 N/A N/A thrpt 5 332.000 counts AllocationBench.allocate:gc.time N/A N/A 64 N/A N/A thrpt 5 354.000 ms AllocationBench.allocate N/A N/A 1024 N/A N/A thrpt 5 7856.555 ± 551.806 ops/ms AllocationBench.allocate:gc.alloc.rate N/A N/A 1024 N/A N/A thrpt 5 7791.235 ± 547.523 MB/sec AllocationBench.allocate:gc.alloc.rate.norm N/A N/A 1024 N/A N/A thrpt 5 1040.000 ± 0.001 B/op AllocationBench.allocate:gc.count N/A N/A 1024 N/A N/A thrpt 5 306.000 counts AllocationBench.allocate:gc.time N/A N/A 1024 N/A N/A thrpt 5 394.000 ms AllocationBench.allocate N/A N/A 32768 N/A N/A thrpt 5 253.346 ± 11.131 ops/ms AllocationBench.allocate:gc.alloc.rate N/A N/A 32768 N/A N/A thrpt 5 7919.850 ± 347.834 MB/sec AllocationBench.allocate:gc.alloc.rate.norm N/A N/A 32768 N/A N/A thrpt 5 32784.014 ± 0.001 B/op AllocationBench.allocate:gc.count N/A N/A 32768 N/A N/A thrpt 5 316.000 counts AllocationBench.allocate:gc.time N/A N/A 32768 N/A N/A thrpt 5 420.000 ms AllocationBench.allocateAndDrop N/A N/A 64 N/A N/A thrpt 5 110471.576 ± 3078.498 ops/ms AllocationBench.allocateAndDrop:gc.alloc.rate N/A N/A 64 N/A N/A thrpt 5 8427.273 ± 235.100 MB/sec AllocationBench.allocateAndDrop:gc.alloc.rate.norm N/A N/A 64 N/A N/A thrpt 5 80.000 ± 0.001 B/op AllocationBench.allocateAndDrop:gc.count N/A N/A 64 N/A N/A thrpt 5 332.000 counts AllocationBench.allocateAndDrop:gc.time N/A N/A 64 N/A N/A thrpt 5 371.000 ms AllocationBench.allocateAndDrop N/A N/A 1024 N/A N/A thrpt 5 7828.990 ± 670.095 ops/ms AllocationBench.allocateAndDrop:gc.alloc.rate N/A N/A 1024 N/A N/A thrpt 5 7763.834 ± 664.881 MB/sec AllocationBench.allocateAndDrop:gc.alloc.rate.norm N/A N/A 1024 N/A N/A thrpt 5 1040.000 ± 0.001 B/op AllocationBench.allocateAndDrop:gc.count N/A N/A 1024 N/A N/A thrpt 5 302.000 counts AllocationBench.allocateAndDrop:gc.time N/A N/A 1024 N/A N/A thrpt 5 398.000 ms AllocationBench.allocateAndDrop N/A N/A 32768 N/A N/A thrpt 5 250.782 ± 12.989 ops/ms AllocationBench.allocateAndDrop:gc.alloc.rate N/A N/A 32768 N/A N/A thrpt 5 7839.684 ± 405.956 MB/sec AllocationBench.allocateAndDrop:gc.alloc.rate.norm N/A N/A 32768 N/A N/A thrpt 5 32784.014 ± 0.001 B/op AllocationBench.allocateAndDrop:gc.count N/A N/A 32768 N/A N/A thrpt 5 300.000 counts AllocationBench.allocateAndDrop:gc.time N/A N/A 32768 N/A N/A thrpt 5 397.000 ms PromotionBench.allocateWithSurvival N/A 512 N/A N/A 0 thrpt 5 13903.783 ± 1178.857 ops/ms PromotionBench.allocateWithSurvival:gc.alloc.rate N/A 512 N/A N/A 0 thrpt 5 6999.825 ± 594.610 MB/sec PromotionBench.allocateWithSurvival:gc.alloc.rate.norm N/A 512 N/A N/A 0 thrpt 5 528.000 ± 0.001 B/op PromotionBench.allocateWithSurvival:gc.count N/A 512 N/A N/A 0 thrpt 5 265.000 counts PromotionBench.allocateWithSurvival:gc.time N/A 512 N/A N/A 0 thrpt 5 381.000 ms PromotionBench.allocateWithSurvival N/A 512 N/A N/A 4096 thrpt 5 13636.604 ± 1198.623 ops/ms PromotionBench.allocateWithSurvival:gc.alloc.rate N/A 512 N/A N/A 4096 thrpt 5 6865.623 ± 603.494 MB/sec PromotionBench.allocateWithSurvival:gc.alloc.rate.norm N/A 512 N/A N/A 4096 thrpt 5 528.002 ± 0.001 B/op PromotionBench.allocateWithSurvival:gc.count N/A 512 N/A N/A 4096 thrpt 5 264.000 counts PromotionBench.allocateWithSurvival:gc.time N/A 512 N/A N/A 4096 thrpt 5 398.000 ms PromotionBench.allocateWithSurvival N/A 512 N/A N/A 262144 thrpt 5 12640.643 ± 825.684 ops/ms PromotionBench.allocateWithSurvival:gc.alloc.rate N/A 512 N/A N/A 262144 thrpt 5 6365.147 ± 415.749 MB/sec PromotionBench.allocateWithSurvival:gc.alloc.rate.norm N/A 512 N/A N/A 262144 thrpt 5 528.139 ± 0.009 B/op PromotionBench.allocateWithSurvival:gc.count N/A 512 N/A N/A 262144 thrpt 5 340.000 counts PromotionBench.allocateWithSurvival:gc.time N/A 512 N/A N/A 262144 thrpt 5 2687.000 ms LoadBarrierBench.chaseReferences 1048576 N/A N/A N/A N/A avgt 5 92328.979 ± 18617.022 us/op LoadBarrierBench.chaseReferences:gc.alloc.rate 1048576 N/A N/A N/A N/A avgt 5 0.003 ± 0.001 MB/sec LoadBarrierBench.chaseReferences:gc.alloc.rate.norm 1048576 N/A N/A N/A N/A avgt 5 322.901 ± 70.399 B/op LoadBarrierBench.chaseReferences:gc.count 1048576 N/A N/A N/A N/A avgt 5 ≈ 0 counts LoadBarrierBench.readSameReferenceRepeatedly 1048576 N/A N/A N/A N/A avgt 5 0.023 ± 0.006 us/op LoadBarrierBench.readSameReferenceRepeatedly:gc.alloc.rate 1048576 N/A N/A N/A N/A avgt 5 0.003 ± 0.001 MB/sec LoadBarrierBench.readSameReferenceRepeatedly:gc.alloc.rate.norm 1048576 N/A N/A N/A N/A avgt 5 ≈ 10⁻⁴ B/op LoadBarrierBench.readSameReferenceRepeatedly:gc.count 1048576 N/A N/A N/A N/A avgt 5 ≈ 0 counts LoadBarrierBench.sumPrimitives 1048576 N/A N/A N/A N/A avgt 5 270.580 ± 3.986 us/op LoadBarrierBench.sumPrimitives:gc.alloc.rate 1048576 N/A N/A N/A N/A avgt 5 0.003 ± 0.001 MB/sec LoadBarrierBench.sumPrimitives:gc.alloc.rate.norm 1048576 N/A N/A N/A N/A avgt 5 0.959 ± 0.014 B/op LoadBarrierBench.sumPrimitives:gc.count 1048576 N/A N/A N/A N/A avgt 5 ≈ 0 counts StoreBarrierBench.storeNullIntoOld N/A N/A N/A 1048576 N/A avgt 5 3.239 ± 0.477 ns/op StoreBarrierBench.storeNullIntoOld:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 0.003 ± 0.001 MB/sec StoreBarrierBench.storeNullIntoOld:gc.alloc.rate.norm N/A N/A N/A 1048576 N/A avgt 5 ≈ 10⁻⁵ B/op StoreBarrierBench.storeNullIntoOld:gc.count N/A N/A N/A 1048576 N/A avgt 5 ≈ 0 counts StoreBarrierBench.storeOldToOld N/A N/A N/A 1048576 N/A avgt 5 3.462 ± 0.392 ns/op StoreBarrierBench.storeOldToOld:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 0.003 ± 0.001 MB/sec StoreBarrierBench.storeOldToOld:gc.alloc.rate.norm N/A N/A N/A 1048576 N/A avgt 5 ≈ 10⁻⁵ B/op StoreBarrierBench.storeOldToOld:gc.count N/A N/A N/A 1048576 N/A avgt 5 ≈ 0 counts StoreBarrierBench.storeOldToYoung N/A N/A N/A 1048576 N/A avgt 5 6.582 ± 0.979 ns/op StoreBarrierBench.storeOldToYoung:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 2320.739 ± 347.204 MB/sec StoreBarrierBench.storeOldToYoung:gc.alloc.rate.norm N/A N/A N/A 1048576 N/A avgt 5 16.000 ± 0.001 B/op StoreBarrierBench.storeOldToYoung:gc.count N/A N/A N/A 1048576 N/A avgt 5 113.000 counts StoreBarrierBench.storeOldToYoung:gc.time N/A N/A N/A 1048576 N/A avgt 5 2317.000 ms StoreBarrierBench.storePrimitiveIntoOld N/A N/A N/A 1048576 N/A avgt 5 1.879 ± 0.135 ns/op StoreBarrierBench.storePrimitiveIntoOld:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 0.003 ± 0.001 MB/sec StoreBarrierBench.storePrimitiveIntoOld:gc.alloc.rate.norm N/A N/A N/A 1048576 N/A avgt 5 ≈ 10⁻⁵ B/op StoreBarrierBench.storePrimitiveIntoOld:gc.count N/A N/A N/A 1048576 N/A avgt 5 ≈ 0 counts Benchmark result is saved to C:\Users\Ankur\ankurm-blog-tools\projects\zgc-jdk25-benchmarks\results\07-jmh-zgc.json