@@ -1,5 +1,5 @@
11{-# LANGUAGE PackageImports #-}
2−module Typed.Generic (benchmarks) where
2+module Typed.Generic (benchmarks, decodeBenchmarks) where
33
44import Prelude ()
55import Prelude.Compat
@@ -26,7 +26,7 @@ encodeViaValueB = B.encode . B.toJSON
2626benchmarks :: Benchmark
2727benchmarks =
2828 env ((,) <$> load "json-data/twitter100.json" <*> load "json-data/jp100.json") $ \ ~(twitter100, jp100) ->
29− bgroup "generic" [
29+ bgroup "encodeGeneric" [
3030 bgroup "direct" [
3131 bench "twitter100" $ nf encodeDirectB twitter100
3232 , bench "jp100" $ nf encodeDirectB jp100
@@ -40,3 +40,21 @@ benchmarks =
4040 , bench "jp100 baseline" $ nf encodeViaValueA jp100
4141 ]
4242 ]
43+
44+decodeDirectA :: L.ByteString -> Maybe Result
45+decodeDirectA = decode
46+
47+decodeDirectB :: L.ByteString -> Maybe Result
48+decodeDirectB = B.decode
49+
50+decodeBenchmarks :: Benchmark
51+decodeBenchmarks =
52+ env ((,) <$> L.readFile "json-data/twitter100.json" <*> L.readFile "json-data/jp100.json") $ \ ~(twitter100, jp100) ->
53+ bgroup "decodeGeneric"
54+ [ bgroup "direct"
55+ [ bench "twitter100" $ nf decodeDirectB twitter100
56+ , bench "jp100" $ nf decodeDirectB jp100
57+ , bench "twitter100 baseline" $ nf decodeDirectA twitter100
58+ , bench "jp100 baseline" $ nf decodeDirectA jp100
59+ ]
60+ ]