@@ -2,11 +2,13 @@
2{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
2{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
3module HeadersText (headers) where
3module HeadersText (headers) where
5+import Common (rechunkT)
5import Control.Applicative
6import Control.Applicative
6import Criterion.Main (bench, bgroup, nf)
7import Criterion.Main (bench, bgroup, nf)
7import Criterion.Types (Benchmark)
8import Criterion.Types (Benchmark)
8import Data.Char (isSpace)
9import Data.Char (isSpace)
9import qualified Data.Attoparsec.Text as T
10import qualified Data.Attoparsec.Text as T
11+import qualified Data.Attoparsec.Text.Lazy as TL
10import qualified Data.Text.IO as T
12import qualified Data.Text.IO as T
12header = do
14header = do
@@ -41,7 +43,15 @@ headers :: IO Benchmark
41headers = do
43headers = do
42 req <- T.readFile "http-request.txt"
44 req <- T.readFile "http-request.txt"
43 resp <- T.readFile "http-response.txt"
45 resp <- T.readFile "http-response.txt"
46+ let reql = rechunkT 4 req
47+ respl = rechunkT 4 resp
44− return $ bgroup "headersT" [
48+ return $ bgroup "headers" [
45− bench "request" $ nf (T.parseOnly request) req
50+ bench "request" $ nf (T.parseOnly request) req
46− , bench "response" $ nf (T.parseOnly response) resp
51+ , bench "response" $ nf (T.parseOnly response) resp
54+ bench "request" $ nf (TL.parse request) reql
55+ , bench "response" $ nf (TL.parse response) respl