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
1296 lines
66 KiB
Plaintext
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
|