on builder help sign in
text/tests/benchmarks/FileRead.hs
57 lines 1.5 kB history raw
1{-# LANGUAGE BangPatterns #-}
3import System.Environment (getArgs)
4import qualified Data.Text.IO as T
5import qualified Data.Text as T
6import qualified Data.Text.Encoding as T
7import qualified Data.Text.Lazy.IO as TL
8import qualified Data.Text.Lazy as TL
9import qualified Data.Text.Lazy.Encoding as TL
10import qualified Data.ByteString.Char8 as B
11import qualified Data.ByteString.Lazy.Char8 as BL
12import System.IO
14string :: Handle -> IO ()
15string h = hGetContents h >>= print . length
17ltext :: Handle -> IO ()
18ltext h = do
19 t <- {-# SCC "TL.hGetContents" #-} TL.hGetContents h
20 print (TL.length t)
22ltextBS :: Handle -> IO ()
23ltextBS h = do
24 bs <- {-# SCC "B.hGetContents" #-} BL.hGetContents h
25 print . TL.length . TL.decodeUtf8 $ bs
27text :: Handle -> IO ()
28text h = do
29 t <- {-# SCC "T.hGetContents" #-} T.hGetContents h
30 print (T.length t)
32textBS :: Handle -> IO ()
33textBS h = do
34 bs <- {-# SCC "B.hGetContents" #-} B.hGetContents h
35 print . T.length . T.decodeUtf8 $ bs
37lbytestring :: Handle -> IO ()
38lbytestring h = do
39 bs <- {-# SCC "BL.hGetContents" #-} BL.hGetContents h
40 print (BL.length bs)
42bytestring :: Handle -> IO ()
43bytestring h = do
44 bs <- {-# SCC "B.hGetContents" #-} B.hGetContents h
45 print (B.length bs)
47main = do
48 (name : file : _) <- getArgs
49 h <- openFile file ReadMode
50 case name of
51 "bs" -> bytestring h
52 "lbs" -> lbytestring h
53 "ltext" -> ltext h
54 "ltextBS" -> ltextBS h
55 "string" -> string h
56 "text" -> text h
57 "textBS" -> textBS h