@@ -12,7 +12,8 @@ import qualified Codec.Binary.UTF8.Generic as UTF8
1212import qualified Data.Text as TS
1313import qualified Data.Text.Lazy as TL
1414import qualified Data.List as L
15−import Data.Text.Encoding
15+import qualified Data.Text.Encoding as TS
16+import qualified Data.Text.Lazy.Encoding as TL
1617import qualified Criterion.MultiMap as M
1718import Criterion.Config
1819import GHC.Base
@@ -39,11 +40,11 @@ instance NFData B where
3940
4041main = do
4142 bsa <- BS.readFile "text/test/russian.txt"
42− let tsa = decodeUtf8 bsa
43+ let tsa = TS.decodeUtf8 bsa
4344 tsb = TS.toUpper tsa
4445 tla = TL.fromChunks (TS.chunksOf 16376 tsa)
4546 tlb = TL.fromChunks (TS.chunksOf 16376 tsb)
46− bsb = encodeUtf8 tsb
47+ bsb = TS.encodeUtf8 tsb
4748 bla = BL.fromChunks (chunksOf 16376 bsa)
4849 blb = BL.fromChunks (chunksOf 16376 bsb)
4950 bsa_len = BS.length bsa
@@ -85,9 +86,11 @@ main = do
8586 , bench "l" $ nf (L.concatMap (L.replicate 3 . (:[]))) la
8687 ],
8788 bgroup "decode" [
88− bench "ts" $ nf decodeUtf8 bsa
89+ bench "ts" $ nf TS.decodeUtf8 bsa
90+ , bench "tl" $ nf TL.decodeUtf8 bla
8991 , bench "bs" $ nf BS.unpack bsa
90− , bench "utf8-string" $ nf UTF8.toString bsa
92+ , bench "bl" $ nf BL.unpack bla
93+ , bench "l" $ nf UTF8.toString bsa
9194 ],
9295 bgroup "drop" [
9396 bench "ts" $ nf (TS.drop (tsa_len `div` 3)) tsa
@@ -189,48 +192,65 @@ main = do
189192 ],
190193 bgroup "length" [
191194 bgroup "decode" [
192− bench "ts" $ nf (TS.length . decodeUtf8) bsa
195+ bench "ts" $ nf (TS.length . TS.decodeUtf8) bsa
196+ , bench "tl" $ nf (TL.length . TL.decodeUtf8) bla
193197 , bench "bs" $ nf (L.length . BS.unpack) bsa
198+ , bench "bl" $ nf (L.length . BL.unpack) bla
194199 , bench "utf8-string" $ nf (L.length . UTF8.toString) bsa
195200 ],
196201 bgroup "drop" [
197202 bench "ts" $ nf (TS.length . TS.drop (tsa_len `div` 3)) tsa
203+ , bench "tl" $ nf (TL.length . TL.drop (tla_len `div` 3)) tla
198204 , bench "bs" $ nf (BS.length . BS.drop (bsa_len `div` 3)) bsa
205+ , bench "bl" $ nf (BL.length . BL.drop (bla_len `div` 3)) bla
199206 , bench "l" $ nf (L.length . L.drop (la_len `div` 3)) la
200207 ],
201208 bgroup "filter" [
202209 bench "ts" $ nf (TS.length . TS.filter p0) tsa
210+ , bench "tl" $ nf (TL.length . TL.filter p0) tla
203211 , bench "bs" $ nf (BS.length . BS.filter p0) bsa
212+ , bench "bl" $ nf (BL.length . BL.filter p0) bla
204213 , bench "l" $ nf (L.length . L.filter p0) la
205214 ],
206215 bgroup "2filter" [
207216 bench "ts" $ nf (TS.length . TS.filter p1 . TS.filter p0) tsa
217+ , bench "tl" $ nf (TL.length . TL.filter p1 . TL.filter p0) tla
208218 , bench "bs" $ nf (BS.length . BS.filter p1 . BS.filter p0) bsa
219+ , bench "bl" $ nf (BL.length . BL.filter p1 . BL.filter p0) bla
209220 , bench "l" $ nf (L.length . L.filter p1 . L.filter p0) la
210221 ],
211222 bgroup "map" [
212223 bench "ts" $ nf (TS.length . TS.map f) tsa
224+ , bench "tl" $ nf (TL.length . TL.map f) tla
213225 , bench "bs" $ nf (BS.length . BS.map f) bsa
226+ , bench "bl" $ nf (BL.length . BL.map f) bla
214227 , bench "l" $ nf (L.length . L.map f) la
215228 ],
216229 bgroup "2map" [
217230 bench "ts" $ nf (TS.length . TS.map f . TS.map f) tsa
231+ , bench "tl" $ nf (TL.length . TL.map f . TL.map f) tla
218232 , bench "bs" $ nf (BS.length . BS.map f . BS.map f) bsa
219233 , bench "l" $ nf (L.length . L.map f . L.map f) la
220234 ],
221235 bgroup "take" [
222236 bench "ts" $ nf (TS.length . TS.take (tsa_len `div` 3)) tsa
237+ , bench "tl" $ nf (TL.length . TL.take (tla_len `div` 3)) tla
223238 , bench "bs" $ nf (BS.length . BS.take (bsa_len `div` 3)) bsa
239+ , bench "bl" $ nf (BL.length . BL.take (bla_len `div` 3)) bla
224240 , bench "l" $ nf (L.length . L.take (la_len `div` 3)) la
225241 ],
226242 bgroup "words" [
227243 bench "ts" $ nf (L.length . TS.words) tsa
244+ , bench "tl" $ nf (L.length . TL.words) tla
228245 , bench "bs" $ nf (L.length . BS.words) bsa
246+ , bench "bl" $ nf (L.length . BL.words) bla
229247 , bench "l" $ nf (L.length . L.words) la
230248 ],
231249 bgroup "zipWith" [
232250 bench "ts" $ nf (TS.length . TS.zipWith min tsb) tsa
251+ , bench "tl" $ nf (TL.length . TL.zipWith min tlb) tla
233252 , bench "bs" $ nf (L.length . BS.zipWith min bsb) bsa
253+ , bench "bl" $ nf (L.length . BL.zipWith min blb) bla
234254 , bench "l" $ nf (L.length . L.zipWith min lb) la
235255 ]
236256 ]