Skip to content

Instantly share code, notes, and snippets.

@Lysxia
Last active March 20, 2017 13:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lysxia/bb3e6dd68f6121b904363dc48e11da0d to your computer and use it in GitHub Desktop.
Save Lysxia/bb3e6dd68f6121b904363dc48e11da0d to your computer and use it in GitHub Desktop.
aeson benchmarks comparison (pasted together, by GHC version). Left: master. Right: PR #524 (refactor ToJSON/ToEncoding).
+ date + date
Sun Mar 19 23:30:48 EDT 2017 Mon Mar 20 00:25:05 EDT 2017
+ stack clean + stack clean
+ echo 'Build stack (fast)' + echo 'Build stack (fast)'
Build stack (fast) Build stack (fast)
+ stack build --silent --flag aeson:fast + stack build --silent --flag aeson:fast
real 0m17.276s real 0m16.601s
user 0m16.753s user 0m16.127s
sys 0m0.763s sys 0m0.693s
+ stack install criterion --silent --flag aeson:fast + stack install criterion --silent --flag aeson:fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m6.193s real 0m6.341s
user 0m5.857s user 0m5.990s
sys 0m0.307s sys 0m0.320s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m8.434s real 0m8.361s
user 0m8.063s user 0m8.023s
sys 0m0.340s sys 0m0.310s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 9.520 μs (9.507 μs .. 9.536 μs) time 9.773 μs (9.763 μs .. 9.787 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.520 μs (9.510 μs .. 9.538 μs) mean 9.777 μs (9.769 μs .. 9.793 μs)
std dev 60.89 ns (36.63 ns .. 98.87 ns) std dev 52.26 ns (25.71 ns .. 100.4 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 28.55 μs (28.51 μs .. 28.59 μs) time 32.88 μs (32.83 μs .. 32.95 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 28.52 μs (28.49 μs .. 28.67 μs) mean 32.91 μs (32.85 μs .. 33.15 μs)
std dev 304.3 ns (98.25 ns .. 683.6 ns) std dev 491.2 ns (133.3 ns .. 1.107 μs)
benchmarking D/encode/th benchmarking D/encode/th
time 30.75 μs (30.72 μs .. 30.79 μs) time 30.50 μs (30.47 μs .. 30.54 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 30.77 μs (30.71 μs .. 31.07 μs) mean 30.52 μs (30.51 μs .. 30.54 μs)
std dev 545.5 ns (66.07 ns .. 1.287 μs) std dev 62.81 ns (45.31 ns .. 96.48 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 61.45 μs (61.41 μs .. 61.53 μs) time 66.27 μs (66.18 μs .. 66.37 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 61.62 μs (61.58 μs .. 61.71 μs) mean 66.20 μs (66.15 μs .. 66.36 μs)
std dev 284.8 ns (170.3 ns .. 533.9 ns) std dev 406.0 ns (140.0 ns .. 826.0 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 6.377 μs (6.366 μs .. 6.389 μs) time 6.382 μs (6.375 μs .. 6.391 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.366 μs (6.364 μs .. 6.369 μs) mean 6.388 μs (6.378 μs .. 6.417 μs)
std dev 13.49 ns (9.987 ns .. 18.39 ns) std dev 75.14 ns (23.88 ns .. 156.2 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 3.066 μs (3.058 μs .. 3.076 μs) time 3.137 μs (3.133 μs .. 3.143 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.063 μs (3.060 μs .. 3.070 μs) mean 3.136 μs (3.134 μs .. 3.140 μs)
std dev 23.49 ns (15.04 ns .. 39.46 ns) std dev 14.40 ns (8.812 ns .. 22.26 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 6.286 μs (6.277 μs .. 6.297 μs) time 6.387 μs (6.373 μs .. 6.403 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.281 μs (6.277 μs .. 6.287 μs) mean 6.382 μs (6.377 μs .. 6.393 μs)
std dev 25.33 ns (17.44 ns .. 44.67 ns) std dev 32.59 ns (23.58 ns .. 49.50 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 22.57 μs (22.54 μs .. 22.61 μs) time 25.11 μs (25.09 μs .. 25.14 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 22.59 μs (22.56 μs .. 22.68 μs) mean 25.10 μs (25.09 μs .. 25.12 μs)
std dev 247.8 ns (86.07 ns .. 507.9 ns) std dev 60.05 ns (39.96 ns .. 87.29 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 32.50 μs (32.47 μs .. 32.54 μs) time 31.52 μs (31.47 μs .. 31.57 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 32.50 μs (32.47 μs .. 32.56 μs) mean 31.57 μs (31.50 μs .. 31.79 μs)
std dev 188.2 ns (72.20 ns .. 403.6 ns) std dev 635.8 ns (71.28 ns .. 1.299 μs)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 59.38 μs (59.31 μs .. 59.48 μs) time 60.51 μs (60.45 μs .. 60.59 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 59.33 μs (59.29 μs .. 59.40 μs) mean 60.75 μs (60.55 μs .. 61.38 μs)
std dev 246.7 ns (145.9 ns .. 442.4 ns) std dev 1.646 μs (455.3 ns .. 3.401 μs)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 12.72 μs (12.69 μs .. 12.74 μs) time 12.70 μs (12.68 μs .. 12.73 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 12.68 μs (12.67 μs .. 12.71 μs) mean 12.70 μs (12.69 μs .. 12.73 μs)
std dev 74.57 ns (40.13 ns .. 137.6 ns) std dev 92.86 ns (53.73 ns .. 168.2 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 54.33 μs (54.24 μs .. 54.43 μs) time 55.02 μs (54.94 μs .. 55.11 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 54.28 μs (54.26 μs .. 54.32 μs) mean 54.94 μs (54.91 μs .. 54.98 μs)
std dev 127.3 ns (88.15 ns .. 181.7 ns) std dev 166.8 ns (115.9 ns .. 246.7 ns)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 2.802 μs (2.801 μs .. 2.804 μs) time 3.179 μs (3.173 μs .. 3.184 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.804 μs (2.802 μs .. 2.811 μs) mean 3.173 μs (3.170 μs .. 3.178 μs)
std dev 15.69 ns (6.991 ns .. 32.45 ns) std dev 17.69 ns (11.44 ns .. 29.74 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 12.65 μs (12.64 μs .. 12.67 μs) time 11.66 μs (11.64 μs .. 11.68 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 12.65 μs (12.64 μs .. 12.66 μs) mean 11.68 μs (11.67 μs .. 11.70 μs)
std dev 33.36 ns (22.97 ns .. 46.74 ns) std dev 52.31 ns (31.59 ns .. 99.75 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 7.180 μs (7.170 μs .. 7.192 μs) time 7.349 μs (7.337 μs .. 7.360 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.174 μs (7.168 μs .. 7.185 μs) mean 7.345 μs (7.341 μs .. 7.352 μs)
std dev 39.04 ns (19.38 ns .. 71.41 ns) std dev 24.69 ns (14.83 ns .. 42.90 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 14.42 μs (14.39 μs .. 14.45 μs) time 14.33 μs (14.31 μs .. 14.35 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 14.43 μs (14.40 μs .. 14.53 μs) mean 14.40 μs (14.34 μs .. 14.57 μs)
std dev 246.6 ns (52.63 ns .. 508.9 ns) std dev 439.5 ns (195.7 ns .. 838.4 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 9.481 μs (9.469 μs .. 9.496 μs) time 10.12 μs (10.11 μs .. 10.14 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.472 μs (9.467 μs .. 9.482 μs) mean 10.14 μs (10.12 μs .. 10.26 μs)
std dev 33.02 ns (20.96 ns .. 50.60 ns) std dev 220.2 ns (63.76 ns .. 497.9 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 24.65 μs (24.62 μs .. 24.68 μs) time 24.76 μs (24.73 μs .. 24.80 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 24.61 μs (24.61 μs .. 24.62 μs) mean 24.79 μs (24.78 μs .. 24.82 μs)
std dev 37.71 ns (28.40 ns .. 54.52 ns) std dev 97.84 ns (64.21 ns .. 147.2 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 22.47 ns (22.46 ns .. 22.50 ns) time 22.79 ns (22.76 ns .. 22.82 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 22.48 ns (22.46 ns .. 22.54 ns) mean 22.83 ns (22.77 ns .. 23.07 ns)
std dev 168.2 ps (41.81 ps .. 305.7 ps) std dev 488.4 ps (135.4 ps .. 1.122 ns)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 395.9 ns (395.1 ns .. 396.8 ns) time 494.0 ns (493.6 ns .. 494.6 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 395.0 ns (394.6 ns .. 395.8 ns) mean 494.0 ns (493.5 ns .. 495.6 ns)
std dev 2.540 ns (1.230 ns .. 4.797 ns) std dev 4.219 ns (1.219 ns .. 8.842 ns)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 726.1 ns (725.4 ns .. 727.2 ns) time 605.4 ns (604.1 ns .. 606.9 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 727.7 ns (726.0 ns .. 732.4 ns) mean 606.6 ns (605.0 ns .. 609.6 ns)
std dev 13.56 ns (4.484 ns .. 25.73 ns) std dev 10.75 ns (6.360 ns .. 17.56 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 1.676 μs (1.675 μs .. 1.678 μs) time 1.565 μs (1.561 μs .. 1.569 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.676 μs (1.675 μs .. 1.678 μs) mean 1.569 μs (1.567 μs .. 1.577 μs)
std dev 6.441 ns (4.152 ns .. 10.49 ns) std dev 16.42 ns (7.626 ns .. 36.96 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 295.8 ns (295.7 ns .. 296.1 ns) time 365.3 ns (364.9 ns .. 365.9 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 295.8 ns (295.7 ns .. 296.0 ns) mean 365.1 ns (364.8 ns .. 365.6 ns)
std dev 700.2 ps (395.0 ps .. 1.169 ns) std dev 1.654 ns (994.7 ps .. 2.515 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 7.469 μs (7.467 μs .. 7.471 μs) time 7.155 μs (7.142 μs .. 7.171 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.500 μs (7.482 μs .. 7.556 μs) mean 7.157 μs (7.145 μs .. 7.202 μs)
std dev 133.5 ns (61.17 ns .. 269.0 ns) std dev 99.37 ns (36.22 ns .. 217.4 ns)
+ stack clean + stack clean
+ echo 'Build stack' + echo 'Build stack'
Build stack Build stack
+ stack build --silent --flag aeson:-fast + stack build --silent --flag aeson:-fast
real 2m51.420s real 2m52.472s
user 2m50.597s user 2m51.670s
sys 0m1.297s sys 0m1.287s
+ stack install criterion --silent --flag aeson:-fast + stack install criterion --silent --flag aeson:-fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m6.138s real 0m6.318s
user 0m5.777s user 0m5.897s
sys 0m0.330s sys 0m0.400s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m12.462s real 0m13.506s
user 0m12.077s user 0m12.967s
sys 0m0.357s sys 0m0.503s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 6.112 μs (6.089 μs .. 6.131 μs) time 5.715 μs (5.706 μs .. 5.727 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.007 μs (5.991 μs .. 6.031 μs) mean 5.710 μs (5.705 μs .. 5.720 μs)
std dev 92.14 ns (66.29 ns .. 140.1 ns) std dev 34.79 ns (19.97 ns .. 58.36 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 9.294 μs (9.275 μs .. 9.313 μs) time 5.936 μs (5.928 μs .. 5.945 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.335 μs (9.314 μs .. 9.363 μs) mean 5.926 μs (5.922 μs .. 5.931 μs)
std dev 119.6 ns (90.85 ns .. 171.4 ns) std dev 22.97 ns (16.96 ns .. 34.28 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 7.401 μs (7.392 μs .. 7.412 μs) time 7.271 μs (7.254 μs .. 7.293 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.397 μs (7.391 μs .. 7.402 μs) mean 7.247 μs (7.235 μs .. 7.264 μs)
std dev 25.13 ns (21.85 ns .. 30.99 ns) std dev 65.45 ns (51.14 ns .. 91.80 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 17.80 μs (17.77 μs .. 17.84 μs) time 14.21 μs (14.20 μs .. 14.23 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 17.83 μs (17.77 μs .. 18.03 μs) mean 14.21 μs (14.20 μs .. 14.22 μs)
std dev 513.1 ns (85.89 ns .. 1.024 μs) std dev 61.77 ns (39.40 ns .. 105.5 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 3.485 μs (3.473 μs .. 3.501 μs) time 3.326 μs (3.322 μs .. 3.331 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.503 μs (3.496 μs .. 3.514 μs) mean 3.323 μs (3.320 μs .. 3.333 μs)
std dev 44.10 ns (29.54 ns .. 74.61 ns) std dev 24.89 ns (10.09 ns .. 50.63 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 1.040 μs (1.037 μs .. 1.044 μs) time 1.065 μs (1.063 μs .. 1.066 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.040 μs (1.038 μs .. 1.044 μs) mean 1.066 μs (1.064 μs .. 1.070 μs)
std dev 12.17 ns (6.578 ns .. 24.18 ns) std dev 12.09 ns (5.197 ns .. 23.16 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 2.909 μs (2.905 μs .. 2.915 μs) time 3.015 μs (3.011 μs .. 3.020 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.907 μs (2.905 μs .. 2.910 μs) mean 3.015 μs (3.012 μs .. 3.024 μs)
std dev 13.23 ns (9.410 ns .. 18.76 ns) std dev 24.96 ns (10.60 ns .. 45.64 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 3.216 μs (3.211 μs .. 3.222 μs) time 3.456 μs (3.452 μs .. 3.463 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.211 μs (3.210 μs .. 3.215 μs) mean 3.478 μs (3.462 μs .. 3.523 μs)
std dev 11.35 ns (7.293 ns .. 19.42 ns) std dev 119.2 ns (44.49 ns .. 240.2 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 4.267 μs (4.260 μs .. 4.276 μs) time 4.299 μs (4.291 μs .. 4.307 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 4.270 μs (4.261 μs .. 4.302 μs) mean 4.292 μs (4.288 μs .. 4.301 μs)
std dev 69.85 ns (22.74 ns .. 156.9 ns) std dev 26.07 ns (15.13 ns .. 49.55 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 6.451 μs (6.446 μs .. 6.459 μs) time 4.246 μs (4.239 μs .. 4.253 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.456 μs (6.448 μs .. 6.474 μs) mean 4.245 μs (4.241 μs .. 4.254 μs)
std dev 54.74 ns (32.66 ns .. 93.55 ns) std dev 29.64 ns (14.96 ns .. 58.99 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 7.484 μs (7.474 μs .. 7.494 μs) time 7.093 μs (7.081 μs .. 7.105 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.474 μs (7.468 μs .. 7.489 μs) mean 7.079 μs (7.074 μs .. 7.089 μs)
std dev 44.55 ns (23.53 ns .. 88.22 ns) std dev 36.39 ns (23.11 ns .. 59.56 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 12.62 μs (12.60 μs .. 12.64 μs) time 12.10 μs (12.09 μs .. 12.12 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 12.63 μs (12.61 μs .. 12.67 μs) mean 12.15 μs (12.09 μs .. 12.36 μs)
std dev 129.6 ns (85.03 ns .. 221.5 ns) std dev 512.0 ns (42.16 ns .. 1.117 μs)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 1.112 μs (1.111 μs .. 1.114 μs) time 1.092 μs (1.091 μs .. 1.093 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.112 μs (1.111 μs .. 1.113 μs) mean 1.093 μs (1.092 μs .. 1.097 μs)
std dev 3.679 ns (2.370 ns .. 6.380 ns) std dev 10.25 ns (4.482 ns .. 21.53 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 1.249 μs (1.247 μs .. 1.250 μs) time 1.194 μs (1.193 μs .. 1.196 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.249 μs (1.248 μs .. 1.252 μs) mean 1.195 μs (1.194 μs .. 1.199 μs)
std dev 8.933 ns (1.930 ns .. 19.11 ns) std dev 10.44 ns (4.680 ns .. 19.03 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 551.3 ns (550.4 ns .. 552.1 ns) time 545.3 ns (544.6 ns .. 546.2 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 550.4 ns (549.7 ns .. 551.7 ns) mean 546.2 ns (545.6 ns .. 548.0 ns)
std dev 4.664 ns (2.712 ns .. 6.993 ns) std dev 4.766 ns (1.301 ns .. 9.305 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 2.503 μs (2.498 μs .. 2.508 μs) time 2.395 μs (2.392 μs .. 2.399 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.502 μs (2.500 μs .. 2.509 μs) mean 2.397 μs (2.394 μs .. 2.404 μs)
std dev 19.63 ns (8.757 ns .. 41.60 ns) std dev 22.55 ns (11.82 ns .. 40.62 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 6.004 μs (5.995 μs .. 6.014 μs) time 5.338 μs (5.332 μs .. 5.344 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.013 μs (6.002 μs .. 6.044 μs) mean 5.330 μs (5.327 μs .. 5.336 μs)
std dev 82.01 ns (35.67 ns .. 162.4 ns) std dev 17.36 ns (10.41 ns .. 33.29 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 7.463 μs (7.440 μs .. 7.495 μs) time 7.011 μs (7.000 μs .. 7.024 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.456 μs (7.450 μs .. 7.465 μs) mean 7.004 μs (6.997 μs .. 7.022 μs)
std dev 35.65 ns (30.08 ns .. 50.16 ns) std dev 51.30 ns (22.93 ns .. 100.1 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 9.984 ns (9.975 ns .. 9.996 ns) time 9.986 ns (9.973 ns .. 10.00 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.976 ns (9.974 ns .. 9.981 ns) mean 9.981 ns (9.974 ns .. 9.998 ns)
std dev 18.07 ps (12.71 ps .. 25.01 ps) std dev 52.37 ps (27.76 ps .. 101.0 ps)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 62.22 ns (62.18 ns .. 62.27 ns) time 62.08 ns (61.97 ns .. 62.20 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 62.29 ns (62.20 ns .. 62.51 ns) mean 62.00 ns (61.94 ns .. 62.11 ns)
std dev 656.1 ps (243.8 ps .. 1.159 ns) std dev 406.7 ps (257.4 ps .. 640.2 ps)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 220.7 ns (220.0 ns .. 221.5 ns) time 225.0 ns (224.5 ns .. 225.6 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 220.2 ns (219.9 ns .. 220.7 ns) mean 224.5 ns (224.3 ns .. 225.3 ns)
std dev 1.662 ns (1.142 ns .. 2.497 ns) std dev 2.105 ns (732.4 ps .. 4.660 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 220.8 ns (220.4 ns .. 221.3 ns) time 221.3 ns (220.8 ns .. 221.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 222.3 ns (221.3 ns .. 228.2 ns) mean 223.0 ns (222.3 ns .. 224.9 ns)
std dev 8.996 ns (1.504 ns .. 23.17 ns) std dev 5.244 ns (1.947 ns .. 10.87 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 285.6 ns (285.1 ns .. 286.1 ns) time 284.5 ns (284.1 ns .. 285.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 286.4 ns (285.2 ns .. 290.0 ns) mean 285.4 ns (284.4 ns .. 288.6 ns)
std dev 9.297 ns (3.695 ns .. 18.96 ns) std dev 8.747 ns (1.918 ns .. 18.61 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 1.962 μs (1.959 μs .. 1.966 μs) time 1.963 μs (1.958 μs .. 1.970 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.960 μs (1.959 μs .. 1.962 μs) mean 1.965 μs (1.960 μs .. 1.977 μs)
std dev 7.240 ns (5.041 ns .. 10.00 ns) std dev 34.62 ns (16.63 ns .. 59.28 ns)   
+ date + date
Mon Mar 20 01:20:53 EDT 2017 Mon Mar 20 02:19:01 EDT 2017
+ stack clean + stack clean
+ echo 'Build stack (fast)' + echo 'Build stack (fast)'
Build stack (fast) Build stack (fast)
+ stack build --silent --flag aeson:fast + stack build --silent --flag aeson:fast
real 0m15.856s real 0m15.814s
user 0m15.280s user 0m15.300s
sys 0m0.690s sys 0m0.663s
+ stack install criterion --silent --flag aeson:fast + stack install criterion --silent --flag aeson:fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m6.488s real 0m6.520s
user 0m6.127s user 0m6.043s
sys 0m0.323s sys 0m0.447s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m9.327s real 0m9.484s
user 0m8.903s user 0m9.063s
sys 0m0.383s sys 0m0.393s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 10.91 μs (10.90 μs .. 10.92 μs) time 10.66 μs (10.64 μs .. 10.69 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 10.92 μs (10.91 μs .. 10.96 μs) mean 10.66 μs (10.65 μs .. 10.70 μs)
std dev 103.9 ns (40.74 ns .. 208.8 ns) std dev 113.7 ns (67.06 ns .. 199.1 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 26.80 μs (26.78 μs .. 26.83 μs) time 32.22 μs (32.17 μs .. 32.28 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 26.81 μs (26.79 μs .. 26.86 μs) mean 32.19 μs (32.16 μs .. 32.32 μs)
std dev 158.1 ns (90.26 ns .. 291.3 ns) std dev 305.4 ns (129.9 ns .. 605.4 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 31.87 μs (31.82 μs .. 31.92 μs) time 32.03 μs (32.00 μs .. 32.07 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 31.91 μs (31.88 μs .. 31.94 μs) mean 32.10 μs (32.07 μs .. 32.18 μs)
std dev 131.2 ns (99.91 ns .. 199.5 ns) std dev 252.5 ns (166.0 ns .. 385.6 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 59.71 μs (59.63 μs .. 59.79 μs) time 66.27 μs (66.22 μs .. 66.35 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 59.69 μs (59.63 μs .. 59.83 μs) mean 66.29 μs (66.24 μs .. 66.38 μs)
std dev 417.6 ns (217.1 ns .. 807.7 ns) std dev 340.9 ns (213.8 ns .. 567.6 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 6.696 μs (6.683 μs .. 6.710 μs) time 6.637 μs (6.620 μs .. 6.662 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.704 μs (6.700 μs .. 6.708 μs) mean 6.619 μs (6.614 μs .. 6.627 μs)
std dev 19.10 ns (16.25 ns .. 24.23 ns) std dev 32.42 ns (23.52 ns .. 47.65 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 2.179 μs (2.177 μs .. 2.182 μs) time 2.112 μs (2.108 μs .. 2.117 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.183 μs (2.179 μs .. 2.194 μs) mean 2.109 μs (2.107 μs .. 2.115 μs)
std dev 28.54 ns (12.12 ns .. 59.82 ns) std dev 17.07 ns (8.528 ns .. 32.23 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 6.039 μs (6.031 μs .. 6.049 μs) time 6.144 μs (6.133 μs .. 6.155 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.047 μs (6.035 μs .. 6.084 μs) mean 6.150 μs (6.138 μs .. 6.171 μs)
std dev 92.84 ns (21.17 ns .. 187.7 ns) std dev 75.50 ns (46.15 ns .. 113.5 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 18.83 μs (18.80 μs .. 18.86 μs) time 24.20 μs (24.19 μs .. 24.21 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 18.82 μs (18.80 μs .. 18.86 μs) mean 24.25 μs (24.21 μs .. 24.33 μs)
std dev 118.3 ns (68.63 ns .. 206.6 ns) std dev 267.8 ns (166.9 ns .. 414.2 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 31.99 μs (31.91 μs .. 32.07 μs) time 31.55 μs (31.52 μs .. 31.61 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 32.06 μs (32.03 μs .. 32.12 μs) mean 31.70 μs (31.66 μs .. 31.85 μs)
std dev 202.8 ns (127.8 ns .. 353.8 ns) std dev 354.8 ns (102.2 ns .. 740.7 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 62.25 μs (62.10 μs .. 62.39 μs) time 53.29 μs (53.18 μs .. 53.42 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 62.27 μs (62.08 μs .. 62.97 μs) mean 53.20 μs (53.16 μs .. 53.33 μs)
std dev 1.562 μs (361.8 ns .. 3.295 μs) std dev 360.9 ns (147.3 ns .. 720.7 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 13.27 μs (13.23 μs .. 13.32 μs) time 13.36 μs (13.32 μs .. 13.41 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 13.26 μs (13.24 μs .. 13.35 μs) mean 13.34 μs (13.32 μs .. 13.37 μs)
std dev 216.9 ns (63.75 ns .. 445.1 ns) std dev 105.3 ns (58.58 ns .. 186.6 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 45.24 μs (45.22 μs .. 45.28 μs) time 43.58 μs (43.43 μs .. 43.78 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 45.31 μs (45.25 μs .. 45.58 μs) mean 43.44 μs (43.41 μs .. 43.48 μs)
std dev 535.5 ns (90.49 ns .. 1.250 μs) std dev 185.9 ns (116.8 ns .. 280.9 ns)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 2.414 μs (2.409 μs .. 2.421 μs) time 2.433 μs (2.431 μs .. 2.436 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.419 μs (2.408 μs .. 2.471 μs) mean 2.446 μs (2.435 μs .. 2.485 μs)
std dev 99.90 ns (6.254 ns .. 237.6 ns) std dev 93.74 ns (16.78 ns .. 197.5 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 10.51 μs (10.49 μs .. 10.53 μs) time 11.96 μs (11.95 μs .. 11.99 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 10.50 μs (10.49 μs .. 10.52 μs) mean 11.97 μs (11.95 μs .. 12.03 μs)
std dev 78.04 ns (41.11 ns .. 131.9 ns) std dev 176.1 ns (65.54 ns .. 351.2 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 7.177 μs (7.164 μs .. 7.189 μs) time 6.897 μs (6.883 μs .. 6.913 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.166 μs (7.161 μs .. 7.174 μs) mean 6.884 μs (6.880 μs .. 6.896 μs)
std dev 32.67 ns (23.86 ns .. 46.69 ns) std dev 32.94 ns (16.72 ns .. 63.50 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 14.39 μs (14.38 μs .. 14.40 μs) time 14.63 μs (14.60 μs .. 14.66 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 14.41 μs (14.38 μs .. 14.53 μs) mean 14.61 μs (14.59 μs .. 14.65 μs)
std dev 246.9 ns (33.52 ns .. 574.1 ns) std dev 113.4 ns (58.00 ns .. 208.6 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 11.30 μs (11.27 μs .. 11.32 μs) time 11.11 μs (11.09 μs .. 11.14 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 11.26 μs (11.25 μs .. 11.27 μs) mean 11.10 μs (11.09 μs .. 11.11 μs)
std dev 35.78 ns (25.35 ns .. 50.21 ns) std dev 47.06 ns (33.56 ns .. 64.14 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 23.29 μs (23.25 μs .. 23.35 μs) time 28.38 μs (28.35 μs .. 28.41 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 23.39 μs (23.37 μs .. 23.43 μs) mean 28.50 μs (28.40 μs .. 28.74 μs)
std dev 140.3 ns (116.1 ns .. 218.4 ns) std dev 724.4 ns (277.6 ns .. 1.380 μs)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 20.55 ns (20.51 ns .. 20.60 ns) time 20.90 ns (20.87 ns .. 20.93 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 20.52 ns (20.51 ns .. 20.55 ns) mean 20.91 ns (20.87 ns .. 21.08 ns)
std dev 98.87 ps (58.47 ps .. 179.9 ps) std dev 330.5 ps (100.2 ps .. 744.3 ps)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 347.4 ns (341.6 ns .. 353.5 ns) time 387.5 ns (386.9 ns .. 388.2 ns)
0.999 R² (0.998 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 342.0 ns (341.0 ns .. 344.5 ns) mean 386.9 ns (386.6 ns .. 387.4 ns)
std dev 7.045 ns (3.181 ns .. 14.16 ns) std dev 1.794 ns (1.078 ns .. 3.595 ns)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 612.1 ns (611.3 ns .. 613.1 ns) time 596.8 ns (595.9 ns .. 598.1 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 611.9 ns (611.6 ns .. 612.5 ns) mean 599.2 ns (597.1 ns .. 605.1 ns)
std dev 1.937 ns (1.241 ns .. 3.144 ns) std dev 15.81 ns (6.050 ns .. 30.84 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 1.586 μs (1.584 μs .. 1.589 μs) time 1.600 μs (1.598 μs .. 1.603 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.599 μs (1.592 μs .. 1.618 μs) mean 1.604 μs (1.602 μs .. 1.606 μs)
std dev 54.24 ns (9.532 ns .. 96.34 ns) std dev 9.235 ns (6.344 ns .. 13.64 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 482.9 ns (482.1 ns .. 484.0 ns) time 303.3 ns (302.8 ns .. 303.9 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 482.9 ns (482.2 ns .. 484.1 ns) mean 303.1 ns (302.9 ns .. 303.4 ns)
std dev 3.977 ns (2.409 ns .. 6.296 ns) std dev 1.138 ns (845.1 ps .. 1.625 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 4.875 μs (4.821 μs .. 4.950 μs) time 5.072 μs (5.060 μs .. 5.086 μs)
0.999 R² (0.998 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 4.842 μs (4.826 μs .. 4.870 μs) mean 5.070 μs (5.056 μs .. 5.136 μs)
std dev 99.99 ns (59.81 ns .. 143.5 ns) std dev 118.5 ns (22.91 ns .. 274.8 ns)
+ stack clean + stack clean
+ echo 'Build stack' + echo 'Build stack'
Build stack Build stack
+ stack build --silent --flag aeson:-fast + stack build --silent --flag aeson:-fast
real 2m51.707s real 2m50.372s
user 2m50.847s user 2m49.437s
sys 0m1.207s sys 0m1.200s
+ stack install criterion --silent --flag aeson:-fast + stack install criterion --silent --flag aeson:-fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m6.453s real 0m6.637s
user 0m6.007s user 0m6.280s
sys 0m0.417s sys 0m0.323s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m16.359s real 0m18.974s
user 0m15.960s user 0m18.560s
sys 0m0.367s sys 0m0.390s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 8.213 μs (8.204 μs .. 8.224 μs) time 8.084 μs (8.077 μs .. 8.094 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.360 μs (8.260 μs .. 8.571 μs) mean 8.084 μs (8.075 μs .. 8.100 μs)
std dev 683.0 ns (396.9 ns .. 1.087 μs) std dev 58.10 ns (28.84 ns .. 98.92 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 11.06 μs (11.06 μs .. 11.08 μs) time 9.231 μs (9.222 μs .. 9.244 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 11.06 μs (11.06 μs .. 11.07 μs) mean 9.219 μs (9.213 μs .. 9.227 μs)
std dev 27.69 ns (17.37 ns .. 43.07 ns) std dev 33.63 ns (20.04 ns .. 49.53 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 8.524 μs (8.511 μs .. 8.545 μs) time 8.911 μs (8.899 μs .. 8.924 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.536 μs (8.526 μs .. 8.552 μs) mean 8.914 μs (8.910 μs .. 8.919 μs)
std dev 62.28 ns (37.44 ns .. 92.34 ns) std dev 20.07 ns (16.09 ns .. 30.04 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 20.79 μs (20.78 μs .. 20.80 μs) time 18.94 μs (18.91 μs .. 18.96 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 20.83 μs (20.80 μs .. 20.91 μs) mean 18.93 μs (18.92 μs .. 18.95 μs)
std dev 221.7 ns (42.83 ns .. 407.3 ns) std dev 62.34 ns (36.59 ns .. 115.0 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 3.551 μs (3.547 μs .. 3.558 μs) time 3.325 μs (3.320 μs .. 3.330 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.552 μs (3.548 μs .. 3.564 μs) mean 3.324 μs (3.319 μs .. 3.342 μs)
std dev 27.96 ns (11.53 ns .. 60.48 ns) std dev 43.45 ns (13.28 ns .. 89.63 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 1.103 μs (1.103 μs .. 1.103 μs) time 1.076 μs (1.073 μs .. 1.080 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (0.999 R² .. 1.000 R²)
mean 1.103 μs (1.103 μs .. 1.103 μs) mean 1.079 μs (1.075 μs .. 1.088 μs)
std dev 1.451 ns (1.137 ns .. 1.916 ns) std dev 27.04 ns (13.74 ns .. 51.79 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 3.196 μs (3.191 μs .. 3.203 μs) time 3.168 μs (3.166 μs .. 3.172 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.194 μs (3.193 μs .. 3.197 μs) mean 3.170 μs (3.167 μs .. 3.182 μs)
std dev 11.37 ns (7.800 ns .. 18.34 ns) std dev 29.63 ns (10.17 ns .. 60.51 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 3.444 μs (3.435 μs .. 3.455 μs) time 3.746 μs (3.744 μs .. 3.750 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.443 μs (3.436 μs .. 3.467 μs) mean 3.749 μs (3.745 μs .. 3.767 μs)
std dev 60.20 ns (19.68 ns .. 125.0 ns) std dev 32.99 ns (13.31 ns .. 70.05 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 4.198 μs (4.196 μs .. 4.202 μs) time 4.153 μs (4.149 μs .. 4.159 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 4.204 μs (4.199 μs .. 4.228 μs) mean 4.151 μs (4.150 μs .. 4.155 μs)
std dev 44.70 ns (10.73 ns .. 108.3 ns) std dev 12.25 ns (7.003 ns .. 23.05 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 6.985 μs (6.980 μs .. 6.991 μs) time 4.407 μs (4.403 μs .. 4.413 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.993 μs (6.984 μs .. 7.027 μs) mean 4.403 μs (4.402 μs .. 4.406 μs)
std dev 83.96 ns (37.21 ns .. 167.7 ns) std dev 9.809 ns (6.730 ns .. 14.66 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 8.318 μs (8.305 μs .. 8.335 μs) time 8.041 μs (8.033 μs .. 8.053 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.320 μs (8.310 μs .. 8.348 μs) mean 8.060 μs (8.045 μs .. 8.103 μs)
std dev 72.29 ns (35.44 ns .. 143.4 ns) std dev 117.7 ns (62.51 ns .. 231.3 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 12.81 μs (12.78 μs .. 12.83 μs) time 13.23 μs (13.21 μs .. 13.25 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 12.81 μs (12.79 μs .. 12.83 μs) mean 13.22 μs (13.21 μs .. 13.23 μs)
std dev 100.7 ns (40.55 ns .. 169.4 ns) std dev 35.52 ns (20.07 ns .. 63.72 ns)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 785.3 ns (784.3 ns .. 786.3 ns) time 774.2 ns (773.3 ns .. 775.1 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 785.8 ns (784.5 ns .. 789.6 ns) mean 773.2 ns (773.0 ns .. 773.6 ns)
std dev 9.412 ns (2.505 ns .. 17.86 ns) std dev 1.338 ns (949.8 ps .. 2.089 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 738.4 ns (738.0 ns .. 738.8 ns) time 689.8 ns (689.3 ns .. 690.4 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 739.2 ns (738.4 ns .. 741.6 ns) mean 690.4 ns (689.3 ns .. 695.0 ns)
std dev 6.569 ns (2.140 ns .. 13.55 ns) std dev 8.948 ns (1.520 ns .. 20.92 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 499.4 ns (499.2 ns .. 499.6 ns) time 501.4 ns (500.2 ns .. 502.6 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 499.6 ns (499.3 ns .. 500.2 ns) mean 501.0 ns (499.9 ns .. 505.8 ns)
std dev 1.890 ns (858.6 ps .. 3.682 ns) std dev 9.947 ns (2.007 ns .. 23.21 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 2.635 μs (2.634 μs .. 2.635 μs) time 2.678 μs (2.667 μs .. 2.692 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.635 μs (2.634 μs .. 2.636 μs) mean 2.677 μs (2.670 μs .. 2.702 μs)
std dev 5.487 ns (3.693 ns .. 7.911 ns) std dev 60.96 ns (23.93 ns .. 122.4 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 6.114 μs (6.104 μs .. 6.126 μs) time 6.160 μs (6.155 μs .. 6.166 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.109 μs (6.107 μs .. 6.113 μs) mean 6.183 μs (6.162 μs .. 6.240 μs)
std dev 13.32 ns (10.14 ns .. 21.02 ns) std dev 155.3 ns (63.69 ns .. 302.8 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 8.627 μs (8.615 μs .. 8.640 μs) time 7.955 μs (7.942 μs .. 7.972 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.621 μs (8.615 μs .. 8.629 μs) mean 7.961 μs (7.953 μs .. 7.973 μs)
std dev 33.12 ns (23.00 ns .. 50.94 ns) std dev 46.15 ns (32.58 ns .. 70.18 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 9.955 ns (9.945 ns .. 9.970 ns) time 9.967 ns (9.951 ns .. 9.985 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.952 ns (9.943 ns .. 9.970 ns) mean 9.950 ns (9.943 ns .. 9.962 ns)
std dev 60.74 ps (26.54 ps .. 116.9 ps) std dev 43.26 ps (28.70 ps .. 65.54 ps)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 55.62 ns (55.48 ns .. 55.93 ns) time 56.04 ns (55.92 ns .. 56.16 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 55.53 ns (55.49 ns .. 55.65 ns) mean 55.91 ns (55.86 ns .. 55.98 ns)
std dev 288.5 ps (120.8 ps .. 569.1 ps) std dev 282.8 ps (198.8 ps .. 414.6 ps)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 216.7 ns (216.6 ns .. 216.9 ns) time 215.5 ns (215.2 ns .. 215.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 216.6 ns (216.5 ns .. 216.8 ns) mean 215.9 ns (215.6 ns .. 217.3 ns)
std dev 530.1 ps (289.6 ps .. 962.4 ps) std dev 3.221 ns (594.0 ps .. 6.924 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 216.1 ns (212.1 ns .. 220.7 ns) time 247.3 ns (246.7 ns .. 248.0 ns)
0.999 R² (0.998 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 213.6 ns (213.2 ns .. 214.7 ns) mean 248.3 ns (248.0 ns .. 248.8 ns)
std dev 2.924 ns (888.7 ps .. 5.626 ns) std dev 1.923 ns (1.195 ns .. 3.325 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 323.8 ns (323.3 ns .. 324.5 ns) time 304.3 ns (303.8 ns .. 305.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 323.3 ns (323.1 ns .. 323.6 ns) mean 304.2 ns (303.9 ns .. 304.9 ns)
std dev 1.102 ns (721.1 ps .. 1.707 ns) std dev 1.967 ns (860.4 ps .. 3.868 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 1.810 μs (1.806 μs .. 1.814 μs) time 1.830 μs (1.828 μs .. 1.833 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.808 μs (1.806 μs .. 1.812 μs) mean 1.829 μs (1.827 μs .. 1.832 μs)
std dev 13.75 ns (7.636 ns .. 24.06 ns) std dev 10.60 ns (6.190 ns .. 19.91 ns)   
+ date + date
Mon Mar 20 03:17:23 EDT 2017 Mon Mar 20 04:15:17 EDT 2017
+ stack clean + stack clean
+ echo 'Build stack (fast)' + echo 'Build stack (fast)'
Build stack (fast) Build stack (fast)
+ stack build --silent --flag aeson:fast + stack build --silent --flag aeson:fast
real 0m18.763s real 0m18.008s
user 0m18.173s user 0m17.100s
sys 0m0.827s sys 0m0.843s
+ stack install criterion --silent --flag aeson:fast + stack install criterion --silent --flag aeson:fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m7.663s real 0m7.323s
user 0m7.020s user 0m6.930s
sys 0m0.410s sys 0m0.353s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m11.125s real 0m11.153s
user 0m10.660s user 0m10.720s
sys 0m0.427s sys 0m0.393s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 10.51 μs (10.51 μs .. 10.52 μs) time 10.13 μs (10.12 μs .. 10.14 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 10.52 μs (10.51 μs .. 10.55 μs) mean 10.13 μs (10.12 μs .. 10.13 μs)
std dev 80.97 ns (17.98 ns .. 157.4 ns) std dev 31.95 ns (26.52 ns .. 43.64 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 25.89 μs (25.85 μs .. 25.94 μs) time 29.20 μs (29.17 μs .. 29.25 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 25.90 μs (25.88 μs .. 25.93 μs) mean 29.18 μs (29.17 μs .. 29.21 μs)
std dev 96.07 ns (56.77 ns .. 165.2 ns) std dev 88.19 ns (62.13 ns .. 126.6 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 32.98 μs (32.84 μs .. 33.21 μs) time 33.63 μs (33.59 μs .. 33.68 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 32.95 μs (32.93 μs .. 33.00 μs) mean 33.70 μs (33.64 μs .. 33.93 μs)
std dev 143.1 ns (77.70 ns .. 272.7 ns) std dev 546.8 ns (93.17 ns .. 1.180 μs)
benchmarking D/encode/generic benchmarking D/encode/generic
time 61.65 μs (61.57 μs .. 61.73 μs) time 65.33 μs (65.25 μs .. 65.40 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 61.60 μs (61.56 μs .. 61.66 μs) mean 65.31 μs (65.18 μs .. 65.74 μs)
std dev 221.7 ns (157.3 ns .. 347.0 ns) std dev 941.4 ns (247.1 ns .. 2.117 μs)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 6.684 μs (6.667 μs .. 6.706 μs) time 6.859 μs (6.852 μs .. 6.869 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.668 μs (6.659 μs .. 6.711 μs) mean 6.873 μs (6.868 μs .. 6.881 μs)
std dev 77.91 ns (21.17 ns .. 178.2 ns) std dev 30.48 ns (19.37 ns .. 53.21 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 2.079 μs (2.075 μs .. 2.083 μs) time 2.123 μs (2.120 μs .. 2.126 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.076 μs (2.074 μs .. 2.080 μs) mean 2.120 μs (2.119 μs .. 2.121 μs)
std dev 11.96 ns (7.964 ns .. 17.40 ns) std dev 5.192 ns (3.661 ns .. 7.821 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 6.359 μs (6.349 μs .. 6.371 μs) time 6.807 μs (6.799 μs .. 6.817 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.350 μs (6.346 μs .. 6.360 μs) mean 6.820 μs (6.805 μs .. 6.880 μs)
std dev 28.76 ns (13.58 ns .. 51.21 ns) std dev 128.1 ns (36.80 ns .. 286.8 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 16.72 μs (16.69 μs .. 16.75 μs) time 21.36 μs (21.32 μs .. 21.41 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 16.72 μs (16.70 μs .. 16.80 μs) mean 21.39 μs (21.33 μs .. 21.58 μs)
std dev 226.3 ns (73.52 ns .. 426.8 ns) std dev 478.1 ns (258.4 ns .. 972.4 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 34.58 μs (34.51 μs .. 34.69 μs) time 34.54 μs (34.50 μs .. 34.60 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 34.58 μs (34.53 μs .. 34.80 μs) mean 34.54 μs (34.52 μs .. 34.60 μs)
std dev 444.7 ns (165.5 ns .. 906.1 ns) std dev 187.3 ns (114.0 ns .. 305.0 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 63.13 μs (63.01 μs .. 63.29 μs) time 58.62 μs (58.58 μs .. 58.70 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 63.00 μs (62.96 μs .. 63.05 μs) mean 58.66 μs (58.62 μs .. 58.76 μs)
std dev 218.7 ns (156.9 ns .. 283.9 ns) std dev 298.6 ns (192.1 ns .. 473.2 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 15.94 μs (15.92 μs .. 15.97 μs) time 14.34 μs (14.31 μs .. 14.37 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 15.95 μs (15.93 μs .. 15.98 μs) mean 14.32 μs (14.31 μs .. 14.33 μs)
std dev 96.00 ns (50.21 ns .. 210.7 ns) std dev 45.02 ns (31.01 ns .. 64.16 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 40.67 μs (40.57 μs .. 40.76 μs) time 40.98 μs (40.94 μs .. 41.04 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 40.60 μs (40.56 μs .. 40.67 μs) mean 41.14 μs (40.99 μs .. 41.58 μs)
std dev 257.6 ns (167.6 ns .. 433.7 ns) std dev 1.167 μs (288.5 ns .. 2.339 μs)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 2.516 μs (2.511 μs .. 2.522 μs) time 2.537 μs (2.532 μs .. 2.542 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.511 μs (2.509 μs .. 2.517 μs) mean 2.538 μs (2.534 μs .. 2.549 μs)
std dev 18.05 ns (10.99 ns .. 33.44 ns) std dev 28.42 ns (10.36 ns .. 56.64 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 11.60 μs (11.59 μs .. 11.62 μs) time 12.33 μs (12.30 μs .. 12.36 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 11.59 μs (11.58 μs .. 11.60 μs) mean 12.31 μs (12.30 μs .. 12.35 μs)
std dev 43.13 ns (27.90 ns .. 67.70 ns) std dev 79.53 ns (32.42 ns .. 171.3 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 7.481 μs (7.464 μs .. 7.505 μs) time 7.390 μs (7.379 μs .. 7.406 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.469 μs (7.464 μs .. 7.480 μs) mean 7.381 μs (7.376 μs .. 7.391 μs)
std dev 37.03 ns (24.50 ns .. 60.45 ns) std dev 31.27 ns (18.88 ns .. 55.50 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 15.19 μs (15.17 μs .. 15.22 μs) time 14.16 μs (14.13 μs .. 14.18 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 15.17 μs (15.17 μs .. 15.18 μs) mean 14.16 μs (14.14 μs .. 14.19 μs)
std dev 37.90 ns (25.42 ns .. 68.63 ns) std dev 117.5 ns (56.33 ns .. 214.1 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 12.09 μs (12.07 μs .. 12.11 μs) time 11.32 μs (11.30 μs .. 11.33 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 12.09 μs (12.08 μs .. 12.16 μs) mean 11.31 μs (11.30 μs .. 11.32 μs)
std dev 123.5 ns (46.08 ns .. 282.2 ns) std dev 62.14 ns (38.58 ns .. 106.3 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 22.66 μs (22.64 μs .. 22.70 μs) time 23.33 μs (23.29 μs .. 23.38 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 22.72 μs (22.65 μs .. 22.91 μs) mean 23.36 μs (23.35 μs .. 23.40 μs)
std dev 519.3 ns (133.4 ns .. 1.086 μs) std dev 114.9 ns (60.14 ns .. 193.7 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 20.31 ns (20.26 ns .. 20.36 ns) time 21.19 ns (21.17 ns .. 21.23 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 20.26 ns (20.23 ns .. 20.33 ns) mean 21.19 ns (21.16 ns .. 21.25 ns)
std dev 200.0 ps (115.4 ps .. 361.4 ps) std dev 183.3 ps (95.89 ps .. 344.1 ps)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 392.7 ns (392.1 ns .. 393.3 ns) time 406.7 ns (406.3 ns .. 407.3 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 392.3 ns (392.1 ns .. 392.6 ns) mean 406.2 ns (405.9 ns .. 406.9 ns)
std dev 1.091 ns (692.6 ps .. 1.939 ns) std dev 2.223 ns (1.451 ns .. 3.907 ns)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 652.6 ns (652.0 ns .. 653.5 ns) time 661.6 ns (660.2 ns .. 663.7 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 654.1 ns (652.5 ns .. 661.3 ns) mean 659.6 ns (659.1 ns .. 660.4 ns)
std dev 13.98 ns (2.146 ns .. 32.86 ns) std dev 3.079 ns (2.008 ns .. 5.197 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 1.526 μs (1.523 μs .. 1.528 μs) time 1.715 μs (1.710 μs .. 1.720 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.525 μs (1.524 μs .. 1.528 μs) mean 1.716 μs (1.714 μs .. 1.719 μs)
std dev 9.509 ns (5.326 ns .. 18.26 ns) std dev 11.80 ns (9.962 ns .. 14.28 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 442.3 ns (441.8 ns .. 442.8 ns) time 379.3 ns (378.7 ns .. 379.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 441.7 ns (441.1 ns .. 442.9 ns) mean 379.8 ns (378.8 ns .. 382.9 ns)
std dev 3.895 ns (1.706 ns .. 7.116 ns) std dev 8.215 ns (1.153 ns .. 16.00 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 5.078 μs (5.070 μs .. 5.088 μs) time 4.888 μs (4.880 μs .. 4.897 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 5.084 μs (5.075 μs .. 5.109 μs) mean 4.887 μs (4.883 μs .. 4.897 μs)
std dev 66.63 ns (32.54 ns .. 131.4 ns) std dev 30.53 ns (17.47 ns .. 55.80 ns)
+ stack clean + stack clean
+ echo 'Build stack' + echo 'Build stack'
Build stack Build stack
+ stack build --silent --flag aeson:-fast + stack build --silent --flag aeson:-fast
real 2m29.231s real 2m29.987s
user 2m16.763s user 2m28.027s
sys 0m12.533s sys 0m1.340s
+ stack install criterion --silent --flag aeson:-fast + stack install criterion --silent --flag aeson:-fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m7.176s real 0m7.265s
user 0m6.777s user 0m6.837s
sys 0m0.360s sys 0m0.393s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m19.516s real 0m22.745s
user 0m19.010s user 0m22.313s
sys 0m0.473s sys 0m0.403s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 7.877 μs (7.864 μs .. 7.892 μs) time 7.799 μs (7.786 μs .. 7.814 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.878 μs (7.864 μs .. 7.924 μs) mean 7.789 μs (7.779 μs .. 7.803 μs)
std dev 108.1 ns (32.04 ns .. 225.6 ns) std dev 55.76 ns (35.23 ns .. 92.25 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 10.32 μs (10.30 μs .. 10.34 μs) time 9.146 μs (9.141 μs .. 9.153 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 10.30 μs (10.29 μs .. 10.35 μs) mean 9.142 μs (9.136 μs .. 9.153 μs)
std dev 121.9 ns (40.00 ns .. 274.2 ns) std dev 40.53 ns (26.24 ns .. 73.11 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 8.308 μs (8.298 μs .. 8.320 μs) time 8.408 μs (8.390 μs .. 8.445 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.326 μs (8.308 μs .. 8.387 μs) mean 8.395 μs (8.385 μs .. 8.416 μs)
std dev 132.9 ns (29.78 ns .. 294.6 ns) std dev 68.76 ns (32.44 ns .. 121.6 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 19.97 μs (19.95 μs .. 20.00 μs) time 18.11 μs (18.08 μs .. 18.13 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 20.01 μs (19.97 μs .. 20.14 μs) mean 18.12 μs (18.09 μs .. 18.18 μs)
std dev 351.2 ns (90.07 ns .. 627.4 ns) std dev 209.3 ns (98.66 ns .. 396.1 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 3.280 μs (3.277 μs .. 3.282 μs) time 3.500 μs (3.474 μs .. 3.548 μs)
1.000 R² (1.000 R² .. 1.000 R²) 0.999 R² (0.999 R² .. 1.000 R²)
mean 3.282 μs (3.280 μs .. 3.285 μs) mean 3.483 μs (3.476 μs .. 3.495 μs)
std dev 11.98 ns (9.546 ns .. 16.28 ns) std dev 45.48 ns (27.96 ns .. 74.12 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 1.093 μs (1.092 μs .. 1.095 μs) time 1.104 μs (1.101 μs .. 1.107 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.094 μs (1.093 μs .. 1.096 μs) mean 1.103 μs (1.102 μs .. 1.107 μs)
std dev 5.668 ns (2.637 ns .. 11.84 ns) std dev 9.565 ns (5.477 ns .. 18.03 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 3.201 μs (3.194 μs .. 3.207 μs) time 3.155 μs (3.146 μs .. 3.166 μs)
1.000 R² (1.000 R² .. 1.000 R²) 0.999 R² (0.998 R² .. 1.000 R²)
mean 3.194 μs (3.192 μs .. 3.197 μs) mean 3.160 μs (3.145 μs .. 3.200 μs)
std dev 12.34 ns (8.110 ns .. 21.16 ns) std dev 109.0 ns (17.20 ns .. 222.6 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 3.974 μs (3.970 μs .. 3.979 μs) time 3.694 μs (3.689 μs .. 3.703 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.983 μs (3.972 μs .. 4.023 μs) mean 3.691 μs (3.689 μs .. 3.693 μs)
std dev 91.64 ns (19.11 ns .. 195.9 ns) std dev 10.23 ns (6.407 ns .. 17.48 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 4.471 μs (4.464 μs .. 4.479 μs) time 4.454 μs (4.447 μs .. 4.463 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 4.469 μs (4.466 μs .. 4.477 μs) mean 4.451 μs (4.448 μs .. 4.456 μs)
std dev 24.31 ns (13.60 ns .. 48.85 ns) std dev 17.79 ns (11.01 ns .. 27.65 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 7.286 μs (7.278 μs .. 7.295 μs) time 4.529 μs (4.522 μs .. 4.536 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.272 μs (7.268 μs .. 7.278 μs) mean 4.531 μs (4.523 μs .. 4.565 μs)
std dev 24.30 ns (16.76 ns .. 34.50 ns) std dev 62.79 ns (24.97 ns .. 146.7 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 8.350 μs (8.338 μs .. 8.367 μs) time 9.259 μs (9.244 μs .. 9.282 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.363 μs (8.344 μs .. 8.404 μs) mean 9.270 μs (9.247 μs .. 9.339 μs)
std dev 134.5 ns (64.77 ns .. 236.3 ns) std dev 188.2 ns (62.04 ns .. 385.0 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 13.96 μs (13.94 μs .. 13.98 μs) time 13.62 μs (13.60 μs .. 13.64 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 13.97 μs (13.95 μs .. 14.02 μs) mean 13.62 μs (13.60 μs .. 13.67 μs)
std dev 157.0 ns (87.75 ns .. 272.5 ns) std dev 143.1 ns (66.33 ns .. 279.3 ns)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 728.6 ns (728.0 ns .. 729.4 ns) time 712.0 ns (711.1 ns .. 712.9 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 729.2 ns (728.5 ns .. 730.4 ns) mean 711.9 ns (711.0 ns .. 714.8 ns)
std dev 4.402 ns (2.734 ns .. 6.977 ns) std dev 6.951 ns (1.826 ns .. 14.46 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 718.7 ns (717.9 ns .. 719.7 ns) time 748.6 ns (747.4 ns .. 750.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 719.1 ns (718.5 ns .. 720.4 ns) mean 747.5 ns (747.0 ns .. 749.0 ns)
std dev 4.148 ns (2.630 ns .. 6.391 ns) std dev 4.089 ns (1.873 ns .. 8.606 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 511.8 ns (510.9 ns .. 512.6 ns) time 502.3 ns (501.0 ns .. 503.6 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 511.7 ns (510.6 ns .. 515.9 ns) mean 501.7 ns (501.1 ns .. 502.5 ns)
std dev 7.821 ns (2.012 ns .. 17.66 ns) std dev 3.442 ns (2.277 ns .. 5.205 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 2.858 μs (2.852 μs .. 2.867 μs) time 2.910 μs (2.907 μs .. 2.914 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.855 μs (2.853 μs .. 2.859 μs) mean 2.914 μs (2.909 μs .. 2.926 μs)
std dev 13.63 ns (9.286 ns .. 19.15 ns) std dev 33.03 ns (12.60 ns .. 61.03 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 6.566 μs (6.555 μs .. 6.576 μs) time 6.704 μs (6.694 μs .. 6.716 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.554 μs (6.549 μs .. 6.564 μs) mean 6.702 μs (6.691 μs .. 6.729 μs)
std dev 34.18 ns (17.83 ns .. 56.78 ns) std dev 78.52 ns (27.49 ns .. 150.9 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 8.274 μs (8.268 μs .. 8.282 μs) time 8.387 μs (8.379 μs .. 8.399 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.267 μs (8.265 μs .. 8.271 μs) mean 8.392 μs (8.384 μs .. 8.416 μs)
std dev 15.29 ns (11.59 ns .. 23.60 ns) std dev 72.05 ns (16.08 ns .. 138.7 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 9.316 ns (9.307 ns .. 9.329 ns) time 9.984 ns (9.946 ns .. 10.04 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.350 ns (9.316 ns .. 9.478 ns) mean 9.974 ns (9.955 ns .. 10.01 ns)
std dev 290.0 ps (52.09 ps .. 621.0 ps) std dev 119.4 ps (75.44 ps .. 178.4 ps)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 50.99 ns (50.90 ns .. 51.09 ns) time 53.70 ns (53.57 ns .. 53.86 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 51.06 ns (50.94 ns .. 51.34 ns) mean 53.99 ns (53.65 ns .. 55.35 ns)
std dev 874.9 ps (481.4 ps .. 1.602 ns) std dev 2.853 ns (728.2 ps .. 6.520 ns)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 196.2 ns (195.7 ns .. 196.7 ns) time 201.3 ns (201.0 ns .. 201.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 197.3 ns (196.0 ns .. 200.9 ns) mean 202.4 ns (201.4 ns .. 204.4 ns)
std dev 9.942 ns (3.890 ns .. 19.86 ns) std dev 6.655 ns (3.766 ns .. 10.50 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 199.7 ns (199.4 ns .. 200.2 ns) time 202.0 ns (201.4 ns .. 202.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 200.1 ns (199.9 ns .. 201.0 ns) mean 202.5 ns (202.2 ns .. 203.1 ns)
std dev 1.604 ns (567.0 ps .. 3.829 ns) std dev 1.899 ns (871.5 ps .. 3.285 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 375.9 ns (375.4 ns .. 376.4 ns) time 381.1 ns (380.2 ns .. 382.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 375.7 ns (375.4 ns .. 376.7 ns) mean 380.4 ns (380.2 ns .. 381.1 ns)
std dev 2.555 ns (982.3 ps .. 4.945 ns) std dev 1.956 ns (1.034 ns .. 3.641 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 1.732 μs (1.729 μs .. 1.735 μs) time 1.751 μs (1.741 μs .. 1.770 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (0.999 R² .. 1.000 R²)
mean 1.730 μs (1.728 μs .. 1.733 μs) mean 1.742 μs (1.741 μs .. 1.746 μs)
std dev 9.444 ns (5.526 ns .. 15.91 ns) std dev 12.10 ns (6.795 ns .. 21.83 ns)   
+ date + date
Mon Mar 20 05:14:05 EDT 2017 Mon Mar 20 06:12:41 EDT 2017
+ stack clean + stack clean
+ echo 'Build stack (fast)' + echo 'Build stack (fast)'
Build stack (fast) Build stack (fast)
+ stack build --silent --flag aeson:fast + stack build --silent --flag aeson:fast
real 0m29.214s real 0m16.677s
user 0m23.100s user 0m15.757s
sys 0m1.407s sys 0m0.760s
+ stack install criterion --silent --flag aeson:fast + stack install criterion --silent --flag aeson:fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m10.032s real 0m7.017s
user 0m6.730s user 0m6.637s
sys 0m0.543s sys 0m0.340s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m10.906s real 0m11.283s
user 0m10.460s user 0m10.817s
sys 0m0.373s sys 0m0.430s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 10.33 μs (10.32 μs .. 10.35 μs) time 10.32 μs (10.31 μs .. 10.34 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 10.34 μs (10.33 μs .. 10.36 μs) mean 10.32 μs (10.30 μs .. 10.37 μs)
std dev 64.50 ns (38.63 ns .. 115.2 ns) std dev 183.1 ns (79.65 ns .. 344.1 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 25.62 μs (25.60 μs .. 25.65 μs) time 30.41 μs (30.36 μs .. 30.48 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 25.79 μs (25.66 μs .. 26.26 μs) mean 30.37 μs (30.35 μs .. 30.40 μs)
std dev 1.070 μs (266.2 ns .. 2.211 μs) std dev 103.4 ns (69.82 ns .. 146.3 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 31.66 μs (31.62 μs .. 31.72 μs) time 32.07 μs (32.02 μs .. 32.13 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 31.73 μs (31.69 μs .. 31.81 μs) mean 32.15 μs (32.12 μs .. 32.30 μs)
std dev 265.0 ns (164.2 ns .. 467.8 ns) std dev 296.1 ns (91.40 ns .. 659.8 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 59.94 μs (59.88 μs .. 60.02 μs) time 64.60 μs (64.55 μs .. 64.68 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 59.91 μs (59.86 μs .. 59.97 μs) mean 64.59 μs (64.54 μs .. 64.70 μs)
std dev 260.9 ns (177.4 ns .. 360.8 ns) std dev 369.4 ns (188.0 ns .. 677.0 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 6.442 μs (6.434 μs .. 6.453 μs) time 6.910 μs (6.903 μs .. 6.919 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.455 μs (6.444 μs .. 6.481 μs) mean 6.910 μs (6.905 μs .. 6.920 μs)
std dev 81.10 ns (39.48 ns .. 151.3 ns) std dev 34.93 ns (20.90 ns .. 56.97 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 2.015 μs (2.012 μs .. 2.021 μs) time 2.057 μs (2.056 μs .. 2.059 μs)
1.000 R² (0.999 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.016 μs (2.012 μs .. 2.030 μs) mean 2.072 μs (2.059 μs .. 2.120 μs)
std dev 31.04 ns (7.132 ns .. 66.10 ns) std dev 102.2 ns (18.53 ns .. 210.9 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 6.257 μs (6.239 μs .. 6.284 μs) time 6.037 μs (6.029 μs .. 6.047 μs)
0.999 R² (0.998 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.289 μs (6.253 μs .. 6.403 μs) mean 6.055 μs (6.050 μs .. 6.067 μs)
std dev 274.6 ns (63.74 ns .. 510.2 ns) std dev 36.66 ns (20.65 ns .. 68.46 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 15.96 μs (15.95 μs .. 15.99 μs) time 22.10 μs (22.05 μs .. 22.14 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 15.97 μs (15.95 μs .. 16.02 μs) mean 22.21 μs (22.10 μs .. 22.48 μs)
std dev 120.4 ns (44.12 ns .. 265.5 ns) std dev 900.8 ns (386.1 ns .. 1.754 μs)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 32.65 μs (32.60 μs .. 32.71 μs) time 31.63 μs (31.56 μs .. 31.70 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 32.65 μs (32.60 μs .. 32.77 μs) mean 31.64 μs (31.61 μs .. 31.70 μs)
std dev 346.7 ns (141.0 ns .. 638.1 ns) std dev 219.1 ns (116.5 ns .. 347.1 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 63.28 μs (63.15 μs .. 63.46 μs) time 50.05 μs (50.02 μs .. 50.09 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 63.22 μs (63.15 μs .. 63.39 μs) mean 50.10 μs (50.04 μs .. 50.20 μs)
std dev 544.5 ns (329.1 ns .. 957.5 ns) std dev 345.1 ns (194.0 ns .. 546.8 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 14.23 μs (14.19 μs .. 14.27 μs) time 14.25 μs (14.22 μs .. 14.31 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 14.20 μs (14.18 μs .. 14.22 μs) mean 14.27 μs (14.24 μs .. 14.36 μs)
std dev 95.85 ns (70.85 ns .. 140.2 ns) std dev 235.4 ns (122.6 ns .. 432.1 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 44.88 μs (44.82 μs .. 44.95 μs) time 42.26 μs (42.18 μs .. 42.35 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 44.98 μs (44.86 μs .. 45.48 μs) mean 42.22 μs (42.19 μs .. 42.33 μs)
std dev 999.7 ns (198.3 ns .. 2.321 μs) std dev 266.2 ns (136.1 ns .. 523.5 ns)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 2.575 μs (2.572 μs .. 2.579 μs) time 2.538 μs (2.532 μs .. 2.544 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 2.574 μs (2.572 μs .. 2.579 μs) mean 2.533 μs (2.531 μs .. 2.537 μs)
std dev 15.36 ns (7.561 ns .. 33.70 ns) std dev 12.40 ns (7.421 ns .. 23.44 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 11.99 μs (11.96 μs .. 12.02 μs) time 12.37 μs (12.34 μs .. 12.40 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 11.99 μs (11.96 μs .. 12.09 μs) mean 12.37 μs (12.33 μs .. 12.53 μs)
std dev 230.8 ns (62.97 ns .. 473.1 ns) std dev 381.2 ns (87.97 ns .. 811.7 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 7.730 μs (7.721 μs .. 7.742 μs) time 7.550 μs (7.541 μs .. 7.563 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.742 μs (7.727 μs .. 7.778 μs) mean 7.562 μs (7.550 μs .. 7.608 μs)
std dev 103.7 ns (54.03 ns .. 195.9 ns) std dev 104.7 ns (38.25 ns .. 214.8 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 15.24 μs (15.22 μs .. 15.27 μs) time 15.83 μs (15.82 μs .. 15.85 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 15.23 μs (15.21 μs .. 15.29 μs) mean 15.86 μs (15.85 μs .. 15.89 μs)
std dev 146.8 ns (45.25 ns .. 296.0 ns) std dev 89.64 ns (53.52 ns .. 151.6 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 11.56 μs (11.54 μs .. 11.59 μs) time 11.49 μs (11.47 μs .. 11.52 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 11.57 μs (11.55 μs .. 11.63 μs) mean 11.49 μs (11.47 μs .. 11.52 μs)
std dev 166.7 ns (82.72 ns .. 301.6 ns) std dev 99.07 ns (55.16 ns .. 164.5 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 25.25 μs (25.21 μs .. 25.29 μs) time 25.06 μs (24.98 μs .. 25.14 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 25.18 μs (25.16 μs .. 25.22 μs) mean 25.04 μs (25.02 μs .. 25.09 μs)
std dev 150.9 ns (117.9 ns .. 206.7 ns) std dev 178.6 ns (105.8 ns .. 307.8 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 21.51 ns (21.47 ns .. 21.55 ns) time 20.59 ns (20.55 ns .. 20.65 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (0.999 R² .. 1.000 R²)
mean 21.48 ns (21.47 ns .. 21.50 ns) mean 20.80 ns (20.62 ns .. 21.20 ns)
std dev 74.25 ps (48.44 ps .. 125.5 ps) std dev 1.282 ns (608.8 ps .. 2.535 ns)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 364.6 ns (361.9 ns .. 368.7 ns) time 377.1 ns (376.3 ns .. 378.1 ns)
1.000 R² (0.999 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 363.3 ns (362.0 ns .. 368.1 ns) mean 379.4 ns (378.3 ns .. 381.4 ns)
std dev 11.30 ns (2.267 ns .. 24.04 ns) std dev 6.671 ns (3.310 ns .. 11.32 ns)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 629.8 ns (628.6 ns .. 631.0 ns) time 615.7 ns (613.9 ns .. 618.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 628.9 ns (628.5 ns .. 629.6 ns) mean 615.2 ns (614.4 ns .. 616.6 ns)
std dev 2.601 ns (1.540 ns .. 5.126 ns) std dev 5.066 ns (3.135 ns .. 7.582 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 1.415 μs (1.413 μs .. 1.417 μs) time 1.488 μs (1.485 μs .. 1.492 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.416 μs (1.414 μs .. 1.424 μs) mean 1.487 μs (1.486 μs .. 1.490 μs)
std dev 16.45 ns (3.646 ns .. 36.12 ns) std dev 8.895 ns (3.037 ns .. 19.49 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 382.5 ns (381.8 ns .. 383.3 ns) time 390.1 ns (389.5 ns .. 391.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 386.9 ns (383.7 ns .. 395.3 ns) mean 389.7 ns (389.4 ns .. 390.3 ns)
std dev 24.86 ns (10.60 ns .. 41.96 ns) std dev 1.802 ns (995.4 ps .. 3.403 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 5.076 μs (5.068 μs .. 5.086 μs) time 4.884 μs (4.876 μs .. 4.894 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 5.081 μs (5.075 μs .. 5.095 μs) mean 4.874 μs (4.871 μs .. 4.880 μs)
std dev 42.87 ns (24.63 ns .. 77.96 ns) std dev 21.39 ns (12.58 ns .. 41.05 ns)
+ stack clean + stack clean
+ echo 'Build stack' + echo 'Build stack'
Build stack Build stack
+ stack build --silent --flag aeson:-fast + stack build --silent --flag aeson:-fast
real 2m6.164s real 2m5.285s
user 2m4.793s user 2m3.043s
sys 0m1.100s sys 0m1.107s
+ stack install criterion --silent --flag aeson:-fast + stack install criterion --silent --flag aeson:-fast
+ echo 'Compile, no optim' + echo 'Compile, no optim'
Compile, no optim Compile, no optim
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build
real 0m6.818s real 0m7.020s
user 0m6.393s user 0m6.603s
sys 0m0.383s sys 0m0.383s
+ echo 'Compile, -O2' + echo 'Compile, -O2'
Compile, -O2 Compile, -O2
+ rm build -rf + rm build -rf
+ stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2 + stack ghc -- -v0 -i -ibenchmarks benchmarks/AesonCompareAutoInstances.hs -hidir build -odir build -O2
real 0m19.464s real 0m18.676s
user 0m19.000s user 0m18.223s
sys 0m0.437s sys 0m0.420s
+ echo Benchmark + echo Benchmark
Benchmark Benchmark
+ ./benchmarks/AesonCompareAutoInstances -L60 + ./benchmarks/AesonCompareAutoInstances -L60
benchmarking D/toJSON/th benchmarking D/toJSON/th
time 7.823 μs (7.813 μs .. 7.836 μs) time 8.182 μs (8.174 μs .. 8.191 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.816 μs (7.808 μs .. 7.829 μs) mean 8.184 μs (8.179 μs .. 8.189 μs)
std dev 50.04 ns (31.94 ns .. 87.46 ns) std dev 23.92 ns (19.74 ns .. 29.75 ns)
benchmarking D/toJSON/generic benchmarking D/toJSON/generic
time 11.43 μs (11.42 μs .. 11.45 μs) time 13.69 μs (13.68 μs .. 13.71 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 11.43 μs (11.42 μs .. 11.47 μs) mean 13.70 μs (13.69 μs .. 13.71 μs)
std dev 100.9 ns (49.88 ns .. 207.9 ns) std dev 36.60 ns (27.99 ns .. 58.70 ns)
benchmarking D/encode/th benchmarking D/encode/th
time 8.635 μs (8.623 μs .. 8.652 μs) time 8.538 μs (8.528 μs .. 8.551 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.640 μs (8.633 μs .. 8.650 μs) mean 8.547 μs (8.538 μs .. 8.569 μs)
std dev 37.81 ns (27.82 ns .. 52.51 ns) std dev 71.33 ns (30.59 ns .. 119.5 ns)
benchmarking D/encode/generic benchmarking D/encode/generic
time 21.61 μs (21.58 μs .. 21.64 μs) time 24.09 μs (24.06 μs .. 24.13 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 21.61 μs (21.58 μs .. 21.72 μs) mean 24.07 μs (24.05 μs .. 24.10 μs)
std dev 233.5 ns (49.36 ns .. 544.4 ns) std dev 94.12 ns (52.09 ns .. 174.5 ns)
benchmarking D/fromJSON/th benchmarking D/fromJSON/th
time 3.209 μs (3.202 μs .. 3.215 μs) time 3.545 μs (3.539 μs .. 3.553 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.204 μs (3.200 μs .. 3.212 μs) mean 3.542 μs (3.540 μs .. 3.546 μs)
std dev 25.53 ns (12.50 ns .. 45.00 ns) std dev 16.06 ns (11.62 ns .. 24.44 ns)
benchmarking D/fromJSON/generic benchmarking D/fromJSON/generic
time 882.3 ns (881.1 ns .. 883.7 ns) time 895.4 ns (893.8 ns .. 897.0 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 881.7 ns (881.2 ns .. 882.6 ns) mean 893.8 ns (893.2 ns .. 894.9 ns)
std dev 3.171 ns (2.102 ns .. 4.640 ns) std dev 3.893 ns (2.088 ns .. 7.211 ns)
benchmarking BigRecord/toJSON/th benchmarking BigRecord/toJSON/th
time 3.127 μs (3.122 μs .. 3.133 μs) time 3.077 μs (3.074 μs .. 3.082 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.128 μs (3.123 μs .. 3.145 μs) mean 3.080 μs (3.078 μs .. 3.086 μs)
std dev 43.02 ns (18.68 ns .. 77.98 ns) std dev 18.52 ns (10.06 ns .. 36.57 ns)
benchmarking BigRecord/toJSON/generic benchmarking BigRecord/toJSON/generic
time 7.793 μs (7.785 μs .. 7.805 μs) time 7.857 μs (7.845 μs .. 7.871 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.792 μs (7.787 μs .. 7.803 μs) mean 7.853 μs (7.846 μs .. 7.868 μs)
std dev 38.55 ns (19.76 ns .. 61.06 ns) std dev 49.85 ns (29.37 ns .. 88.44 ns)
benchmarking BigRecord/encode/th benchmarking BigRecord/encode/th
time 4.440 μs (4.432 μs .. 4.449 μs) time 4.481 μs (4.475 μs .. 4.489 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 4.435 μs (4.431 μs .. 4.447 μs) mean 4.479 μs (4.476 μs .. 4.485 μs)
std dev 30.74 ns (11.60 ns .. 62.55 ns) std dev 19.30 ns (9.781 ns .. 38.44 ns)
benchmarking BigRecord/encode/generic benchmarking BigRecord/encode/generic
time 3.887 μs (3.881 μs .. 3.896 μs) time 10.14 μs (10.12 μs .. 10.15 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.886 μs (3.882 μs .. 3.894 μs) mean 10.15 μs (10.12 μs .. 10.21 μs)
std dev 25.47 ns (14.81 ns .. 46.72 ns) std dev 167.4 ns (52.40 ns .. 345.1 ns)
benchmarking BigRecord/fromJSON/th benchmarking BigRecord/fromJSON/th
time 8.568 μs (8.555 μs .. 8.582 μs) time 8.652 μs (8.632 μs .. 8.676 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 8.560 μs (8.555 μs .. 8.570 μs) mean 8.645 μs (8.635 μs .. 8.665 μs)
std dev 32.29 ns (19.49 ns .. 52.87 ns) std dev 65.21 ns (39.07 ns .. 101.4 ns)
benchmarking BigRecord/fromJSON/generic benchmarking BigRecord/fromJSON/generic
time 10.45 μs (10.44 μs .. 10.48 μs) time 10.75 μs (10.72 μs .. 10.77 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 10.47 μs (10.44 μs .. 10.53 μs) mean 10.73 μs (10.72 μs .. 10.74 μs)
std dev 180.9 ns (48.16 ns .. 353.1 ns) std dev 31.13 ns (23.38 ns .. 45.47 ns)
benchmarking BigProduct/toJSON/th benchmarking BigProduct/toJSON/th
time 695.1 ns (694.5 ns .. 695.8 ns) time 689.3 ns (688.3 ns .. 690.3 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 694.9 ns (694.7 ns .. 695.3 ns) mean 688.2 ns (687.8 ns .. 689.0 ns)
std dev 1.411 ns (961.2 ps .. 2.381 ns) std dev 2.688 ns (1.571 ns .. 4.916 ns)
benchmarking BigProduct/toJSON/generic benchmarking BigProduct/toJSON/generic
time 740.2 ns (739.2 ns .. 741.4 ns) time 703.4 ns (702.6 ns .. 704.4 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 741.9 ns (741.2 ns .. 743.8 ns) mean 708.9 ns (704.8 ns .. 720.1 ns)
std dev 5.213 ns (2.556 ns .. 10.66 ns) std dev 29.86 ns (5.975 ns .. 56.75 ns)
benchmarking BigProduct/encode/th benchmarking BigProduct/encode/th
time 500.5 ns (499.9 ns .. 501.4 ns) time 505.7 ns (504.7 ns .. 506.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 500.3 ns (499.8 ns .. 501.9 ns) mean 505.1 ns (504.4 ns .. 506.4 ns)
std dev 3.615 ns (1.697 ns .. 7.675 ns) std dev 4.384 ns (2.661 ns .. 7.905 ns)
benchmarking BigProduct/encode/generic benchmarking BigProduct/encode/generic
time 3.261 μs (3.253 μs .. 3.268 μs) time 2.933 μs (2.928 μs .. 2.939 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 3.253 μs (3.251 μs .. 3.256 μs) mean 2.937 μs (2.934 μs .. 2.945 μs)
std dev 13.59 ns (9.921 ns .. 18.79 ns) std dev 22.56 ns (10.70 ns .. 40.49 ns)
benchmarking BigProduct/fromJSON/th benchmarking BigProduct/fromJSON/th
time 6.861 μs (6.853 μs .. 6.872 μs) time 6.868 μs (6.862 μs .. 6.875 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 6.867 μs (6.861 μs .. 6.878 μs) mean 6.874 μs (6.870 μs .. 6.880 μs)
std dev 40.56 ns (28.28 ns .. 62.16 ns) std dev 24.14 ns (17.58 ns .. 37.77 ns)
benchmarking BigProduct/fromJSON/generic benchmarking BigProduct/fromJSON/generic
time 7.835 μs (7.829 μs .. 7.844 μs) time 8.156 μs (8.138 μs .. 8.174 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 7.837 μs (7.833 μs .. 7.843 μs) mean 8.167 μs (8.140 μs .. 8.252 μs)
std dev 23.16 ns (14.89 ns .. 37.21 ns) std dev 216.4 ns (34.29 ns .. 447.3 ns)
benchmarking BigSum/toJSON/th benchmarking BigSum/toJSON/th
time 9.648 ns (9.630 ns .. 9.668 ns) time 9.666 ns (9.643 ns .. 9.693 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 9.713 ns (9.643 ns .. 9.885 ns) mean 9.670 ns (9.649 ns .. 9.719 ns)
std dev 513.5 ps (65.49 ps .. 969.8 ps) std dev 152.2 ps (66.97 ps .. 260.9 ps)
benchmarking BigSum/toJSON/generic benchmarking BigSum/toJSON/generic
time 116.1 ns (116.0 ns .. 116.2 ns) time 47.77 ns (47.71 ns .. 47.86 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 116.0 ns (115.9 ns .. 116.0 ns) mean 47.74 ns (47.70 ns .. 47.84 ns)
std dev 277.8 ps (179.8 ps .. 434.9 ps) std dev 306.3 ps (186.7 ps .. 567.8 ps)
benchmarking BigSum/encode/th benchmarking BigSum/encode/th
time 208.4 ns (208.2 ns .. 208.6 ns) time 199.9 ns (199.7 ns .. 200.3 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 212.1 ns (209.5 ns .. 218.9 ns) mean 199.9 ns (199.8 ns .. 200.2 ns)
std dev 18.74 ns (3.406 ns .. 34.31 ns) std dev 962.9 ps (545.2 ps .. 1.627 ns)
benchmarking BigSum/encode/generic benchmarking BigSum/encode/generic
time 204.9 ns (204.7 ns .. 205.3 ns) time 202.4 ns (202.1 ns .. 202.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 205.6 ns (205.1 ns .. 207.1 ns) mean 202.3 ns (202.2 ns .. 202.6 ns)
std dev 3.902 ns (994.2 ps .. 8.810 ns) std dev 786.2 ps (414.4 ps .. 1.389 ns)
benchmarking BigSum/fromJSON/th benchmarking BigSum/fromJSON/th
time 370.7 ns (370.3 ns .. 371.3 ns) time 331.2 ns (330.7 ns .. 331.8 ns)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 370.7 ns (370.3 ns .. 372.5 ns) mean 331.1 ns (330.7 ns .. 332.5 ns)
std dev 3.421 ns (1.649 ns .. 7.352 ns) std dev 3.135 ns (867.7 ps .. 6.598 ns)
benchmarking BigSum/fromJSON/generic benchmarking BigSum/fromJSON/generic
time 1.634 μs (1.632 μs .. 1.637 μs) time 1.726 μs (1.723 μs .. 1.729 μs)
1.000 R² (1.000 R² .. 1.000 R²) 1.000 R² (1.000 R² .. 1.000 R²)
mean 1.633 μs (1.632 μs .. 1.637 μs) mean 1.728 μs (1.724 μs .. 1.739 μs)
std dev 10.13 ns (3.432 ns .. 20.17 ns) std dev 26.70 ns (13.40 ns .. 54.05 ns)   
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment