on master help sign in
Add date/time encoding benchmarks
commitb3cb3b07dd2ee30af5f2ffd9f5c31322a9e3a141 authorBryan O'Sullivan <bos@serpentine.com> dateMon 20 Jul 2015, 10:07 (11 years ago) parented30f97
1 file changed+21−9
benchmarks/Dates.hs+21−9
benchmarks/Dates.hs+21−9
@@ -1,5 +1,5 @@
11import Criterion.Main
2−import Data.Aeson (decode)
2+import Data.Aeson (decode, encode)
33import Data.Time.Clock (UTCTime)
44import Data.Time.LocalTime (ZonedTime)
55import qualified Data.ByteString.Lazy as BL
@@ -12,15 +12,27 @@ zTime = decode
1212
1313main :: IO ()
1414main = do
15− let file1 = "json-data/dates.json"
16− let file2 = "json-data/dates-fract.json"
15+ let file1 = BL.readFile "json-data/dates.json"
16+ let file2 = BL.readFile "json-data/dates-fract.json"
1717 defaultMain [
18− bgroup "UTCTime" [
19− env (BL.readFile file1) $ \ ~bs -> bench "whole" $ nf utcTime bs
20− , env (BL.readFile file2) $ \ ~bs -> bench "fractional" $ nf utcTime bs
18+ bgroup "decode" [
19+ bgroup "UTCTime" [
20+ env file1 $ \ ~bs -> bench "whole" $ nf utcTime bs
21+ , env file2 $ \ ~bs -> bench "fractional" $ nf utcTime bs
22+ ]
23+ , bgroup "ZonedTime" [
24+ env file1 $ \ ~bs -> bench "whole" $ nf zTime bs
25+ , env file2 $ \ ~bs -> bench "fractional" $ nf zTime bs
26+ ]
2127 ]
22− , bgroup "ZonedTime" [
23− env (BL.readFile file1) $ \ ~bs -> bench "whole" $ nf zTime bs
24− , env (BL.readFile file2) $ \ ~bs -> bench "fractional" $ nf zTime bs
28+ , bgroup "encode" [
29+ bgroup "UTCTime" [
30+ env (utcTime <$> file1) $ \ ~ts -> bench "whole" $ nf encode ts
31+ , env (utcTime <$> file2) $ \ ~ts -> bench "fractional" $ nf encode ts
32+ ]
33+ , bgroup "ZonedTime" [
34+ env (zTime <$> file1) $ \ ~ts -> bench "whole" $ nf encode ts
35+ , env (zTime <$> file2) $ \ ~ts -> bench "fractional" $ nf encode ts
36+ ]
2537 ]
2638 ]