@@ -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
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
44string :: String -> String
51string :: String -> String