Eight benchmark/demo classes, a deterministic test suite, and 12 captured output files generated by scripts/run-all.sh on JDK 25.0.5 (Temurin) with JMH 1.37. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ic4b6Fj2JNt7dRev4pZPe
115 lines
4.4 KiB
Plaintext
115 lines
4.4 KiB
Plaintext
# JMH version: 1.37
|
|
# VM version: JDK 25.0.5, OpenJDK 64-Bit Server VM, 25.0.5+8-LTS
|
|
# VM invoker: /tmp/tools/jdk-25.0.5+8/bin/java
|
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
|
|
# Warmup: 3 iterations, 1 s each
|
|
# Measurement: 8 iterations, 1 s each
|
|
# Timeout: 10 min per iteration
|
|
# Threads: 1 thread, will synchronize iterations
|
|
# Benchmark mode: Average time, time/op
|
|
# Benchmark: com.ankurm.jmhbasics.ForkingBenchmark.measure_1_c1
|
|
|
|
# Run progress: 0.00% complete, ETA 00:00:33
|
|
# Fork: 1 of 1
|
|
# Warmup Iteration 1: 0.752 ns/op
|
|
# Warmup Iteration 2: 0.687 ns/op
|
|
# Warmup Iteration 3: 0.725 ns/op
|
|
Iteration 1: 0.727 ns/op
|
|
Iteration 2: 0.793 ns/op
|
|
Iteration 3: 0.743 ns/op
|
|
Iteration 4: 0.716 ns/op
|
|
Iteration 5: 0.728 ns/op
|
|
Iteration 6: 0.800 ns/op
|
|
Iteration 7: 0.657 ns/op
|
|
Iteration 8: 0.658 ns/op
|
|
|
|
|
|
Result "com.ankurm.jmhbasics.ForkingBenchmark.measure_1_c1":
|
|
0.728 ±(99.9%) 0.101 ns/op [Average]
|
|
(min, avg, max) = (0.657, 0.728, 0.800), stdev = 0.053
|
|
CI (99.9%): [0.626, 0.829] (assumes normal distribution)
|
|
|
|
|
|
# JMH version: 1.37
|
|
# VM version: JDK 25.0.5, OpenJDK 64-Bit Server VM, 25.0.5+8-LTS
|
|
# VM invoker: /tmp/tools/jdk-25.0.5+8/bin/java
|
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
|
|
# Warmup: 3 iterations, 1 s each
|
|
# Measurement: 8 iterations, 1 s each
|
|
# Timeout: 10 min per iteration
|
|
# Threads: 1 thread, will synchronize iterations
|
|
# Benchmark mode: Average time, time/op
|
|
# Benchmark: com.ankurm.jmhbasics.ForkingBenchmark.measure_2_c2
|
|
|
|
# Run progress: 33.33% complete, ETA 00:00:22
|
|
# Fork: 1 of 1
|
|
# Warmup Iteration 1: 0.696 ns/op
|
|
# Warmup Iteration 2: 0.717 ns/op
|
|
# Warmup Iteration 3: 0.846 ns/op
|
|
Iteration 1: 0.863 ns/op
|
|
Iteration 2: 1.101 ns/op
|
|
Iteration 3: 0.780 ns/op
|
|
Iteration 4: 0.681 ns/op
|
|
Iteration 5: 0.735 ns/op
|
|
Iteration 6: 0.838 ns/op
|
|
Iteration 7: 0.683 ns/op
|
|
Iteration 8: 0.656 ns/op
|
|
|
|
|
|
Result "com.ankurm.jmhbasics.ForkingBenchmark.measure_2_c2":
|
|
0.792 ±(99.9%) 0.279 ns/op [Average]
|
|
(min, avg, max) = (0.656, 0.792, 1.101), stdev = 0.146
|
|
CI (99.9%): [0.513, 1.071] (assumes normal distribution)
|
|
|
|
|
|
# JMH version: 1.37
|
|
# VM version: JDK 25.0.5, OpenJDK 64-Bit Server VM, 25.0.5+8-LTS
|
|
# VM invoker: /tmp/tools/jdk-25.0.5+8/bin/java
|
|
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
|
|
# Warmup: 3 iterations, 1 s each
|
|
# Measurement: 8 iterations, 1 s each
|
|
# Timeout: 10 min per iteration
|
|
# Threads: 1 thread, will synchronize iterations
|
|
# Benchmark mode: Average time, time/op
|
|
# Benchmark: com.ankurm.jmhbasics.ForkingBenchmark.measure_3_c1
|
|
|
|
# Run progress: 66.67% complete, ETA 00:00:11
|
|
# Fork: 1 of 1
|
|
# Warmup Iteration 1: 0.713 ns/op
|
|
# Warmup Iteration 2: 0.713 ns/op
|
|
# Warmup Iteration 3: 0.640 ns/op
|
|
Iteration 1: 0.652 ns/op
|
|
Iteration 2: 0.655 ns/op
|
|
Iteration 3: 0.693 ns/op
|
|
Iteration 4: 0.835 ns/op
|
|
Iteration 5: 0.822 ns/op
|
|
Iteration 6: 0.739 ns/op
|
|
Iteration 7: 0.784 ns/op
|
|
Iteration 8: 0.686 ns/op
|
|
|
|
|
|
Result "com.ankurm.jmhbasics.ForkingBenchmark.measure_3_c1":
|
|
0.733 ±(99.9%) 0.140 ns/op [Average]
|
|
(min, avg, max) = (0.652, 0.733, 0.835), stdev = 0.073
|
|
CI (99.9%): [0.593, 0.873] (assumes normal distribution)
|
|
|
|
|
|
# Run complete. Total time: 00:00:33
|
|
|
|
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 Mode Cnt Score Error Units
|
|
ForkingBenchmark.measure_1_c1 avgt 8 0.728 ± 0.101 ns/op
|
|
ForkingBenchmark.measure_2_c2 avgt 8 0.792 ± 0.279 ns/op
|
|
ForkingBenchmark.measure_3_c1 avgt 8 0.733 ± 0.140 ns/op
|