# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.boxedLookup
# Parameters: (size = 1024)

# Run progress: 0.00% complete, ETA 00:01:30
# Fork: 1 of 2
# Warmup Iteration   1: 2.277 ns/op
# Warmup Iteration   2: 2.187 ns/op
Iteration   1: 2.180 ns/op
                 gc.alloc.rate:      6999.499 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           46.000 counts
                 gc.time:            17.000 ms

Iteration   2: 2.150 ns/op
                 gc.alloc.rate:      7095.205 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           47.000 counts
                 gc.time:            15.000 ms

Iteration   3: 2.059 ns/op
                 gc.alloc.rate:      7410.493 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           49.000 counts
                 gc.time:            14.000 ms


# Run progress: 5.56% complete, ETA 00:01:30
# Fork: 2 of 2
# Warmup Iteration   1: 2.304 ns/op
# Warmup Iteration   2: 2.376 ns/op
Iteration   1: 2.240 ns/op
                 gc.alloc.rate:      6811.981 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           44.000 counts
                 gc.time:            16.000 ms

Iteration   2: 2.234 ns/op
                 gc.alloc.rate:      6829.368 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           46.000 counts
                 gc.time:            14.000 ms

Iteration   3: 2.252 ns/op
                 gc.alloc.rate:      6775.573 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           45.000 counts
                 gc.time:            24.000 ms



Result "blog.libraries.LibraryBenchmarks.boxedLookup":
  2.186 ±(99.9%) 0.206 ns/op [Average]
  (min, avg, max) = (2.059, 2.186, 2.252), stdev = 0.074
  CI (99.9%): [1.980, 2.392] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.boxedLookup:gc.alloc.rate":
  6987.020 ±(99.9%) 676.956 MB/sec [Average]
  (min, avg, max) = (6775.573, 6987.020, 7410.493), stdev = 241.409
  CI (99.9%): [6310.064, 7663.976] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.boxedLookup: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 "blog.libraries.LibraryBenchmarks.boxedLookup:gc.count":
  277.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (44.000, 46.167, 49.000), stdev = 1.722
  CI (99.9%): [277.000, 277.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.boxedLookup:gc.time":
  100.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (14.000, 16.667, 24.000), stdev = 3.777
  CI (99.9%): [100.000, 100.000] (assumes normal distribution)


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.caffeineHit
# Parameters: (size = 1024)

# Run progress: 11.11% complete, ETA 00:01:24
# Fork: 1 of 2
# Warmup Iteration   1: 14.829 ns/op
# Warmup Iteration   2: 14.633 ns/op
Iteration   1: 13.172 ns/op
                 gc.alloc.rate:      1158.290 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           8.000 counts
                 gc.time:            3.000 ms

Iteration   2: 12.960 ns/op
                 gc.alloc.rate:      1177.214 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           8.000 counts
                 gc.time:            3.000 ms

Iteration   3: 13.008 ns/op
                 gc.alloc.rate:      1172.945 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           7.000 counts
                 gc.time:            5.000 ms


# Run progress: 16.67% complete, ETA 00:01:19
# Fork: 2 of 2
# Warmup Iteration   1: 13.744 ns/op
# Warmup Iteration   2: 14.077 ns/op
Iteration   1: 14.157 ns/op
                 gc.alloc.rate:      1077.520 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           7.000 counts
                 gc.time:            3.000 ms

Iteration   2: 14.170 ns/op
                 gc.alloc.rate:      1076.680 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           7.000 counts
                 gc.time:            5.000 ms

Iteration   3: 13.558 ns/op
                 gc.alloc.rate:      1125.229 MB/sec
                 gc.alloc.rate.norm: 16.000 B/op
                 gc.count:           8.000 counts
                 gc.time:            4.000 ms



Result "blog.libraries.LibraryBenchmarks.caffeineHit":
  13.504 ±(99.9%) 1.549 ns/op [Average]
  (min, avg, max) = (12.960, 13.504, 14.170), stdev = 0.552
  CI (99.9%): [11.955, 15.053] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineHit:gc.alloc.rate":
  1131.313 ±(99.9%) 128.402 MB/sec [Average]
  (min, avg, max) = (1076.680, 1131.313, 1177.214), stdev = 45.789
  CI (99.9%): [1002.911, 1259.715] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineHit: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 "blog.libraries.LibraryBenchmarks.caffeineHit:gc.count":
  45.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (7.000, 7.500, 8.000), stdev = 0.548
  CI (99.9%): [45.000, 45.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineHit:gc.time":
  23.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (3.000, 3.833, 5.000), stdev = 0.983
  CI (99.9%): [23.000, 23.000] (assumes normal distribution)


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.caffeineMiss
# Parameters: (size = 1024)

# Run progress: 22.22% complete, ETA 00:01:14
# Fork: 1 of 2
# Warmup Iteration   1: 125.542 ns/op
# Warmup Iteration   2: 109.712 ns/op
Iteration   1: 110.667 ns/op
                 gc.alloc.rate:      2721.566 MB/sec
                 gc.alloc.rate.norm: 315.861 B/op
                 gc.count:           18.000 counts
                 gc.time:            6.000 ms

Iteration   2: 109.554 ns/op
                 gc.alloc.rate:      2749.284 MB/sec
                 gc.alloc.rate.norm: 315.864 B/op
                 gc.count:           18.000 counts
                 gc.time:            7.000 ms

Iteration   3: 123.982 ns/op
                 gc.alloc.rate:      2429.302 MB/sec
                 gc.alloc.rate.norm: 315.875 B/op
                 gc.count:           16.000 counts
                 gc.time:            7.000 ms


# Run progress: 27.78% complete, ETA 00:01:08
# Fork: 2 of 2
# Warmup Iteration   1: 145.430 ns/op
# Warmup Iteration   2: 113.623 ns/op
Iteration   1: 111.247 ns/op
                 gc.alloc.rate:      2707.400 MB/sec
                 gc.alloc.rate.norm: 315.861 B/op
                 gc.count:           18.000 counts
                 gc.time:            6.000 ms

Iteration   2: 108.970 ns/op
                 gc.alloc.rate:      2763.891 MB/sec
                 gc.alloc.rate.norm: 315.864 B/op
                 gc.count:           18.000 counts
                 gc.time:            7.000 ms

Iteration   3: 108.351 ns/op
                 gc.alloc.rate:      2779.749 MB/sec
                 gc.alloc.rate.norm: 315.869 B/op
                 gc.count:           18.000 counts
                 gc.time:            6.000 ms



Result "blog.libraries.LibraryBenchmarks.caffeineMiss":
  112.129 ±(99.9%) 16.556 ns/op [Average]
  (min, avg, max) = (108.351, 112.129, 123.982), stdev = 5.904
  CI (99.9%): [95.572, 128.685] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineMiss:gc.alloc.rate":
  2691.865 ±(99.9%) 368.345 MB/sec [Average]
  (min, avg, max) = (2429.302, 2691.865, 2779.749), stdev = 131.355
  CI (99.9%): [2323.521, 3060.210] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineMiss:gc.alloc.rate.norm":
  315.866 ±(99.9%) 0.015 B/op [Average]
  (min, avg, max) = (315.861, 315.866, 315.875), stdev = 0.005
  CI (99.9%): [315.850, 315.881] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineMiss:gc.count":
  106.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (16.000, 17.667, 18.000), stdev = 0.816
  CI (99.9%): [106.000, 106.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.caffeineMiss:gc.time":
  39.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (6.000, 6.500, 7.000), stdev = 0.548
  CI (99.9%): [39.000, 39.000] (assumes normal distribution)


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.eagerTransform
# Parameters: (size = 1024)

# Run progress: 33.33% complete, ETA 00:01:03
# Fork: 1 of 2
# Warmup Iteration   1: 3663.837 ns/op
# Warmup Iteration   2: 3568.118 ns/op
Iteration   1: 2589.239 ns/op
                 gc.alloc.rate:      7556.450 MB/sec
                 gc.alloc.rate.norm: 20520.018 B/op
                 gc.count:           50.000 counts
                 gc.time:            16.000 ms

Iteration   2: 2601.141 ns/op
                 gc.alloc.rate:      7522.221 MB/sec
                 gc.alloc.rate.norm: 20520.018 B/op
                 gc.count:           50.000 counts
                 gc.time:            16.000 ms

Iteration   3: 2684.522 ns/op
                 gc.alloc.rate:      7288.061 MB/sec
                 gc.alloc.rate.norm: 20520.018 B/op
                 gc.count:           49.000 counts
                 gc.time:            17.000 ms


# Run progress: 38.89% complete, ETA 00:00:58
# Fork: 2 of 2
# Warmup Iteration   1: 3416.572 ns/op
# Warmup Iteration   2: 3769.335 ns/op
Iteration   1: 2784.493 ns/op
                 gc.alloc.rate:      7026.223 MB/sec
                 gc.alloc.rate.norm: 20520.019 B/op
                 gc.count:           47.000 counts
                 gc.time:            19.000 ms

Iteration   2: 2667.261 ns/op
                 gc.alloc.rate:      7335.546 MB/sec
                 gc.alloc.rate.norm: 20520.018 B/op
                 gc.count:           48.000 counts
                 gc.time:            20.000 ms

Iteration   3: 2742.142 ns/op
                 gc.alloc.rate:      7135.565 MB/sec
                 gc.alloc.rate.norm: 20520.019 B/op
                 gc.count:           47.000 counts
                 gc.time:            21.000 ms



Result "blog.libraries.LibraryBenchmarks.eagerTransform":
  2678.133 ±(99.9%) 215.023 ns/op [Average]
  (min, avg, max) = (2589.239, 2678.133, 2784.493), stdev = 76.679
  CI (99.9%): [2463.110, 2893.156] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.eagerTransform:gc.alloc.rate":
  7310.678 ±(99.9%) 585.348 MB/sec [Average]
  (min, avg, max) = (7026.223, 7310.678, 7556.450), stdev = 208.741
  CI (99.9%): [6725.330, 7896.026] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.eagerTransform:gc.alloc.rate.norm":
  20520.018 ±(99.9%) 0.001 B/op [Average]
  (min, avg, max) = (20520.018, 20520.018, 20520.019), stdev = 0.001
  CI (99.9%): [20520.017, 20520.020] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.eagerTransform:gc.count":
  291.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (47.000, 48.500, 50.000), stdev = 1.378
  CI (99.9%): [291.000, 291.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.eagerTransform:gc.time":
  109.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (16.000, 18.167, 21.000), stdev = 2.137
  CI (99.9%): [109.000, 109.000] (assumes normal distribution)


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.eclipseLookup
# Parameters: (size = 1024)

# Run progress: 44.44% complete, ETA 00:00:53
# Fork: 1 of 2
# Warmup Iteration   1: 1.339 ns/op
# Warmup Iteration   2: 1.371 ns/op
Iteration   1: 1.393 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   2: 1.318 ns/op
                 gc.alloc.rate:      0.006 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   3: 1.332 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts


# Run progress: 50.00% complete, ETA 00:00:47
# Fork: 2 of 2
# Warmup Iteration   1: 1.289 ns/op
# Warmup Iteration   2: 1.298 ns/op
Iteration   1: 1.263 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   2: 1.232 ns/op
                 gc.alloc.rate:      0.006 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   3: 1.221 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts



Result "blog.libraries.LibraryBenchmarks.eclipseLookup":
  1.293 ±(99.9%) 0.186 ns/op [Average]
  (min, avg, max) = (1.221, 1.293, 1.393), stdev = 0.066
  CI (99.9%): [1.107, 1.479] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.eclipseLookup:gc.alloc.rate":
  0.007 ±(99.9%) 0.001 MB/sec [Average]
  (min, avg, max) = (0.006, 0.007, 0.007), stdev = 0.001
  CI (99.9%): [0.006, 0.007] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.eclipseLookup:gc.alloc.rate.norm":
  ≈ 10⁻⁵ B/op

Secondary result "blog.libraries.LibraryBenchmarks.eclipseLookup:gc.count":
  ≈ 0 counts


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.fastutilLookup
# Parameters: (size = 1024)

# Run progress: 55.56% complete, ETA 00:00:42
# Fork: 1 of 2
# Warmup Iteration   1: 1.635 ns/op
# Warmup Iteration   2: 1.493 ns/op
Iteration   1: 1.516 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   2: 1.605 ns/op
                 gc.alloc.rate:      0.006 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   3: 1.490 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts


# Run progress: 61.11% complete, ETA 00:00:37
# Fork: 2 of 2
# Warmup Iteration   1: 1.535 ns/op
# Warmup Iteration   2: 1.521 ns/op
Iteration   1: 1.557 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   2: 1.494 ns/op
                 gc.alloc.rate:      0.006 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts

Iteration   3: 1.476 ns/op
                 gc.alloc.rate:      0.007 MB/sec
                 gc.alloc.rate.norm: ≈ 10⁻⁵ B/op
                 gc.count:           ≈ 0 counts



Result "blog.libraries.LibraryBenchmarks.fastutilLookup":
  1.523 ±(99.9%) 0.139 ns/op [Average]
  (min, avg, max) = (1.476, 1.523, 1.605), stdev = 0.049
  CI (99.9%): [1.384, 1.662] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.fastutilLookup:gc.alloc.rate":
  0.007 ±(99.9%) 0.001 MB/sec [Average]
  (min, avg, max) = (0.006, 0.007, 0.007), stdev = 0.001
  CI (99.9%): [0.006, 0.007] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.fastutilLookup:gc.alloc.rate.norm":
  ≈ 10⁻⁵ B/op

Secondary result "blog.libraries.LibraryBenchmarks.fastutilLookup:gc.count":
  ≈ 0 counts


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.guavaHit
# Parameters: (size = 1024)

# Run progress: 66.67% complete, ETA 00:00:31
# Fork: 1 of 2
# Warmup Iteration   1: 30.070 ns/op
# Warmup Iteration   2: 25.370 ns/op
Iteration   1: 28.164 ns/op
                 gc.alloc.rate:      1354.259 MB/sec
                 gc.alloc.rate.norm: 40.000 B/op
                 gc.count:           9.000 counts
                 gc.time:            4.000 ms

Iteration   2: 27.917 ns/op
                 gc.alloc.rate:      1366.132 MB/sec
                 gc.alloc.rate.norm: 40.000 B/op
                 gc.count:           9.000 counts
                 gc.time:            5.000 ms

Iteration   3: 29.951 ns/op
                 gc.alloc.rate:      1273.435 MB/sec
                 gc.alloc.rate.norm: 40.000 B/op
                 gc.count:           8.000 counts
                 gc.time:            18.000 ms


# Run progress: 72.22% complete, ETA 00:00:26
# Fork: 2 of 2
# Warmup Iteration   1: 29.542 ns/op
# Warmup Iteration   2: 28.464 ns/op
Iteration   1: 26.232 ns/op
                 gc.alloc.rate:      1453.882 MB/sec
                 gc.alloc.rate.norm: 40.000 B/op
                 gc.count:           10.000 counts
                 gc.time:            21.000 ms

Iteration   2: 26.132 ns/op
                 gc.alloc.rate:      1459.283 MB/sec
                 gc.alloc.rate.norm: 40.000 B/op
                 gc.count:           9.000 counts
                 gc.time:            8.000 ms

Iteration   3: 27.383 ns/op
                 gc.alloc.rate:      1392.752 MB/sec
                 gc.alloc.rate.norm: 40.000 B/op
                 gc.count:           9.000 counts
                 gc.time:            7.000 ms



Result "blog.libraries.LibraryBenchmarks.guavaHit":
  27.630 ±(99.9%) 3.969 ns/op [Average]
  (min, avg, max) = (26.132, 27.630, 29.951), stdev = 1.415
  CI (99.9%): [23.661, 31.598] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaHit:gc.alloc.rate":
  1383.290 ±(99.9%) 194.494 MB/sec [Average]
  (min, avg, max) = (1273.435, 1383.290, 1459.283), stdev = 69.358
  CI (99.9%): [1188.797, 1577.784] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaHit:gc.alloc.rate.norm":
  40.000 ±(99.9%) 0.001 B/op [Average]
  (min, avg, max) = (40.000, 40.000, 40.000), stdev = 0.001
  CI (99.9%): [40.000, 40.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaHit:gc.count":
  54.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (8.000, 9.000, 10.000), stdev = 0.632
  CI (99.9%): [54.000, 54.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaHit:gc.time":
  63.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (4.000, 10.500, 21.000), stdev = 7.176
  CI (99.9%): [63.000, 63.000] (assumes normal distribution)


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.guavaMiss
# Parameters: (size = 1024)

# Run progress: 77.78% complete, ETA 00:00:21
# Fork: 1 of 2
# Warmup Iteration   1: 181.395 ns/op
# Warmup Iteration   2: 164.258 ns/op
Iteration   1: 160.130 ns/op
                 gc.alloc.rate:      1212.967 MB/sec
                 gc.alloc.rate.norm: 203.710 B/op
                 gc.count:           8.000 counts
                 gc.time:            4.000 ms

Iteration   2: 174.246 ns/op
                 gc.alloc.rate:      1113.979 MB/sec
                 gc.alloc.rate.norm: 203.710 B/op
                 gc.count:           7.000 counts
                 gc.time:            7.000 ms

Iteration   3: 152.280 ns/op
                 gc.alloc.rate:      1273.962 MB/sec
                 gc.alloc.rate.norm: 203.722 B/op
                 gc.count:           9.000 counts
                 gc.time:            14.000 ms


# Run progress: 83.33% complete, ETA 00:00:15
# Fork: 2 of 2
# Warmup Iteration   1: 186.498 ns/op
# Warmup Iteration   2: 151.519 ns/op
Iteration   1: 151.285 ns/op
                 gc.alloc.rate:      1283.831 MB/sec
                 gc.alloc.rate.norm: 203.707 B/op
                 gc.count:           8.000 counts
                 gc.time:            24.000 ms

Iteration   2: 139.654 ns/op
                 gc.alloc.rate:      1390.896 MB/sec
                 gc.alloc.rate.norm: 203.717 B/op
                 gc.count:           10.000 counts
                 gc.time:            4.000 ms

Iteration   3: 139.866 ns/op
                 gc.alloc.rate:      1388.815 MB/sec
                 gc.alloc.rate.norm: 203.714 B/op
                 gc.count:           9.000 counts
                 gc.time:            4.000 ms



Result "blog.libraries.LibraryBenchmarks.guavaMiss":
  152.910 ±(99.9%) 36.696 ns/op [Average]
  (min, avg, max) = (139.654, 152.910, 174.246), stdev = 13.086
  CI (99.9%): [116.214, 189.606] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaMiss:gc.alloc.rate":
  1277.408 ±(99.9%) 297.312 MB/sec [Average]
  (min, avg, max) = (1113.979, 1277.408, 1390.896), stdev = 106.024
  CI (99.9%): [980.096, 1574.721] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaMiss:gc.alloc.rate.norm":
  203.713 ±(99.9%) 0.016 B/op [Average]
  (min, avg, max) = (203.707, 203.713, 203.722), stdev = 0.006
  CI (99.9%): [203.698, 203.729] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaMiss:gc.count":
  51.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (7.000, 8.500, 10.000), stdev = 1.049
  CI (99.9%): [51.000, 51.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.guavaMiss:gc.time":
  57.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (4.000, 9.500, 24.000), stdev = 8.093
  CI (99.9%): [57.000, 57.000] (assumes normal distribution)


# JMH version: 1.37
# VM version: JDK 21.0.11, OpenJDK 64-Bit Server VM, 21.0.11+10-LTS
# VM invoker: /Users/magicliang/.sdkman/candidates/java/21.0.11-amzn/bin/java
# VM options: -Xms256m -Xmx256m
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 2 iterations, 1 s each
# Measurement: 3 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: blog.libraries.LibraryBenchmarks.lazyTransformThenMaterialize
# Parameters: (size = 1024)

# Run progress: 88.89% complete, ETA 00:00:10
# Fork: 1 of 2
# Warmup Iteration   1: 3761.183 ns/op
# Warmup Iteration   2: 3320.599 ns/op
Iteration   1: 4263.724 ns/op
                 gc.alloc.rate:      5514.008 MB/sec
                 gc.alloc.rate.norm: 24664.029 B/op
                 gc.count:           36.000 counts
                 gc.time:            13.000 ms

Iteration   2: 4291.892 ns/op
                 gc.alloc.rate:      5478.990 MB/sec
                 gc.alloc.rate.norm: 24664.030 B/op
                 gc.count:           37.000 counts
                 gc.time:            12.000 ms

Iteration   3: 4113.499 ns/op
                 gc.alloc.rate:      5717.408 MB/sec
                 gc.alloc.rate.norm: 24664.028 B/op
                 gc.count:           38.000 counts
                 gc.time:            13.000 ms


# Run progress: 94.44% complete, ETA 00:00:05
# Fork: 2 of 2
# Warmup Iteration   1: 3319.380 ns/op
# Warmup Iteration   2: 3175.296 ns/op
Iteration   1: 4259.408 ns/op
                 gc.alloc.rate:      5521.469 MB/sec
                 gc.alloc.rate.norm: 24664.029 B/op
                 gc.count:           37.000 counts
                 gc.time:            13.000 ms

Iteration   2: 4171.755 ns/op
                 gc.alloc.rate:      5637.092 MB/sec
                 gc.alloc.rate.norm: 24664.029 B/op
                 gc.count:           38.000 counts
                 gc.time:            13.000 ms

Iteration   3: 4307.781 ns/op
                 gc.alloc.rate:      5459.409 MB/sec
                 gc.alloc.rate.norm: 24664.030 B/op
                 gc.count:           36.000 counts
                 gc.time:            12.000 ms



Result "blog.libraries.LibraryBenchmarks.lazyTransformThenMaterialize":
  4234.677 ±(99.9%) 212.513 ns/op [Average]
  (min, avg, max) = (4113.499, 4234.677, 4307.781), stdev = 75.784
  CI (99.9%): [4022.164, 4447.190] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.lazyTransformThenMaterialize:gc.alloc.rate":
  5554.729 ±(99.9%) 282.750 MB/sec [Average]
  (min, avg, max) = (5459.409, 5554.729, 5717.408), stdev = 100.831
  CI (99.9%): [5271.979, 5837.479] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.lazyTransformThenMaterialize:gc.alloc.rate.norm":
  24664.029 ±(99.9%) 0.002 B/op [Average]
  (min, avg, max) = (24664.028, 24664.029, 24664.030), stdev = 0.001
  CI (99.9%): [24664.028, 24664.031] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.lazyTransformThenMaterialize:gc.count":
  222.000 ±(99.9%) 0.001 counts [Sum]
  (min, avg, max) = (36.000, 37.000, 38.000), stdev = 0.894
  CI (99.9%): [222.000, 222.000] (assumes normal distribution)

Secondary result "blog.libraries.LibraryBenchmarks.lazyTransformThenMaterialize:gc.time":
  76.000 ±(99.9%) 0.001 ms [Sum]
  (min, avg, max) = (12.000, 12.667, 13.000), stdev = 0.516
  CI (99.9%): [76.000, 76.000] (assumes normal distribution)


# Run complete. Total time: 00:01:35

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                                                          (size)  Mode  Cnt      Score     Error   Units
LibraryBenchmarks.boxedLookup                                        1024  avgt    6      2.186 ±   0.206   ns/op
LibraryBenchmarks.boxedLookup:gc.alloc.rate                          1024  avgt    6   6987.020 ± 676.956  MB/sec
LibraryBenchmarks.boxedLookup:gc.alloc.rate.norm                     1024  avgt    6     16.000 ±   0.001    B/op
LibraryBenchmarks.boxedLookup:gc.count                               1024  avgt    6    277.000            counts
LibraryBenchmarks.boxedLookup:gc.time                                1024  avgt    6    100.000                ms
LibraryBenchmarks.caffeineHit                                        1024  avgt    6     13.504 ±   1.549   ns/op
LibraryBenchmarks.caffeineHit:gc.alloc.rate                          1024  avgt    6   1131.313 ± 128.402  MB/sec
LibraryBenchmarks.caffeineHit:gc.alloc.rate.norm                     1024  avgt    6     16.000 ±   0.001    B/op
LibraryBenchmarks.caffeineHit:gc.count                               1024  avgt    6     45.000            counts
LibraryBenchmarks.caffeineHit:gc.time                                1024  avgt    6     23.000                ms
LibraryBenchmarks.caffeineMiss                                       1024  avgt    6    112.129 ±  16.556   ns/op
LibraryBenchmarks.caffeineMiss:gc.alloc.rate                         1024  avgt    6   2691.865 ± 368.345  MB/sec
LibraryBenchmarks.caffeineMiss:gc.alloc.rate.norm                    1024  avgt    6    315.866 ±   0.015    B/op
LibraryBenchmarks.caffeineMiss:gc.count                              1024  avgt    6    106.000            counts
LibraryBenchmarks.caffeineMiss:gc.time                               1024  avgt    6     39.000                ms
LibraryBenchmarks.eagerTransform                                     1024  avgt    6   2678.133 ± 215.023   ns/op
LibraryBenchmarks.eagerTransform:gc.alloc.rate                       1024  avgt    6   7310.678 ± 585.348  MB/sec
LibraryBenchmarks.eagerTransform:gc.alloc.rate.norm                  1024  avgt    6  20520.018 ±   0.001    B/op
LibraryBenchmarks.eagerTransform:gc.count                            1024  avgt    6    291.000            counts
LibraryBenchmarks.eagerTransform:gc.time                             1024  avgt    6    109.000                ms
LibraryBenchmarks.eclipseLookup                                      1024  avgt    6      1.293 ±   0.186   ns/op
LibraryBenchmarks.eclipseLookup:gc.alloc.rate                        1024  avgt    6      0.007 ±   0.001  MB/sec
LibraryBenchmarks.eclipseLookup:gc.alloc.rate.norm                   1024  avgt    6     ≈ 10⁻⁵              B/op
LibraryBenchmarks.eclipseLookup:gc.count                             1024  avgt    6        ≈ 0            counts
LibraryBenchmarks.fastutilLookup                                     1024  avgt    6      1.523 ±   0.139   ns/op
LibraryBenchmarks.fastutilLookup:gc.alloc.rate                       1024  avgt    6      0.007 ±   0.001  MB/sec
LibraryBenchmarks.fastutilLookup:gc.alloc.rate.norm                  1024  avgt    6     ≈ 10⁻⁵              B/op
LibraryBenchmarks.fastutilLookup:gc.count                            1024  avgt    6        ≈ 0            counts
LibraryBenchmarks.guavaHit                                           1024  avgt    6     27.630 ±   3.969   ns/op
LibraryBenchmarks.guavaHit:gc.alloc.rate                             1024  avgt    6   1383.290 ± 194.494  MB/sec
LibraryBenchmarks.guavaHit:gc.alloc.rate.norm                        1024  avgt    6     40.000 ±   0.001    B/op
LibraryBenchmarks.guavaHit:gc.count                                  1024  avgt    6     54.000            counts
LibraryBenchmarks.guavaHit:gc.time                                   1024  avgt    6     63.000                ms
LibraryBenchmarks.guavaMiss                                          1024  avgt    6    152.910 ±  36.696   ns/op
LibraryBenchmarks.guavaMiss:gc.alloc.rate                            1024  avgt    6   1277.408 ± 297.312  MB/sec
LibraryBenchmarks.guavaMiss:gc.alloc.rate.norm                       1024  avgt    6    203.713 ±   0.016    B/op
LibraryBenchmarks.guavaMiss:gc.count                                 1024  avgt    6     51.000            counts
LibraryBenchmarks.guavaMiss:gc.time                                  1024  avgt    6     57.000                ms
LibraryBenchmarks.lazyTransformThenMaterialize                       1024  avgt    6   4234.677 ± 212.513   ns/op
LibraryBenchmarks.lazyTransformThenMaterialize:gc.alloc.rate         1024  avgt    6   5554.729 ± 282.750  MB/sec
LibraryBenchmarks.lazyTransformThenMaterialize:gc.alloc.rate.norm    1024  avgt    6  24664.029 ±   0.002    B/op
LibraryBenchmarks.lazyTransformThenMaterialize:gc.count              1024  avgt    6    222.000            counts
LibraryBenchmarks.lazyTransformThenMaterialize:gc.time               1024  avgt    6     76.000                ms

Benchmark result is saved to evidence/36/jmh-result.json
