haskell-github-trust / thyme

A faster date and time library based on time
BSD 3-Clause "New" or "Revised" License
46 stars 33 forks source link

Fast and correct aeson instances for UTCTime #45

Open ondrap opened 8 years ago

ondrap commented 8 years ago

This patch does several things:

Benchmark results:

benchmarking time encode/time/encode
time                 1.097 μs   (1.058 μs .. 1.146 μs)
                     0.990 R²   (0.981 R² .. 0.998 R²)
mean                 1.072 μs   (1.049 μs .. 1.115 μs)
std dev              96.30 ns   (57.69 ns .. 168.7 ns)
variance introduced by outliers: 86% (severely inflated)

benchmarking time encode/thyme/encode
time                 547.6 ns   (537.6 ns .. 566.3 ns)
                     0.992 R²   (0.981 R² .. 0.999 R²)
mean                 558.1 ns   (545.7 ns .. 583.9 ns)
std dev              55.11 ns   (35.69 ns .. 89.25 ns)
variance introduced by outliers: 89% (severely inflated)

benchmarking time decode/time/decode
time                 2.467 μs   (2.438 μs .. 2.493 μs)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 2.475 μs   (2.448 μs .. 2.506 μs)
std dev              100.6 ns   (82.19 ns .. 128.5 ns)
variance introduced by outliers: 54% (severely inflated)

benchmarking time decode/thyme/decode
time                 856.0 ns   (850.2 ns .. 862.2 ns)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 859.9 ns   (852.5 ns .. 868.4 ns)
std dev              25.96 ns   (20.86 ns .. 33.31 ns)
variance introduced by outliers: 42% (moderately inflated)