Blame benchmarks/Dates.hs
|
Packit |
9a2dfb |
{-# OPTIONS_GHC -fsimpl-tick-factor=0 #-}
|
|
Packit |
9a2dfb |
module Main (main) where
|
|
Packit |
9a2dfb |
|
|
Packit |
9a2dfb |
import Prelude ()
|
|
Packit |
9a2dfb |
import Prelude.Compat
|
|
Packit |
9a2dfb |
|
|
Packit |
9a2dfb |
import Criterion.Main
|
|
Packit |
9a2dfb |
import Data.Aeson (decode, encode)
|
|
Packit |
9a2dfb |
import Data.Time.Clock (UTCTime)
|
|
Packit |
9a2dfb |
import Data.Time.LocalTime (ZonedTime)
|
|
Packit |
9a2dfb |
import qualified Data.ByteString.Lazy as BL
|
|
Packit |
9a2dfb |
|
|
Packit |
9a2dfb |
utcTime :: BL.ByteString -> Maybe [UTCTime]
|
|
Packit |
9a2dfb |
utcTime = decode
|
|
Packit |
9a2dfb |
|
|
Packit |
9a2dfb |
zTime :: BL.ByteString -> Maybe [ZonedTime]
|
|
Packit |
9a2dfb |
zTime = decode
|
|
Packit |
9a2dfb |
|
|
Packit |
9a2dfb |
main :: IO ()
|
|
Packit |
9a2dfb |
main = do
|
|
Packit |
9a2dfb |
let file1 = BL.readFile "json-data/dates.json"
|
|
Packit |
9a2dfb |
let file2 = BL.readFile "json-data/dates-fract.json"
|
|
Packit |
9a2dfb |
defaultMain [
|
|
Packit |
9a2dfb |
bgroup "decode" [
|
|
Packit |
9a2dfb |
bgroup "UTCTime" [
|
|
Packit |
9a2dfb |
env file1 $ \bs -> bench "whole" $ nf utcTime bs
|
|
Packit |
9a2dfb |
, env file2 $ \bs -> bench "fractional" $ nf utcTime bs
|
|
Packit |
9a2dfb |
]
|
|
Packit |
9a2dfb |
, bgroup "ZonedTime" [
|
|
Packit |
9a2dfb |
env file1 $ \bs -> bench "whole" $ nf zTime bs
|
|
Packit |
9a2dfb |
, env file2 $ \bs -> bench "fractional" $ nf zTime bs
|
|
Packit |
9a2dfb |
]
|
|
Packit |
9a2dfb |
]
|
|
Packit |
9a2dfb |
, bgroup "encode" [
|
|
Packit |
9a2dfb |
bgroup "UTCTime" [
|
|
Packit |
9a2dfb |
env (utcTime <$> file1) $ \ts -> bench "whole" $ nf encode ts
|
|
Packit |
9a2dfb |
, env (utcTime <$> file2) $ \ts -> bench "fractional" $ nf encode ts
|
|
Packit |
9a2dfb |
]
|
|
Packit |
9a2dfb |
, bgroup "ZonedTime" [
|
|
Packit |
9a2dfb |
env (zTime <$> file1) $ \ts -> bench "whole" $ nf encode ts
|
|
Packit |
9a2dfb |
, env (zTime <$> file2) $ \ts -> bench "fractional" $ nf encode ts
|
|
Packit |
9a2dfb |
]
|
|
Packit |
9a2dfb |
]
|
|
Packit |
9a2dfb |
]
|