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