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