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:+UseG1GC -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: 94476.816 ops/ms # Warmup Iteration 2: 89744.206 ops/ms # Warmup Iteration 3: 101163.992 ops/ms Iteration 1: 109526.924 ops/ms gc.alloc.rate: 8355.488 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 21.000 counts gc.time: 26.000 ms Iteration 2: 110510.175 ops/ms gc.alloc.rate: 8430.635 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 20.000 counts gc.time: 26.000 ms Iteration 3: 108216.344 ops/ms gc.alloc.rate: 8255.509 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 20.000 counts gc.time: 28.000 ms Iteration 4: 110239.588 ops/ms gc.alloc.rate: 8410.010 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 21.000 counts gc.time: 28.000 ms Iteration 5: 108501.443 ops/ms gc.alloc.rate: 8277.260 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 20.000 counts gc.time: 29.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocate": 109398.895 ±(99.9%) 3927.821 ops/ms [Average] (min, avg, max) = (108216.344, 109398.895, 110510.175), stdev = 1020.043 CI (99.9%): [105471.074, 113326.715] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate": 8345.780 ±(99.9%) 299.905 MB/sec [Average] (min, avg, max) = (8255.509, 8345.780, 8430.635), stdev = 77.884 CI (99.9%): [8045.875, 8645.685] (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": 102.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (20.000, 20.400, 21.000), stdev = 0.548 CI (99.9%): [102.000, 102.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.time": 137.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (26.000, 27.400, 29.000), stdev = 1.342 CI (99.9%): [137.000, 137.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:+UseG1GC -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:07 # 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: 6945.278 ops/ms # Warmup Iteration 2: 7387.542 ops/ms # Warmup Iteration 3: 8129.432 ops/ms Iteration 1: 7701.879 ops/ms gc.alloc.rate: 7638.123 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 19.000 counts gc.time: 31.000 ms Iteration 2: 7965.597 ops/ms gc.alloc.rate: 7899.705 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 19.000 counts gc.time: 31.000 ms Iteration 3: 8142.411 ops/ms gc.alloc.rate: 8074.482 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 20.000 counts gc.time: 31.000 ms Iteration 4: 8164.541 ops/ms gc.alloc.rate: 8097.066 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 20.000 counts gc.time: 32.000 ms Iteration 5: 7966.047 ops/ms gc.alloc.rate: 7900.144 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 19.000 counts gc.time: 27.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocate": 7988.095 ±(99.9%) 714.858 ops/ms [Average] (min, avg, max) = (7701.879, 7988.095, 8164.541), stdev = 185.646 CI (99.9%): [7273.237, 8702.953] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate": 7921.904 ±(99.9%) 708.613 MB/sec [Average] (min, avg, max) = (7638.123, 7921.904, 8097.066), stdev = 184.024 CI (99.9%): [7213.291, 8630.517] (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": 97.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (19.000, 19.400, 20.000), stdev = 0.548 CI (99.9%): [97.000, 97.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.time": 152.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (27.000, 30.400, 32.000), stdev = 1.949 CI (99.9%): [152.000, 152.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:+UseG1GC -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: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: 232.324 ops/ms # Warmup Iteration 2: 231.619 ops/ms # Warmup Iteration 3: 252.348 ops/ms Iteration 1: 257.316 ops/ms gc.alloc.rate: 8044.353 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 33.000 ms Iteration 2: 254.053 ops/ms gc.alloc.rate: 7942.281 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 20.000 counts gc.time: 33.000 ms Iteration 3: 264.497 ops/ms gc.alloc.rate: 8268.735 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 20.000 counts gc.time: 31.000 ms Iteration 4: 262.637 ops/ms gc.alloc.rate: 8210.612 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 31.000 ms Iteration 5: 258.756 ops/ms gc.alloc.rate: 8089.202 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 34.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocate": 259.452 ±(99.9%) 16.084 ops/ms [Average] (min, avg, max) = (254.053, 259.452, 264.497), stdev = 4.177 CI (99.9%): [243.368, 275.536] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate": 8111.036 ±(99.9%) 502.749 MB/sec [Average] (min, avg, max) = (7942.281, 8111.036, 8268.735), stdev = 130.562 CI (99.9%): [7608.288, 8613.785] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.alloc.rate.norm": 32784.009 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (32784.009, 32784.009, 32784.009), stdev = 0.001 CI (99.9%): [32784.008, 32784.010] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.count": 103.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (20.000, 20.600, 21.000), stdev = 0.548 CI (99.9%): [103.000, 103.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocate:gc.time": 162.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (31.000, 32.400, 34.000), stdev = 1.342 CI (99.9%): [162.000, 162.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:+UseG1GC -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:18 # 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: 101992.702 ops/ms # Warmup Iteration 2: 103825.729 ops/ms # Warmup Iteration 3: 108687.913 ops/ms Iteration 1: 110797.860 ops/ms gc.alloc.rate: 8452.508 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 21.000 counts gc.time: 27.000 ms Iteration 2: 110960.774 ops/ms gc.alloc.rate: 8464.884 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 21.000 counts gc.time: 28.000 ms Iteration 3: 108523.113 ops/ms gc.alloc.rate: 8278.923 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 20.000 counts gc.time: 26.000 ms Iteration 4: 109006.737 ops/ms gc.alloc.rate: 8315.860 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 20.000 counts gc.time: 26.000 ms Iteration 5: 105429.148 ops/ms gc.alloc.rate: 8042.852 MB/sec gc.alloc.rate.norm: 80.000 B/op gc.count: 20.000 counts gc.time: 27.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop": 108943.527 ±(99.9%) 8618.787 ops/ms [Average] (min, avg, max) = (105429.148, 108943.527, 110960.774), stdev = 2238.272 CI (99.9%): [100324.740, 117562.314] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate": 8311.005 ±(99.9%) 657.605 MB/sec [Average] (min, avg, max) = (8042.852, 8311.005, 8464.884), stdev = 170.778 CI (99.9%): [7653.400, 8968.611] (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": 102.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (20.000, 20.400, 21.000), stdev = 0.548 CI (99.9%): [102.000, 102.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.time": 134.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (26.000, 26.800, 28.000), stdev = 0.837 CI (99.9%): [134.000, 134.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:+UseG1GC -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:53 # 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: 7454.930 ops/ms # Warmup Iteration 2: 7560.485 ops/ms # Warmup Iteration 3: 8238.081 ops/ms Iteration 1: 8146.332 ops/ms gc.alloc.rate: 8078.816 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 20.000 counts gc.time: 31.000 ms Iteration 2: 8243.429 ops/ms gc.alloc.rate: 8175.266 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 20.000 counts gc.time: 31.000 ms Iteration 3: 8150.032 ops/ms gc.alloc.rate: 8082.387 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 20.000 counts gc.time: 32.000 ms Iteration 4: 8142.326 ops/ms gc.alloc.rate: 8074.851 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 20.000 counts gc.time: 31.000 ms Iteration 5: 8093.092 ops/ms gc.alloc.rate: 8026.130 MB/sec gc.alloc.rate.norm: 1040.000 B/op gc.count: 19.000 counts gc.time: 29.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop": 8155.042 ±(99.9%) 210.140 ops/ms [Average] (min, avg, max) = (8093.092, 8155.042, 8243.429), stdev = 54.573 CI (99.9%): [7944.902, 8365.183] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate": 8087.490 ±(99.9%) 208.528 MB/sec [Average] (min, avg, max) = (8026.130, 8087.490, 8175.266), stdev = 54.154 CI (99.9%): [7878.962, 8296.018] (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": 99.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (19.000, 19.800, 20.000), stdev = 0.447 CI (99.9%): [99.000, 99.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.time": 154.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (29.000, 30.800, 32.000), stdev = 1.095 CI (99.9%): [154.000, 154.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:+UseG1GC -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:29 # 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: 237.515 ops/ms # Warmup Iteration 2: 248.953 ops/ms # Warmup Iteration 3: 264.322 ops/ms Iteration 1: 267.026 ops/ms gc.alloc.rate: 8347.744 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 35.000 ms Iteration 2: 267.333 ops/ms gc.alloc.rate: 8357.472 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 33.000 ms Iteration 3: 263.872 ops/ms gc.alloc.rate: 8249.262 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 34.000 ms Iteration 4: 268.608 ops/ms gc.alloc.rate: 8396.632 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 35.000 ms Iteration 5: 267.685 ops/ms gc.alloc.rate: 8368.531 MB/sec gc.alloc.rate.norm: 32784.009 B/op gc.count: 21.000 counts gc.time: 34.000 ms Result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop": 266.905 ±(99.9%) 6.917 ops/ms [Average] (min, avg, max) = (263.872, 266.905, 268.608), stdev = 1.796 CI (99.9%): [259.988, 273.822] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate": 8343.928 ±(99.9%) 215.624 MB/sec [Average] (min, avg, max) = (8249.262, 8343.928, 8396.632), stdev = 55.997 CI (99.9%): [8128.304, 8559.552] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.alloc.rate.norm": 32784.009 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (32784.009, 32784.009, 32784.009), stdev = 0.001 CI (99.9%): [32784.008, 32784.009] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.count": 105.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (21.000, 21.000, 21.000), stdev = 0.001 CI (99.9%): [105.000, 105.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.AllocationBench.allocateAndDrop:gc.time": 171.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (33.000, 34.200, 35.000), stdev = 0.837 CI (99.9%): [171.000, 171.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:+UseG1GC -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:04 # 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: 13049.142 ops/ms # Warmup Iteration 2: 13567.531 ops/ms # Warmup Iteration 3: 14405.101 ops/ms Iteration 1: 14770.707 ops/ms gc.alloc.rate: 7436.333 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 19.000 counts gc.time: 28.000 ms Iteration 2: 14665.746 ops/ms gc.alloc.rate: 7384.116 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 18.000 counts gc.time: 28.000 ms Iteration 3: 14894.253 ops/ms gc.alloc.rate: 7498.509 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 18.000 counts gc.time: 29.000 ms Iteration 4: 14902.271 ops/ms gc.alloc.rate: 7503.210 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 18.000 counts gc.time: 27.000 ms Iteration 5: 14844.882 ops/ms gc.alloc.rate: 7474.270 MB/sec gc.alloc.rate.norm: 528.000 B/op gc.count: 19.000 counts gc.time: 29.000 ms Result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival": 14815.572 ±(99.9%) 380.352 ops/ms [Average] (min, avg, max) = (14665.746, 14815.572, 14902.271), stdev = 98.776 CI (99.9%): [14435.219, 15195.924] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate": 7459.288 ±(99.9%) 191.272 MB/sec [Average] (min, avg, max) = (7384.116, 7459.288, 7503.210), stdev = 49.673 CI (99.9%): [7268.015, 7650.560] (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": 92.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (18.000, 18.400, 19.000), stdev = 0.548 CI (99.9%): [92.000, 92.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.time": 141.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (27.000, 28.200, 29.000), stdev = 0.837 CI (99.9%): [141.000, 141.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:+UseG1GC -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:40 # 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: 12513.468 ops/ms # Warmup Iteration 2: 12455.459 ops/ms # Warmup Iteration 3: 14481.408 ops/ms Iteration 1: 14313.206 ops/ms gc.alloc.rate: 7206.449 MB/sec gc.alloc.rate.norm: 528.001 B/op gc.count: 18.000 counts gc.time: 42.000 ms Iteration 2: 14460.680 ops/ms gc.alloc.rate: 7280.683 MB/sec gc.alloc.rate.norm: 528.001 B/op gc.count: 18.000 counts gc.time: 43.000 ms Iteration 3: 14486.632 ops/ms gc.alloc.rate: 7293.742 MB/sec gc.alloc.rate.norm: 528.001 B/op gc.count: 18.000 counts gc.time: 41.000 ms Iteration 4: 14519.555 ops/ms gc.alloc.rate: 7310.498 MB/sec gc.alloc.rate.norm: 528.001 B/op gc.count: 18.000 counts gc.time: 41.000 ms Iteration 5: 14325.907 ops/ms gc.alloc.rate: 7213.015 MB/sec gc.alloc.rate.norm: 528.001 B/op gc.count: 18.000 counts gc.time: 42.000 ms Result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival": 14421.196 ±(99.9%) 366.606 ops/ms [Average] (min, avg, max) = (14313.206, 14421.196, 14519.555), stdev = 95.206 CI (99.9%): [14054.590, 14787.802] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate": 7260.877 ±(99.9%) 184.547 MB/sec [Average] (min, avg, max) = (7206.449, 7260.877, 7310.498), stdev = 47.926 CI (99.9%): [7076.330, 7445.424] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate.norm": 528.001 ±(99.9%) 0.001 B/op [Average] (min, avg, max) = (528.001, 528.001, 528.001), stdev = 0.001 CI (99.9%): [528.001, 528.001] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.count": 90.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (18.000, 18.000, 18.000), stdev = 0.001 CI (99.9%): [90.000, 90.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.time": 209.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (41.000, 41.800, 43.000), stdev = 0.837 CI (99.9%): [209.000, 209.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:+UseG1GC -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:15 # 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: 10725.155 ops/ms # Warmup Iteration 2: 9695.279 ops/ms # Warmup Iteration 3: 11448.309 ops/ms Iteration 1: 11374.485 ops/ms gc.alloc.rate: 5727.414 MB/sec gc.alloc.rate.norm: 528.077 B/op gc.count: 19.000 counts gc.time: 495.000 ms Iteration 2: 11602.423 ops/ms gc.alloc.rate: 5842.460 MB/sec gc.alloc.rate.norm: 528.076 B/op gc.count: 17.000 counts gc.time: 505.000 ms Iteration 3: 11434.973 ops/ms gc.alloc.rate: 5757.454 MB/sec gc.alloc.rate.norm: 528.077 B/op gc.count: 20.000 counts gc.time: 524.000 ms Iteration 4: 11269.895 ops/ms gc.alloc.rate: 5674.914 MB/sec gc.alloc.rate.norm: 528.078 B/op gc.count: 18.000 counts gc.time: 478.000 ms Iteration 5: 11578.898 ops/ms gc.alloc.rate: 5829.728 MB/sec gc.alloc.rate.norm: 528.076 B/op gc.count: 18.000 counts gc.time: 475.000 ms Result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival": 11452.135 ±(99.9%) 538.370 ops/ms [Average] (min, avg, max) = (11269.895, 11452.135, 11602.423), stdev = 139.813 CI (99.9%): [10913.765, 11990.505] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate": 5766.394 ±(99.9%) 270.678 MB/sec [Average] (min, avg, max) = (5674.914, 5766.394, 5842.460), stdev = 70.294 CI (99.9%): [5495.716, 6037.073] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.alloc.rate.norm": 528.076 ±(99.9%) 0.004 B/op [Average] (min, avg, max) = (528.076, 528.076, 528.078), stdev = 0.001 CI (99.9%): [528.073, 528.080] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.count": 92.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (17.000, 18.400, 20.000), stdev = 1.140 CI (99.9%): [92.000, 92.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.PromotionBench.allocateWithSurvival:gc.time": 2477.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (475.000, 495.400, 524.000), stdev = 20.182 CI (99.9%): [2477.000, 2477.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:+UseG1GC -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:51 # 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: 81541.678 us/op # Warmup Iteration 2: 81197.711 us/op # Warmup Iteration 3: 82273.397 us/op Iteration 1: 81754.289 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 187.676 B/op gc.count: ≈ 0 counts Iteration 2: 81601.457 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 186.811 B/op gc.count: ≈ 0 counts Iteration 3: 84794.064 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 192.889 B/op gc.count: ≈ 0 counts Iteration 4: 80917.400 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 183.579 B/op gc.count: ≈ 0 counts Iteration 5: 81335.784 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 187.676 B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences": 82080.599 ±(99.9%) 5967.482 us/op [Average] (min, avg, max) = (80917.400, 82080.599, 84794.064), stdev = 1549.736 CI (99.9%): [76113.117, 88048.081] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences:gc.alloc.rate": 0.002 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.002, 0.002, 0.002), stdev = 0.001 CI (99.9%): [0.002, 0.002] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.chaseReferences:gc.alloc.rate.norm": 187.726 ±(99.9%) 12.872 B/op [Average] (min, avg, max) = (183.579, 187.726, 192.889), stdev = 3.343 CI (99.9%): [174.854, 200.598] (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:+UseG1GC -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:26 # 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.022 us/op # Warmup Iteration 3: 0.022 us/op Iteration 1: 0.021 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 2: 0.022 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 3: 0.022 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 4: 0.022 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Iteration 5: 0.022 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁴ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly": 0.022 ±(99.9%) 0.001 us/op [Average] (min, avg, max) = (0.021, 0.022, 0.022), stdev = 0.001 CI (99.9%): [0.021, 0.022] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.readSameReferenceRepeatedly:gc.alloc.rate": 0.002 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.002, 0.002, 0.002), stdev = 0.001 CI (99.9%): [0.002, 0.002] (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:+UseG1GC -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:02 # 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: 268.875 us/op # Warmup Iteration 2: 269.168 us/op # Warmup Iteration 3: 272.299 us/op Iteration 1: 269.848 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 0.625 B/op gc.count: ≈ 0 counts Iteration 2: 271.698 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 0.629 B/op gc.count: ≈ 0 counts Iteration 3: 270.460 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 0.626 B/op gc.count: ≈ 0 counts Iteration 4: 269.821 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 0.624 B/op gc.count: ≈ 0 counts Iteration 5: 270.916 us/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: 0.627 B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives": 270.549 ±(99.9%) 3.034 us/op [Average] (min, avg, max) = (269.821, 270.549, 271.698), stdev = 0.788 CI (99.9%): [267.514, 273.583] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives:gc.alloc.rate": 0.002 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.002, 0.002, 0.002), stdev = 0.001 CI (99.9%): [0.002, 0.002] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.LoadBarrierBench.sumPrimitives:gc.alloc.rate.norm": 0.626 ±(99.9%) 0.007 B/op [Average] (min, avg, max) = (0.624, 0.626, 0.629), stdev = 0.002 CI (99.9%): [0.619, 0.633] (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:+UseG1GC -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:37 # 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.947 ns/op # Warmup Iteration 2: 1.957 ns/op # Warmup Iteration 3: 1.917 ns/op Iteration 1: 1.947 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 2: 1.922 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 3: 1.931 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 4: 1.995 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 5: 1.922 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld": 1.943 ±(99.9%) 0.118 ns/op [Average] (min, avg, max) = (1.922, 1.943, 1.995), stdev = 0.031 CI (99.9%): [1.825, 2.062] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeNullIntoOld:gc.alloc.rate": 0.002 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.002, 0.002, 0.002), stdev = 0.001 CI (99.9%): [0.002, 0.002] (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:+UseG1GC -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.713 ns/op # Warmup Iteration 2: 3.724 ns/op # Warmup Iteration 3: 3.818 ns/op Iteration 1: 3.685 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 2: 3.924 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 3: 3.783 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 4: 3.815 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 5: 3.692 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld": 3.780 ±(99.9%) 0.379 ns/op [Average] (min, avg, max) = (3.685, 3.780, 3.924), stdev = 0.098 CI (99.9%): [3.401, 4.159] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToOld:gc.alloc.rate": 0.002 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.002, 0.002, 0.002), stdev = 0.001 CI (99.9%): [0.002, 0.002] (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:+UseG1GC -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:48 # 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: 5.673 ns/op # Warmup Iteration 2: 5.146 ns/op # Warmup Iteration 3: 5.013 ns/op Iteration 1: 4.856 ns/op gc.alloc.rate: 3141.966 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 8.000 counts gc.time: 90.000 ms Iteration 2: 5.080 ns/op gc.alloc.rate: 3003.337 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 7.000 counts gc.time: 86.000 ms Iteration 3: 4.916 ns/op gc.alloc.rate: 3103.059 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 8.000 counts gc.time: 91.000 ms Iteration 4: 4.867 ns/op gc.alloc.rate: 3134.589 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 8.000 counts gc.time: 96.000 ms Iteration 5: 4.951 ns/op gc.alloc.rate: 3081.545 MB/sec gc.alloc.rate.norm: 16.000 B/op gc.count: 7.000 counts gc.time: 84.000 ms Result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung": 4.934 ±(99.9%) 0.347 ns/op [Average] (min, avg, max) = (4.856, 4.934, 5.080), stdev = 0.090 CI (99.9%): [4.587, 5.281] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung:gc.alloc.rate": 3092.899 ±(99.9%) 214.387 MB/sec [Average] (min, avg, max) = (3003.337, 3092.899, 3141.966), stdev = 55.676 CI (99.9%): [2878.512, 3307.286] (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": 38.000 ±(99.9%) 0.001 counts [Sum] (min, avg, max) = (7.000, 7.600, 8.000), stdev = 0.548 CI (99.9%): [38.000, 38.000] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storeOldToYoung:gc.time": 447.000 ±(99.9%) 0.001 ms [Sum] (min, avg, max) = (84.000, 89.400, 96.000), stdev = 4.669 CI (99.9%): [447.000, 447.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:+UseG1GC -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: 2.031 ns/op # Warmup Iteration 2: 2.137 ns/op # Warmup Iteration 3: 3.499 ns/op Iteration 1: 2.710 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 2: 2.094 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 3: 2.057 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 4: 2.129 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Iteration 5: 2.019 ns/op gc.alloc.rate: 0.002 MB/sec gc.alloc.rate.norm: ≈ 10⁻⁵ B/op gc.count: ≈ 0 counts Result "com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld": 2.202 ±(99.9%) 1.105 ns/op [Average] (min, avg, max) = (2.019, 2.202, 2.710), stdev = 0.287 CI (99.9%): [1.097, 3.307] (assumes normal distribution) Secondary result "com.ankurm.zgc.jmh.StoreBarrierBench.storePrimitiveIntoOld:gc.alloc.rate": 0.002 ±(99.9%) 0.001 MB/sec [Average] (min, avg, max) = (0.002, 0.002, 0.002), stdev = 0.001 CI (99.9%): [0.002, 0.002] (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:31 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 109398.895 ± 3927.821 ops/ms AllocationBench.allocate:gc.alloc.rate N/A N/A 64 N/A N/A thrpt 5 8345.780 ± 299.905 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 102.000 counts AllocationBench.allocate:gc.time N/A N/A 64 N/A N/A thrpt 5 137.000 ms AllocationBench.allocate N/A N/A 1024 N/A N/A thrpt 5 7988.095 ± 714.858 ops/ms AllocationBench.allocate:gc.alloc.rate N/A N/A 1024 N/A N/A thrpt 5 7921.904 ± 708.613 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 97.000 counts AllocationBench.allocate:gc.time N/A N/A 1024 N/A N/A thrpt 5 152.000 ms AllocationBench.allocate N/A N/A 32768 N/A N/A thrpt 5 259.452 ± 16.084 ops/ms AllocationBench.allocate:gc.alloc.rate N/A N/A 32768 N/A N/A thrpt 5 8111.036 ± 502.749 MB/sec AllocationBench.allocate:gc.alloc.rate.norm N/A N/A 32768 N/A N/A thrpt 5 32784.009 ± 0.001 B/op AllocationBench.allocate:gc.count N/A N/A 32768 N/A N/A thrpt 5 103.000 counts AllocationBench.allocate:gc.time N/A N/A 32768 N/A N/A thrpt 5 162.000 ms AllocationBench.allocateAndDrop N/A N/A 64 N/A N/A thrpt 5 108943.527 ± 8618.787 ops/ms AllocationBench.allocateAndDrop:gc.alloc.rate N/A N/A 64 N/A N/A thrpt 5 8311.005 ± 657.605 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 102.000 counts AllocationBench.allocateAndDrop:gc.time N/A N/A 64 N/A N/A thrpt 5 134.000 ms AllocationBench.allocateAndDrop N/A N/A 1024 N/A N/A thrpt 5 8155.042 ± 210.140 ops/ms AllocationBench.allocateAndDrop:gc.alloc.rate N/A N/A 1024 N/A N/A thrpt 5 8087.490 ± 208.528 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 99.000 counts AllocationBench.allocateAndDrop:gc.time N/A N/A 1024 N/A N/A thrpt 5 154.000 ms AllocationBench.allocateAndDrop N/A N/A 32768 N/A N/A thrpt 5 266.905 ± 6.917 ops/ms AllocationBench.allocateAndDrop:gc.alloc.rate N/A N/A 32768 N/A N/A thrpt 5 8343.928 ± 215.624 MB/sec AllocationBench.allocateAndDrop:gc.alloc.rate.norm N/A N/A 32768 N/A N/A thrpt 5 32784.009 ± 0.001 B/op AllocationBench.allocateAndDrop:gc.count N/A N/A 32768 N/A N/A thrpt 5 105.000 counts AllocationBench.allocateAndDrop:gc.time N/A N/A 32768 N/A N/A thrpt 5 171.000 ms PromotionBench.allocateWithSurvival N/A 512 N/A N/A 0 thrpt 5 14815.572 ± 380.352 ops/ms PromotionBench.allocateWithSurvival:gc.alloc.rate N/A 512 N/A N/A 0 thrpt 5 7459.288 ± 191.272 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 92.000 counts PromotionBench.allocateWithSurvival:gc.time N/A 512 N/A N/A 0 thrpt 5 141.000 ms PromotionBench.allocateWithSurvival N/A 512 N/A N/A 4096 thrpt 5 14421.196 ± 366.606 ops/ms PromotionBench.allocateWithSurvival:gc.alloc.rate N/A 512 N/A N/A 4096 thrpt 5 7260.877 ± 184.547 MB/sec PromotionBench.allocateWithSurvival:gc.alloc.rate.norm N/A 512 N/A N/A 4096 thrpt 5 528.001 ± 0.001 B/op PromotionBench.allocateWithSurvival:gc.count N/A 512 N/A N/A 4096 thrpt 5 90.000 counts PromotionBench.allocateWithSurvival:gc.time N/A 512 N/A N/A 4096 thrpt 5 209.000 ms PromotionBench.allocateWithSurvival N/A 512 N/A N/A 262144 thrpt 5 11452.135 ± 538.370 ops/ms PromotionBench.allocateWithSurvival:gc.alloc.rate N/A 512 N/A N/A 262144 thrpt 5 5766.394 ± 270.678 MB/sec PromotionBench.allocateWithSurvival:gc.alloc.rate.norm N/A 512 N/A N/A 262144 thrpt 5 528.076 ± 0.004 B/op PromotionBench.allocateWithSurvival:gc.count N/A 512 N/A N/A 262144 thrpt 5 92.000 counts PromotionBench.allocateWithSurvival:gc.time N/A 512 N/A N/A 262144 thrpt 5 2477.000 ms LoadBarrierBench.chaseReferences 1048576 N/A N/A N/A N/A avgt 5 82080.599 ± 5967.482 us/op LoadBarrierBench.chaseReferences:gc.alloc.rate 1048576 N/A N/A N/A N/A avgt 5 0.002 ± 0.001 MB/sec LoadBarrierBench.chaseReferences:gc.alloc.rate.norm 1048576 N/A N/A N/A N/A avgt 5 187.726 ± 12.872 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.022 ± 0.001 us/op LoadBarrierBench.readSameReferenceRepeatedly:gc.alloc.rate 1048576 N/A N/A N/A N/A avgt 5 0.002 ± 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.549 ± 3.034 us/op LoadBarrierBench.sumPrimitives:gc.alloc.rate 1048576 N/A N/A N/A N/A avgt 5 0.002 ± 0.001 MB/sec LoadBarrierBench.sumPrimitives:gc.alloc.rate.norm 1048576 N/A N/A N/A N/A avgt 5 0.626 ± 0.007 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 1.943 ± 0.118 ns/op StoreBarrierBench.storeNullIntoOld:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 0.002 ± 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.780 ± 0.379 ns/op StoreBarrierBench.storeOldToOld:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 0.002 ± 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 4.934 ± 0.347 ns/op StoreBarrierBench.storeOldToYoung:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 3092.899 ± 214.387 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 38.000 counts StoreBarrierBench.storeOldToYoung:gc.time N/A N/A N/A 1048576 N/A avgt 5 447.000 ms StoreBarrierBench.storePrimitiveIntoOld N/A N/A N/A 1048576 N/A avgt 5 2.202 ± 1.105 ns/op StoreBarrierBench.storePrimitiveIntoOld:gc.alloc.rate N/A N/A N/A 1048576 N/A avgt 5 0.002 ± 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-g1.json