on master help sign in
Allow decoding of multiple files when benchmarking
commit62f1c97c858e48473a2953d5b21813c440d14b24 authorBryan O'Sullivan <bos@serpentine.com> dateSun 10 Jul 2011, 13:10 (15 years ago) parent30a0509
2 files changed+9−4
tests/benchmarks/src/Data/Text/Benchmarks.hs+4−1 tests/benchmarks/src/Data/Text/Benchmarks/DecodeUtf8.hs+5−3
tests/benchmarks/src/Data/Text/Benchmarks.hs+4−1
@@ -39,7 +39,10 @@ benchmarks = do
3939 -- Traditional benchmarks
4040 bs <- sequence
4141 [ Builder.benchmark
42− , DecodeUtf8.benchmark (tf "russian.txt")
42+ , DecodeUtf8.benchmark "xml" (tf "yiwiki.xml")
43+ , DecodeUtf8.benchmark "ascii" (tf "ascii.txt")
44+ , DecodeUtf8.benchmark "russian" (tf "russian.txt")
45+ , DecodeUtf8.benchmark "japanese" (tf "japanese.txt")
4346 , EncodeUtf8.benchmark "επανάληψη 竺法蘭共譯"
4447 , Equality.benchmark (tf "japanese.txt")
4548 , FileRead.benchmark (tf "russian.txt")
tests/benchmarks/src/Data/Text/Benchmarks/DecodeUtf8.hs+5−3
@@ -23,7 +23,8 @@ import Data.ByteString.Internal (ByteString(..))
2323import Foreign.Ptr (Ptr, plusPtr)
2424import Foreign.ForeignPtr (withForeignPtr)
2525import Data.Word (Word8)
26−import Criterion (Benchmark, bgroup, bench, nf)
26+import qualified Criterion as C
27+import Criterion (Benchmark, bgroup, nf)
2728import qualified Codec.Binary.UTF8.Generic as U8
2829import qualified Data.ByteString as B
2930import qualified Data.ByteString.Lazy as BL
@@ -32,10 +33,11 @@ import qualified Data.Text.Encoding as T
3233import qualified Data.Text.Lazy as TL
3334import qualified Data.Text.Lazy.Encoding as TL
3435
35−benchmark :: FilePath -> IO Benchmark
36−benchmark fp = do
36+benchmark :: String -> FilePath -> IO Benchmark
37+benchmark kind fp = do
3738 bs <- B.readFile fp
3839 lbs <- BL.readFile fp
40+ let bench name = C.bench (name ++ "+" ++ kind)
3941 return $ bgroup "DecodeUtf8"
4042 [ bench "Strict" $ nf T.decodeUtf8 bs
4143 , bench "IConv" $ iconv bs