@@ -6,9 +6,9 @@ import Control.DeepSeq (NFData(rnf))
6import Criterion.Main (bench, bgroup, defaultMain, nf)
6import Criterion.Main (bench, bgroup, defaultMain, nf)
7import Data.Bits
7import Data.Bits
8import Data.Char (isAlpha)
8import Data.Char (isAlpha)
9−import Data.Scientific (Scientific(..))
10import Data.Word (Word32)
9import Data.Word (Word32)
11import Data.Word (Word8)
10import Data.Word (Word8)
11+import Numbers (numbers)
12import Text.Parsec.Text ()
12import Text.Parsec.Text ()
13import Text.Parsec.Text.Lazy ()
13import Text.Parsec.Text.Lazy ()
14import qualified Data.Attoparsec.ByteString as AB
14import qualified Data.Attoparsec.ByteString as AB
@@ -74,67 +74,15 @@ main = do
74 , bgroup "takeWhile" [
74 , bgroup "takeWhile" [
75 bench "isAlpha" $ nf (ABL.parse (AC.takeWhile isAlpha)) bl
75 bench "isAlpha" $ nf (ABL.parse (AC.takeWhile isAlpha)) bl
76 , bench "isAlpha_ascii" $ nf (ABL.parse (AC.takeWhile AC.isAlpha_ascii)) bl
76 , bench "isAlpha_ascii" $ nf (ABL.parse (AC.takeWhile AC.isAlpha_ascii)) bl
77+ , bench "isAlpha_iso8859_15" $
77− , bench "isAlpha_iso8859_15" $ nf (ABL.parse (AC.takeWhile AC.isAlpha_iso8859_15)) bl
78+ nf (ABL.parse (AC.takeWhile AC.isAlpha_iso8859_15)) bl
79 , bench "word32LE" $ nf (AB.parse word32LE) b
80 , bench "word32LE" $ nf (AB.parse word32LE) b
80 , bgroup "scan" [
81 , bgroup "scan" [
81 bench "short" $ nf (AB.parse quotedString) (BC.pack "abcdefghijk\"")
82 bench "short" $ nf (AB.parse quotedString) (BC.pack "abcdefghijk\"")
82 , bench "long" $ nf (AB.parse quotedString) b
83 , bench "long" $ nf (AB.parse quotedString) b
85− , let strN = "1234.56789"
86− strNePos = "1234.56789e3"
87− strNeNeg = "1234.56789e-3"
89− bgroup "numbers"
85+ , numbers
90− [ let !tN = T.pack strN
91− !tNePos = T.pack strNePos
92− !tNeNeg = T.pack strNeNeg
96− [ bench "double" $ nf (AT.parseOnly AT.double) tN
97− , bench "number" $ nf (AT.parseOnly AT.number) tN
98− , bench "rational" $ nf (AT.parseOnly (AT.rational :: AT.Parser Rational)) tN
99− , bench "scientific" $ nf (AT.parseOnly (AT.rational :: AT.Parser Scientific)) tN
101− , bgroup "positive power"
102− [ bench "double" $ nf (AT.parseOnly AT.double) tNePos
103− , bench "number" $ nf (AT.parseOnly AT.number) tNePos
104− , bench "rational" $ nf (AT.parseOnly (AT.rational :: AT.Parser Rational)) tNePos
105− , bench "scientific" $ nf (AT.parseOnly (AT.rational :: AT.Parser Scientific)) tNePos
107− , bgroup "negative power"
108− [ bench "double" $ nf (AT.parseOnly AT.double) tNeNeg
109− , bench "number" $ nf (AT.parseOnly AT.number) tNeNeg
110− , bench "rational" $ nf (AT.parseOnly (AT.rational :: AT.Parser Rational)) tNeNeg
111− , bench "scientific" $ nf (AT.parseOnly (AT.rational :: AT.Parser Scientific)) tNeNeg
114− , let !bN = BC.pack strN
115− !bNePos = BC.pack strNePos
116− !bNeNeg = BC.pack strNeNeg
117− in bgroup "ByteString"
119− [ bench "double" $ nf (AC.parseOnly AC.double) bN
120− , bench "number" $ nf (AC.parseOnly AC.number) bN
121− , bench "rational" $ nf (AC.parseOnly (AC.rational :: AC.Parser Rational)) bN
122− , bench "scientific" $ nf (AC.parseOnly (AC.rational :: AC.Parser Scientific)) bN
124− , bgroup "positive power"
125− [ bench "double" $ nf (AC.parseOnly AC.double) bNePos
126− , bench "number" $ nf (AC.parseOnly AC.number) bNePos
127− , bench "rational" $ nf (AC.parseOnly (AC.rational :: AC.Parser Rational)) bNePos
128− , bench "scientific" $ nf (AC.parseOnly (AC.rational :: AC.Parser Scientific)) bNePos
130− , bgroup "negative power"
131− [ bench "double" $ nf (AC.parseOnly AC.double) bNeNeg
132− , bench "number" $ nf (AC.parseOnly AC.number) bNeNeg
133− , bench "rational" $ nf (AC.parseOnly (AC.rational :: AC.Parser Rational)) bNeNeg
134− , bench "scientific" $ nf (AC.parseOnly (AC.rational :: AC.Parser Scientific)) bNeNeg
140-- Benchmarks bind and (potential) bounds-check merging.
88-- Benchmarks bind and (potential) bounds-check merging.