on master help sign in
Consistently use ByteString's for IO
commit1b33e0812bf036b250c094d3c39df1b6351af890 authorJasper Van der Jeugt <jaspervdj@gmail.com> dateThu 18 Aug 2011, 14:59 (15 years ago) parentb90f89b
3 files changed+19−4
tests/benchmarks/src/Data/Text/Benchmarks/Programs/Sort.hs+10−3 tests/benchmarks/src/Data/Text/Benchmarks/Programs/StripTags.hs+3−1 tests/benchmarks/src/Data/Text/Benchmarks/Programs/Throughput.hs+6
tests/benchmarks/src/Data/Text/Benchmarks/Programs/Sort.hs+10−3
@@ -21,15 +21,17 @@ import Criterion (Benchmark, bgroup, bench)
2121import Data.Monoid (mconcat)
2222import System.IO (Handle, hPutStr)
2323import qualified Data.ByteString as B
24+import qualified Data.ByteString.Char8 as BC
2425import qualified Data.ByteString.Lazy as BL
2526import qualified Data.ByteString.Lazy.Char8 as BLC
26−import qualified Data.ByteString.Char8 as BC
2727import qualified Data.List as L
2828import qualified Data.Text as T
29+import qualified Data.Text.Encoding as T
2930import qualified Data.Text.IO as T
3031import qualified Data.Text.Lazy as TL
31−import qualified Data.Text.Lazy.IO as TL
3232import 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
3335
3436benchmark :: FilePath -> Handle -> IO Benchmark
3537benchmark i o = return $ bgroup "Sort"
@@ -38,7 +40,12 @@ benchmark i o = return $ bgroup "Sort"
3840 , bench "LazyByteString" $ BL.readFile i >>= BL.hPutStr o . lazyByteString
3941 , bench "Text" $ T.readFile i >>= T.hPutStr o . text
4042 , bench "LazyText" $ TL.readFile i >>= TL.hPutStr o . lazyText
41− , bench "TextBuilder" $ T.readFile i >>= TL.hPutStr o . textBuilder
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
47+ , bench "TextBuilder" $ B.readFile i >>=
48+ BL.hPutStr o . TL.encodeUtf8 . textBuilder . T.decodeUtf8
4249 ]
4350
4451string :: String -> String
tests/benchmarks/src/Data/Text/Benchmarks/Programs/StripTags.hs+3−1
@@ -22,12 +22,14 @@ import qualified Data.ByteString as B
2222import qualified Data.ByteString.Char8 as BC
2323import qualified Data.Text as T
2424import qualified Data.Text.Encoding as T
25+import qualified Data.Text.IO as T
2526
2627benchmark :: FilePath -> Handle -> IO Benchmark
2728benchmark i o = return $ bgroup "StripTags"
2829 [ bench "String" $ readFile i >>= hPutStr o . string
2930 , 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" $
3133 B.readFile i >>= B.hPutStr o . T.encodeUtf8 . text . T.decodeUtf8
3234 ]
3335
tests/benchmarks/src/Data/Text/Benchmarks/Programs/Throughput.hs+6
@@ -22,7 +22,9 @@ import Criterion (Benchmark, bgroup, bench)
2222import System.IO (Handle, hPutStr)
2323import qualified Data.ByteString as B
2424import qualified Data.ByteString.Lazy as BL
25+import qualified Data.Text.Encoding as T
2526import qualified Data.Text.IO as T
27+import qualified Data.Text.Lazy.Encoding as TL
2628import qualified Data.Text.Lazy.IO as TL
2729
2830benchmark :: FilePath -> Handle -> IO Benchmark
@@ -32,4 +34,8 @@ benchmark fp sink = return $ bgroup "Throughput"
3234 , bench "LazyByteString" $ BL.readFile fp >>= BL.hPutStr sink
3335 , bench "Text" $ T.readFile fp >>= T.hPutStr sink
3436 , 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
3541 ]