on master help sign in
Consistently use ByteString's for IO
1b33e08Jasper Van der Jeugt
tests/benchmarks/src/Data/Text/Benchmarks/Programs/Sort.hs+10−3
@@ -21,15 +21,17 @@ import Criterion (Benchmark, bgroup, bench)
21import Data.Monoid (mconcat)
21import Data.Monoid (mconcat)
22import System.IO (Handle, hPutStr)
22import System.IO (Handle, hPutStr)
23import qualified Data.ByteString as B
23import qualified Data.ByteString as B
24+import qualified Data.ByteString.Char8 as BC
24import qualified Data.ByteString.Lazy as BL
25import qualified Data.ByteString.Lazy as BL
25import qualified Data.ByteString.Lazy.Char8 as BLC
26import qualified Data.ByteString.Lazy.Char8 as BLC
26−import qualified Data.ByteString.Char8 as BC
27import qualified Data.List as L
27import qualified Data.List as L
28import qualified Data.Text as T
28import qualified Data.Text as T
29+import qualified Data.Text.Encoding as T
29import qualified Data.Text.IO as T
30import qualified Data.Text.IO as T
30import qualified Data.Text.Lazy as TL
31import qualified Data.Text.Lazy as TL
31−import qualified Data.Text.Lazy.IO as TL
32import qualified Data.Text.Lazy.Builder as TLB
32import qualified Data.Text.Lazy.Builder as TLB
33+import qualified Data.Text.Lazy.Encoding as TL
34+import qualified Data.Text.Lazy.IO as TL
33
35
34benchmark :: FilePath -> Handle -> IO Benchmark
36benchmark :: FilePath -> Handle -> IO Benchmark
35benchmark i o = return $ bgroup "Sort"
37benchmark i o = return $ bgroup "Sort"
@@ -38,7 +40,12 @@ benchmark i o = return $ bgroup "Sort"
38 , bench "LazyByteString" $ BL.readFile i >>= BL.hPutStr o . lazyByteString
40 , bench "LazyByteString" $ BL.readFile i >>= BL.hPutStr o . lazyByteString
39 , bench "Text" $ T.readFile i >>= T.hPutStr o . text
41 , bench "Text" $ T.readFile i >>= T.hPutStr o . text
40 , bench "LazyText" $ TL.readFile i >>= TL.hPutStr o . lazyText
42 , bench "LazyText" $ TL.readFile i >>= TL.hPutStr o . lazyText
43+ , bench "TextByteString" $ B.readFile i >>=
44+ B.hPutStr o . T.encodeUtf8 . text . T.decodeUtf8
45+ , bench "LazyTextByteString" $ BL.readFile i >>=
46+ BL.hPutStr o . TL.encodeUtf8 . lazyText . TL.decodeUtf8
41− , bench "TextBuilder" $ T.readFile i >>= TL.hPutStr o . textBuilder
47+ , bench "TextBuilder" $ B.readFile i >>=
48+ BL.hPutStr o . TL.encodeUtf8 . textBuilder . T.decodeUtf8
42 ]
49 ]
43
50
44string :: String -> String
51string :: String -> String
tests/benchmarks/src/Data/Text/Benchmarks/Programs/StripTags.hs+3−1
@@ -22,12 +22,14 @@ import qualified Data.ByteString as B
22import qualified Data.ByteString.Char8 as BC
22import qualified Data.ByteString.Char8 as BC
23import qualified Data.Text as T
23import qualified Data.Text as T
24import qualified Data.Text.Encoding as T
24import qualified Data.Text.Encoding as T
25+import qualified Data.Text.IO as T
25
26
26benchmark :: FilePath -> Handle -> IO Benchmark
27benchmark :: FilePath -> Handle -> IO Benchmark
27benchmark i o = return $ bgroup "StripTags"
28benchmark i o = return $ bgroup "StripTags"
28 [ bench "String" $ readFile i >>= hPutStr o . string
29 [ bench "String" $ readFile i >>= hPutStr o . string
29 , bench "ByteString" $ B.readFile i >>= B.hPutStr o . byteString
30 , bench "ByteString" $ B.readFile i >>= B.hPutStr o . byteString
30− , bench "Text" $
31+ , bench "Text" $ T.readFile i >>= T.hPutStr o . text
32+ , bench "TextByteString" $
31 B.readFile i >>= B.hPutStr o . T.encodeUtf8 . text . T.decodeUtf8
33 B.readFile i >>= B.hPutStr o . T.encodeUtf8 . text . T.decodeUtf8
32 ]
34 ]
33
35
tests/benchmarks/src/Data/Text/Benchmarks/Programs/Throughput.hs+6
@@ -22,7 +22,9 @@ import Criterion (Benchmark, bgroup, bench)
22import System.IO (Handle, hPutStr)
22import System.IO (Handle, hPutStr)
23import qualified Data.ByteString as B
23import qualified Data.ByteString as B
24import qualified Data.ByteString.Lazy as BL
24import qualified Data.ByteString.Lazy as BL
25+import qualified Data.Text.Encoding as T
25import qualified Data.Text.IO as T
26import qualified Data.Text.IO as T
27+import qualified Data.Text.Lazy.Encoding as TL
26import qualified Data.Text.Lazy.IO as TL
28import qualified Data.Text.Lazy.IO as TL
27
29
28benchmark :: FilePath -> Handle -> IO Benchmark
30benchmark :: FilePath -> Handle -> IO Benchmark
@@ -32,4 +34,8 @@ benchmark fp sink = return $ bgroup "Throughput"
32 , bench "LazyByteString" $ BL.readFile fp >>= BL.hPutStr sink
34 , bench "LazyByteString" $ BL.readFile fp >>= BL.hPutStr sink
33 , bench "Text" $ T.readFile fp >>= T.hPutStr sink
35 , bench "Text" $ T.readFile fp >>= T.hPutStr sink
34 , bench "LazyText" $ TL.readFile fp >>= TL.hPutStr sink
36 , bench "LazyText" $ TL.readFile fp >>= TL.hPutStr sink
37+ , bench "TextByteString" $
38+ B.readFile fp >>= B.hPutStr sink . T.encodeUtf8 . T.decodeUtf8
39+ , bench "LazyTextByteString" $
40+ BL.readFile fp >>= BL.hPutStr sink . TL.encodeUtf8 . TL.decodeUtf8
35 ]
41 ]