@@ -9,11 +9,14 @@ import Criterion.Main
99import Data.Char
1010import qualified Codec.Binary.UTF8.Generic as UTF8
1111import qualified Data.Text as TS
12+import qualified Data.Text.IO as TS
1213import qualified Data.Text.Lazy as TL
14+import qualified Data.Text.Lazy.IO as TL
1315import qualified Data.List as L
1416import qualified Data.Text.Encoding as TS
1517import qualified Data.Text.Lazy.Encoding as TL
1618import qualified Criterion.MultiMap as M
19+import Control.DeepSeq
1720import Criterion.Config
1821import GHC.Base
1922
@@ -38,7 +41,8 @@ instance NFData B where
3841 rnf (B b) = rnf b
3942
4043main = do
41− bsa <- BS.readFile "text/test/russian.txt"
44+ let dataFile = "text/test/russian.txt"
45+ bsa <- BS.readFile dataFile
4246 let tsa = TS.decodeUtf8 bsa
4347 tsb = TS.toUpper tsa
4448 tla = TL.fromChunks (TS.chunksOf 16376 tsa)
@@ -192,6 +196,13 @@ main = do
192196 , bench "bl" $ nf (BL.map f . BL.map f) bla
193197 , bench "l" $ nf (L.map f . L.map f) la
194198 ],
199+ bgroup "readFile" [
200+ bench "ts" $ TS.readFile dataFile
201+ , bench "tl" $ nfIO (TL.readFile dataFile)
202+ , bench "bs" $ BS.readFile dataFile
203+ , bench "bl" $ nfIO (BL.length `fmap` BL.readFile dataFile)
204+ , bench "l" $ nfIO (length `fmap` readFile dataFile)
205+ ],
195206 bgroup "replicate char" [
196207 bench "ts" $ nf (TS.replicate bsa_len) (TS.singleton c)
197208 , bench "tl" $ nf (TL.replicate (fromIntegral bsa_len)) (TL.singleton c)