@@ -1,22 +1,16 @@
1−
2−import Control.Exception
3−import Control.Monad
4−import Data.Aeson
1+import Criterion.Main
2+import Data.Aeson (decode)
53import Data.Time.Clock (UTCTime)
64import qualified Data.ByteString.Lazy as BL
7−import qualified Data.ByteString as B
8−import Criterion.Main
95
10−utcTime :: BL.ByteString -> [UTCTime]
11−utcTime str = let Just t = decode str in t
6+utcTime :: BL.ByteString -> Maybe [UTCTime]
7+utcTime = decode
128
139main :: IO ()
1410main = do
1511 let file1 = "json-data/dates.json"
1612 let file2 = "json-data/dates-fract.json"
17− enA1 <- BL.readFile file1
18− enA2 <- BL.readFile file2
19− defaultMain
20− [ bench "utc-time" $ nf utcTime enA1
21− , bench "utc-time fract" $ nf utcTime enA2
13+ defaultMain [
14+ env (BL.readFile file1) $ \ ~bs -> bench "whole" $ nf utcTime bs
15+ , env (BL.readFile file2) $ \ ~bs -> bench "fractional" $ nf utcTime bs
2216 ]