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
67 KiB
Plaintext
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
|