1
0
Files
zgc-jdk25-benchmarks/results/07-jmh-g1.txt
Ankur e189da79ba Generational ZGC vs G1 on JDK 25: benchmarks, internals and captured results
Complete companion suite for the ankurm.com guide. Everything was compiled and
executed on java 25.0.3+9-LTS-195 (AMD Ryzen 5 5600U, Windows 11); every file
under results/ is unedited program output.

Code
  latency/    open-loop latency harness that measures from intended arrival, so
              coordinated omission is accounted for rather than hidden. Reports
              response time and service time side by side; the gap reached 2910x
              on G1.
  jmh/        four microbenchmarks isolating one mechanism each: TLAB allocation,
              the ZGC load barrier (with a primitive-load control), the write
              barrier (with null / old-to-old / primitive controls), and promotion
              pressure.
  tuning/     provokes ZGC allocation stalls and reads its own JFR recording back,
              grouped by page class. jdk.ZAllocationStall is enabled without a
              threshold, because the 10 ms default hides most stalls.
  internals/  ZGC page classes vs G1 humongous, read from the live VM via
              HotSpotDiagnosticMXBean and jdk.ZPageAllocation events.
  analysis/   unified GC log parser that keeps stop-the-world pauses and
              concurrent phases in separate buckets.
  env/        environment capture; proves generational mode from JMX bean names.

Docs
  Eight chapters covering the JEP 439/474/490 timeline, colored pointers and both
  barriers, allocation stalls, a full flag reference, logging and JFR, benchmark
  methodology, corner cases, and a decision procedure.

Headline result (60 s, 20k req/s, 2 GB heap, ~585 MB live)
  p50               ZGC 0.006 ms   G1 0.005 ms
  p99.9             ZGC 1.437 ms   G1 95.169 ms
  total STW time    ZGC 1.503 ms   G1 1,139.624 ms
2026-07-31 08:47:16 +05:30

1296 lines
66 KiB
Plaintext

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