@@ -1,5 +1,7 @@
11{-# OPTIONS_GHC -fno-warn-orphans #-}
22
3+import Blaze.ByteString.Builder (toLazyByteString)
4+import Blaze.ByteString.Builder.Char.Utf8 (fromString)
35import Control.DeepSeq (NFData(rnf))
46import Criterion.Main
57import qualified Data.Aeson as A
@@ -33,6 +35,9 @@ decodeA s = case A.decode s of
3335 Just v -> v
3436 Nothing -> error "fail to parse via Aeson"
3537
38+encodeJ :: J.JSValue -> BL.ByteString
39+encodeJ = toLazyByteString . fromString . J.encode
40+
3641main :: IO ()
3742main = do
3843 let enFile = "json-data/twitter100.json"
@@ -55,11 +60,11 @@ main = do
5560 , bgroup "encode" [
5661 bgroup "en" [
5762 bench "aeson" $ nf A.encode (decodeA enA)
58− , bench "json" $ nf J.encode (decodeJ enJ)
63+ , bench "json" $ nf encodeJ (decodeJ enJ)
5964 ]
6065 , bgroup "jp" [
6166 bench "aeson" $ nf A.encode (decodeA jpA)
62− , bench "json" $ nf J.encode (decodeJ jpJ)
67+ , bench "json" $ nf encodeJ (decodeJ jpJ)
6368 ]
6469 ]
6570 ]