Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmarks fail to compile with GHC HEAD due to changes in GHC.Generics #329

Closed
mpickering opened this issue Dec 23, 2015 · 11 comments
Closed
Labels

Comments

@mpickering
Copy link

[10 of 16] Compiling Data.Aeson.Types.Generic ( Data/Aeson/Types/Generic.hs, dist/build/Data/Aeson/Types/Generic.o )

Data/Aeson/Types/Generic.hs:727:25: error:
    • Expected kind ‘Meta’, but ‘NoSelector’ has kind ‘*’
    • In the second argument of ‘M1’, namely ‘NoSelector’
      In the first argument of ‘IsRecord’, namely ‘M1 S NoSelector f’
      In the instance declaration for
        ‘IsRecord (M1 S NoSelector f) False’
cabal: Error: some packages failed to install:
@RyanGlScott
Copy link
Member

This is due to aeson trying to encode some generics-related properties at the type-level. We changed the type-level encoding of generics in GHC 8.0 to use DataKinds, so we'll have to come up with an alternate instance #if __GLASGOW_HASKELL__ >= 800.

I can fix this soon, but it should be noted that the TH-based code will also break on GHC HEAD for unrelated reasons. Since I believe there are still some major pending changes to Language.Haskell.TH.Syntax coming, I'd prefer to wait until an 8.0 release candidate comes out before attempting to patch stuff.

@hvr
Copy link
Member

hvr commented Jan 23, 2016

isn't this resolved already (in Git at least)?

@bergmark
Copy link
Collaborator

Yes this is fixed for the library, but the benchmarks (which are in a separate package) are blocked by vector-th-unbox

@bergmark
Copy link
Collaborator

@RyanGlScott
Copy link
Member

@bergmark bergmark changed the title Fails to compile with GHC HEAD due to changes in GHC.Generics Benchmarks fail to compile with GHC HEAD due to changes in GHC.Generics Feb 8, 2016
@RyanGlScott
Copy link
Member

Now that vector-th-unbox-0.2.1.4 is on Hackage, I can compile all of the benchmarks on GHC 8.0.

@hvr
Copy link
Member

hvr commented Feb 17, 2016

any visible change in ghc8 performance relative to 7.10?

Sent from my Android device with K-9 Mail. Please excuse my brevity.

@bergmark
Copy link
Collaborator

We are now blocked on haskell/criterion#97

@RyanGlScott
Copy link
Member

Here's some quick figures:

  • GHC 7.10.3:
    • aeson-benchmark-compare:
benchmarking twitter/aeson
time                 347.8 μs   (342.8 μs .. 354.4 μs)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 343.4 μs   (341.3 μs .. 345.8 μs)
std dev              7.579 μs   (5.962 μs .. 10.39 μs)
variance introduced by outliers: 14% (moderately inflated)

benchmarking twitter/buffer-builder
time                 251.1 μs   (249.5 μs .. 253.2 μs)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 252.9 μs   (251.2 μs .. 258.4 μs)
std dev              9.378 μs   (4.229 μs .. 19.33 μs)
variance introduced by outliers: 33% (moderately inflated)

benchmarking twitter/json-builder
time                 1.169 ms   (1.165 ms .. 1.173 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.169 ms   (1.165 ms .. 1.175 ms)
std dev              15.49 μs   (10.80 μs .. 21.93 μs)

benchmarking json-bench/aeson
time                 1.479 ms   (1.474 ms .. 1.483 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 1.480 ms   (1.474 ms .. 1.497 ms)
std dev              31.15 μs   (13.82 μs .. 64.21 μs)
variance introduced by outliers: 10% (moderately inflated)

benchmarking json-bench/buffer-builder
time                 608.4 μs   (607.1 μs .. 609.9 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 609.3 μs   (607.8 μs .. 612.5 μs)
std dev              7.127 μs   (4.151 μs .. 12.49 μs)

benchmarking json-bench/json-builder
time                 2.596 ms   (2.586 ms .. 2.610 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 2.610 ms   (2.603 ms .. 2.620 ms)
std dev              25.89 μs   (18.56 μs .. 36.49 μs)
  • aeson-benchmark-compare-with-json:
benchmarking decode/en/aeson/lazy
time                 2.068 ms   (2.058 ms .. 2.080 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 2.078 ms   (2.069 ms .. 2.095 ms)
std dev              39.92 μs   (19.83 μs .. 67.57 μs)

benchmarking decode/en/aeson/strict
time                 2.091 ms   (2.082 ms .. 2.100 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 2.108 ms   (2.100 ms .. 2.122 ms)
std dev              34.22 μs   (23.42 μs .. 47.22 μs)

benchmarking decode/en/json
time                 7.121 ms   (7.081 ms .. 7.167 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 7.138 ms   (7.115 ms .. 7.170 ms)
std dev              79.38 μs   (61.33 μs .. 117.2 μs)

benchmarking decode/jp/aeson
time                 2.664 ms   (2.652 ms .. 2.675 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 2.673 ms   (2.663 ms .. 2.683 ms)
std dev              32.60 μs   (25.08 μs .. 42.38 μs)

benchmarking decode/jp/json
time                 15.30 ms   (15.14 ms .. 15.45 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 15.46 ms   (15.36 ms .. 15.76 ms)
std dev              401.5 μs   (156.5 μs .. 754.1 μs)

benchmarking encode/en/aeson-to-bytestring
time                 611.9 μs   (583.8 μs .. 654.3 μs)
                     0.982 R²   (0.961 R² .. 1.000 R²)
mean                 597.2 μs   (588.7 μs .. 623.4 μs)
std dev              44.29 μs   (20.08 μs .. 88.39 μs)
variance introduced by outliers: 63% (severely inflated)

benchmarking encode/en/aeson-via-text-to-bytestring
time                 1.074 ms   (1.068 ms .. 1.078 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 1.082 ms   (1.074 ms .. 1.093 ms)
std dev              31.77 μs   (21.99 μs .. 50.42 μs)
variance introduced by outliers: 18% (moderately inflated)

benchmarking encode/en/aeson-to-text
time                 901.5 μs   (897.6 μs .. 906.4 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 907.3 μs   (903.4 μs .. 914.0 μs)
std dev              17.02 μs   (11.32 μs .. 25.35 μs)

benchmarking encode/en/json
time                 1.190 ms   (1.182 ms .. 1.198 ms)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 1.197 ms   (1.188 ms .. 1.207 ms)
std dev              32.52 μs   (25.11 μs .. 45.99 μs)
variance introduced by outliers: 16% (moderately inflated)

benchmarking encode/jp/aeson-to-bytestring
time                 558.3 μs   (556.0 μs .. 560.2 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 558.8 μs   (556.4 μs .. 562.2 μs)
std dev              9.671 μs   (7.579 μs .. 13.97 μs)

benchmarking encode/jp/aeson-via-text-to-bytestring
time                 1.096 ms   (1.092 ms .. 1.101 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.099 ms   (1.094 ms .. 1.104 ms)
std dev              17.95 μs   (13.30 μs .. 24.84 μs)

benchmarking encode/jp/aeson-to-text
time                 994.2 μs   (966.1 μs .. 1.034 ms)
                     0.995 R²   (0.989 R² .. 1.000 R²)
mean                 974.4 μs   (967.6 μs .. 990.1 μs)
std dev              32.70 μs   (15.35 μs .. 61.51 μs)
variance introduced by outliers: 23% (moderately inflated)

benchmarking encode/jp/json
time                 1.276 ms   (1.265 ms .. 1.286 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 1.258 ms   (1.249 ms .. 1.266 ms)
std dev              28.80 μs   (23.47 μs .. 35.24 μs)
variance introduced by outliers: 11% (moderately inflated)
  • aeson-benchmark-dates
benchmarking decode/UTCTime/whole
time                 23.13 μs   (23.09 μs .. 23.19 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 23.17 μs   (23.13 μs .. 23.28 μs)
std dev              227.9 ns   (128.9 ns .. 379.0 ns)

benchmarking decode/UTCTime/fractional
time                 25.57 μs   (25.50 μs .. 25.65 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 25.56 μs   (25.53 μs .. 25.61 μs)
std dev              143.7 ns   (104.2 ns .. 211.5 ns)

benchmarking decode/ZonedTime/whole
time                 18.79 μs   (18.74 μs .. 18.84 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 18.75 μs   (18.72 μs .. 18.79 μs)
std dev              106.8 ns   (76.91 ns .. 147.1 ns)

benchmarking decode/ZonedTime/fractional
time                 20.97 μs   (20.92 μs .. 21.03 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 20.95 μs   (20.93 μs .. 21.00 μs)
std dev              118.0 ns   (79.45 ns .. 167.9 ns)

benchmarking encode/UTCTime/whole
time                 7.880 μs   (7.862 μs .. 7.899 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 7.876 μs   (7.865 μs .. 7.891 μs)
std dev              43.21 ns   (33.51 ns .. 60.77 ns)

benchmarking encode/UTCTime/fractional
time                 8.384 μs   (8.365 μs .. 8.407 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 8.396 μs   (8.380 μs .. 8.445 μs)
std dev              81.86 ns   (35.18 ns .. 173.8 ns)

benchmarking encode/ZonedTime/whole
time                 8.537 μs   (8.521 μs .. 8.556 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 8.529 μs   (8.521 μs .. 8.541 μs)
std dev              31.49 ns   (17.10 ns .. 47.44 ns)

benchmarking encode/ZonedTime/fractional
time                 9.178 μs   (9.157 μs .. 9.207 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 9.177 μs   (9.169 μs .. 9.192 μs)
std dev              37.55 ns   (26.76 ns .. 63.51 ns)
  • aeson-benchmark-micro
benchmarking string/text
time                 414.0 ns   (413.0 ns .. 415.2 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 413.5 ns   (413.1 ns .. 414.3 ns)
std dev              1.963 ns   (1.408 ns .. 2.842 ns)

benchmarking string/string direct
time                 542.6 ns   (541.8 ns .. 543.6 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 542.6 ns   (541.8 ns .. 544.2 ns)
std dev              3.759 ns   (2.084 ns .. 6.431 ns)

benchmarking string/string via text
time                 918.0 ns   (916.8 ns .. 919.7 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 918.6 ns   (917.2 ns .. 921.1 ns)
std dev              6.573 ns   (3.852 ns .. 9.758 ns)
  • aeson-benchmark-typed
benchmarking generic/direct/twitter100
time                 474.0 μs   (471.3 μs .. 477.0 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 476.4 μs   (474.3 μs .. 478.2 μs)
std dev              6.259 μs   (5.160 μs .. 8.747 μs)

benchmarking generic/direct/jp100
time                 457.2 μs   (455.2 μs .. 459.2 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 457.5 μs   (455.8 μs .. 459.9 μs)
std dev              6.767 μs   (5.446 μs .. 9.802 μs)

benchmarking generic/viaValue/twitter100
time                 1.191 ms   (1.182 ms .. 1.200 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.189 ms   (1.185 ms .. 1.196 ms)
std dev              16.80 μs   (11.19 μs .. 27.54 μs)

benchmarking generic/viaValue/jp100
time                 1.131 ms   (1.115 ms .. 1.161 ms)
                     0.995 R²   (0.987 R² .. 1.000 R²)
mean                 1.139 ms   (1.129 ms .. 1.169 ms)
std dev              49.40 μs   (21.36 μs .. 88.50 μs)
variance introduced by outliers: 32% (moderately inflated)

benchmarking manual/direct/twitter100
time                 391.0 μs   (389.5 μs .. 392.8 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 390.5 μs   (389.9 μs .. 391.6 μs)
std dev              2.641 μs   (1.643 μs .. 4.117 μs)

benchmarking manual/direct/jp100
time                 375.6 μs   (373.7 μs .. 377.3 μs)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 382.5 μs   (376.1 μs .. 398.6 μs)
std dev              30.49 μs   (3.049 μs .. 54.44 μs)
variance introduced by outliers: 69% (severely inflated)

benchmarking manual/viaValue/twitter100
time                 1.170 ms   (1.162 ms .. 1.177 ms)
                     0.999 R²   (0.997 R² .. 1.000 R²)
mean                 1.208 ms   (1.187 ms .. 1.263 ms)
std dev              109.3 μs   (51.25 μs .. 218.4 μs)
variance introduced by outliers: 67% (severely inflated)

benchmarking manual/viaValue/jp100
time                 1.111 ms   (1.105 ms .. 1.120 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.125 ms   (1.121 ms .. 1.128 ms)
std dev              12.08 μs   (9.592 μs .. 14.88 μs)

benchmarking th/direct/twitter100
time                 485.7 μs   (483.2 μs .. 488.1 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 484.9 μs   (482.9 μs .. 486.6 μs)
std dev              5.875 μs   (4.943 μs .. 7.815 μs)

benchmarking th/direct/jp100
time                 468.2 μs   (466.6 μs .. 469.8 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 468.9 μs   (467.7 μs .. 470.3 μs)
std dev              4.374 μs   (3.759 μs .. 5.258 μs)

benchmarking th/viaValue/twitter100
time                 1.195 ms   (1.165 ms .. 1.269 ms)
                     0.975 R²   (0.930 R² .. 1.000 R²)
mean                 1.187 ms   (1.168 ms .. 1.272 ms)
std dev              113.1 μs   (13.60 μs .. 258.0 μs)
variance introduced by outliers: 70% (severely inflated)

benchmarking th/viaValue/jp100
time                 1.116 ms   (1.112 ms .. 1.118 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.116 ms   (1.113 ms .. 1.119 ms)
std dev              10.20 μs   (8.139 μs .. 12.93 μs)
  • GHC 8.0.1
    • aeson-benchmark-compare
benchmarking twitter/aeson
time                 378.6 μs   (378.0 μs .. 379.1 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 379.1 μs   (378.7 μs .. 379.8 μs)
std dev              1.926 μs   (1.278 μs .. 3.282 μs)

benchmarking twitter/buffer-builder
time                 249.6 μs   (248.7 μs .. 250.8 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 250.3 μs   (249.7 μs .. 251.3 μs)
std dev              2.861 μs   (2.329 μs .. 3.709 μs)

benchmarking twitter/json-builder
time                 1.266 ms   (1.261 ms .. 1.272 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.268 ms   (1.264 ms .. 1.277 ms)
std dev              20.80 μs   (10.79 μs .. 39.26 μs)

benchmarking json-bench/aeson
time                 1.553 ms   (1.536 ms .. 1.571 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 1.540 ms   (1.536 ms .. 1.547 ms)
std dev              18.36 μs   (11.62 μs .. 32.19 μs)

benchmarking json-bench/buffer-builder
time                 627.6 μs   (623.9 μs .. 632.2 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 626.8 μs   (625.0 μs .. 630.0 μs)
std dev              7.794 μs   (5.284 μs .. 11.87 μs)

benchmarking json-bench/json-builder
time                 2.871 ms   (2.850 ms .. 2.898 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 2.907 ms   (2.889 ms .. 2.934 ms)
std dev              68.51 μs   (46.50 μs .. 107.0 μs)
  • aeson-benchmark-compare-with-json
benchmarking decode/en/aeson/lazy
time                 1.743 ms   (1.738 ms .. 1.748 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.749 ms   (1.744 ms .. 1.757 ms)
std dev              20.99 μs   (14.76 μs .. 29.06 μs)

benchmarking decode/en/aeson/strict
time                 1.790 ms   (1.782 ms .. 1.797 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.800 ms   (1.794 ms .. 1.815 ms)
std dev              31.02 μs   (14.68 μs .. 57.42 μs)

benchmarking decode/en/json
time                 6.777 ms   (6.710 ms .. 6.840 ms)
                     0.999 R²   (0.997 R² .. 1.000 R²)
mean                 6.905 ms   (6.853 ms .. 7.023 ms)
std dev              207.0 μs   (129.3 μs .. 313.7 μs)
variance introduced by outliers: 11% (moderately inflated)

benchmarking decode/jp/aeson
time                 2.350 ms   (2.311 ms .. 2.441 ms)
                     0.987 R²   (0.965 R² .. 1.000 R²)
mean                 2.353 ms   (2.326 ms .. 2.466 ms)
std dev              146.0 μs   (47.26 μs .. 318.6 μs)
variance introduced by outliers: 45% (moderately inflated)

benchmarking decode/jp/json
time                 15.18 ms   (15.12 ms .. 15.27 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 15.31 ms   (15.24 ms .. 15.48 ms)
std dev              267.8 μs   (154.1 μs .. 470.0 μs)

benchmarking encode/en/aeson-to-bytestring
time                 554.3 μs   (549.0 μs .. 560.2 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 553.4 μs   (546.1 μs .. 559.8 μs)
std dev              22.27 μs   (17.82 μs .. 28.28 μs)
variance introduced by outliers: 33% (moderately inflated)

benchmarking encode/en/aeson-via-text-to-bytestring
time                 1.195 ms   (1.185 ms .. 1.205 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 1.195 ms   (1.185 ms .. 1.205 ms)
std dev              33.32 μs   (26.00 μs .. 43.49 μs)
variance introduced by outliers: 17% (moderately inflated)

benchmarking encode/en/aeson-to-text
time                 1.021 ms   (1.012 ms .. 1.030 ms)
                     0.994 R²   (0.984 R² .. 1.000 R²)
mean                 1.046 ms   (1.025 ms .. 1.110 ms)
std dev              102.4 μs   (45.13 μs .. 206.2 μs)
variance introduced by outliers: 72% (severely inflated)

benchmarking encode/en/json
time                 1.165 ms   (1.154 ms .. 1.177 ms)
                     0.999 R²   (0.999 R² .. 0.999 R²)
mean                 1.163 ms   (1.156 ms .. 1.173 ms)
std dev              28.15 μs   (23.36 μs .. 35.28 μs)
variance introduced by outliers: 13% (moderately inflated)

benchmarking encode/jp/aeson-to-bytestring
time                 564.3 μs   (561.9 μs .. 566.2 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 564.4 μs   (561.9 μs .. 568.1 μs)
std dev              9.794 μs   (7.466 μs .. 13.53 μs)

benchmarking encode/jp/aeson-via-text-to-bytestring
time                 1.159 ms   (1.152 ms .. 1.166 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.162 ms   (1.157 ms .. 1.167 ms)
std dev              17.49 μs   (14.54 μs .. 22.63 μs)

benchmarking encode/jp/aeson-to-text
time                 995.5 μs   (990.8 μs .. 1.000 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 998.1 μs   (994.1 μs .. 1.005 ms)
std dev              17.02 μs   (11.06 μs .. 30.58 μs)

benchmarking encode/jp/json
time                 1.166 ms   (1.157 ms .. 1.178 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 1.159 ms   (1.154 ms .. 1.165 ms)
std dev              18.69 μs   (14.24 μs .. 25.26 μs)
  • aeson-benchmark-dates
benchmarking decode/UTCTime/whole
time                 22.82 μs   (22.76 μs .. 22.87 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 22.76 μs   (22.73 μs .. 22.81 μs)
std dev              128.4 ns   (90.56 ns .. 199.8 ns)

benchmarking decode/UTCTime/fractional
time                 24.93 μs   (24.84 μs .. 25.06 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 24.92 μs   (24.83 μs .. 25.10 μs)
std dev              406.3 ns   (201.7 ns .. 639.0 ns)
variance introduced by outliers: 12% (moderately inflated)

benchmarking decode/ZonedTime/whole
time                 18.25 μs   (18.20 μs .. 18.29 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 18.31 μs   (18.29 μs .. 18.34 μs)
std dev              81.98 ns   (51.34 ns .. 123.4 ns)

benchmarking decode/ZonedTime/fractional
time                 20.19 μs   (20.15 μs .. 20.24 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 20.19 μs   (20.17 μs .. 20.23 μs)
std dev              95.14 ns   (70.67 ns .. 131.8 ns)

benchmarking encode/UTCTime/whole
time                 8.513 μs   (8.489 μs .. 8.538 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 8.493 μs   (8.482 μs .. 8.512 μs)
std dev              45.62 ns   (25.73 ns .. 70.15 ns)

benchmarking encode/UTCTime/fractional
time                 9.186 μs   (9.172 μs .. 9.206 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 9.185 μs   (9.177 μs .. 9.200 μs)
std dev              35.73 ns   (23.84 ns .. 54.61 ns)

benchmarking encode/ZonedTime/whole
time                 9.391 μs   (9.376 μs .. 9.415 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 9.394 μs   (9.382 μs .. 9.414 μs)
std dev              51.36 ns   (25.29 ns .. 78.74 ns)

benchmarking encode/ZonedTime/fractional
time                 9.993 μs   (9.980 μs .. 10.01 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 10.01 μs   (9.993 μs .. 10.04 μs)
std dev              72.37 ns   (36.20 ns .. 134.2 ns)
  • aeson-benchmark-micro
benchmarking string/text
time                 379.2 ns   (378.0 ns .. 381.1 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 379.3 ns   (378.5 ns .. 380.5 ns)
std dev              3.229 ns   (2.097 ns .. 5.030 ns)

benchmarking string/string direct
time                 553.3 ns   (534.9 ns .. 587.4 ns)
                     0.976 R²   (0.945 R² .. 0.997 R²)
mean                 558.5 ns   (540.1 ns .. 598.8 ns)
std dev              88.02 ns   (44.63 ns .. 170.4 ns)
variance introduced by outliers: 96% (severely inflated)

benchmarking string/string via text
time                 869.4 ns   (868.2 ns .. 870.9 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 868.6 ns   (867.8 ns .. 869.8 ns)
std dev              3.236 ns   (2.328 ns .. 4.535 ns)
  • aeson-benchmark-typed
benchmarking generic/direct/twitter100
time                 461.0 μs   (453.7 μs .. 472.0 μs)
                     0.998 R²   (0.996 R² .. 1.000 R²)
mean                 459.5 μs   (456.5 μs .. 464.3 μs)
std dev              12.43 μs   (9.039 μs .. 20.01 μs)
variance introduced by outliers: 19% (moderately inflated)

benchmarking generic/direct/jp100
time                 482.9 μs   (476.1 μs .. 492.4 μs)
                     0.998 R²   (0.996 R² .. 1.000 R²)
mean                 477.3 μs   (474.6 μs .. 482.8 μs)
std dev              12.68 μs   (7.509 μs .. 24.16 μs)
variance introduced by outliers: 18% (moderately inflated)

benchmarking generic/viaValue/twitter100
time                 1.184 ms   (1.167 ms .. 1.214 ms)
                     0.997 R²   (0.993 R² .. 1.000 R²)
mean                 1.173 ms   (1.164 ms .. 1.191 ms)
std dev              39.93 μs   (24.63 μs .. 64.99 μs)
variance introduced by outliers: 23% (moderately inflated)

benchmarking generic/viaValue/jp100
time                 1.144 ms   (1.129 ms .. 1.169 ms)
                     0.998 R²   (0.994 R² .. 1.000 R²)
mean                 1.140 ms   (1.133 ms .. 1.155 ms)
std dev              34.68 μs   (15.79 μs .. 56.74 μs)
variance introduced by outliers: 20% (moderately inflated)

benchmarking manual/direct/twitter100
time                 383.9 μs   (379.3 μs .. 392.9 μs)
                     0.998 R²   (0.994 R² .. 1.000 R²)
mean                 383.6 μs   (381.3 μs .. 389.5 μs)
std dev              11.65 μs   (6.733 μs .. 22.41 μs)
variance introduced by outliers: 23% (moderately inflated)

benchmarking manual/direct/jp100
time                 371.4 μs   (370.7 μs .. 372.7 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 371.7 μs   (371.1 μs .. 372.3 μs)
std dev              2.125 μs   (1.617 μs .. 2.998 μs)

benchmarking manual/viaValue/twitter100
time                 1.157 ms   (1.153 ms .. 1.162 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.158 ms   (1.154 ms .. 1.162 ms)
std dev              13.56 μs   (10.96 μs .. 18.16 μs)

benchmarking manual/viaValue/jp100
time                 1.126 ms   (1.121 ms .. 1.135 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 1.123 ms   (1.120 ms .. 1.127 ms)
std dev              12.22 μs   (7.501 μs .. 21.11 μs)

benchmarking th/direct/twitter100
time                 458.4 μs   (452.6 μs .. 464.4 μs)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 455.8 μs   (453.7 μs .. 458.6 μs)
std dev              8.167 μs   (6.648 μs .. 11.74 μs)

benchmarking th/direct/jp100
time                 479.4 μs   (477.5 μs .. 481.3 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 481.0 μs   (479.8 μs .. 482.5 μs)
std dev              4.508 μs   (3.499 μs .. 6.330 μs)

benchmarking th/viaValue/twitter100
time                 1.150 ms   (1.144 ms .. 1.155 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 1.148 ms   (1.144 ms .. 1.152 ms)
std dev              14.30 μs   (10.94 μs .. 18.94 μs)

benchmarking th/viaValue/jp100
time                 1.110 ms   (1.107 ms .. 1.114 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.113 ms   (1.110 ms .. 1.115 ms)
std dev              9.190 μs   (7.467 μs .. 11.31 μs)

@RyanGlScott
Copy link
Member

criterion-1.1.0.0 has been released on Hackage, which supports GHC 8.0.

@bergmark
Copy link
Collaborator

bergmark commented Mar 2, 2016

Huzzah!

@bergmark bergmark closed this as completed Mar 2, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants