Commits

Bryan O'Sullivan committed f4e3b09

Add Daniel's replace benchmark

Comments (0)

Files changed (2)

tests/benchmarks/Makefile

 LDFLAGS := $(CFLAGS) $(shell icu-config --ldflags --ldflags-icuio)
 ghc := ghc
 
-all := FileRead FileRead_prof fileread_c
+all := FileRead FileRead_prof Replace Replace_prof fileread_c
 
 all: $(all)
 

tests/benchmarks/Replace.hs

+{-# LANGUAGE BangPatterns #-}
+module Main (main) where
+
+import System.Environment (getArgs)
+import qualified Data.Text.Lazy as LT
+import qualified Data.Text.Lazy.IO as LT
+import qualified Data.ByteString.Lazy.Search as LB
+import qualified Data.ByteString.Lazy.Char8 as LB
+import qualified Data.ByteString.Char8 as B
+
+lazyText file pat sub =
+  LT.readFile file >>= LT.putStr . LT.replace (LT.pack pat) (LT.pack sub)
+
+lazyBS file pat sub =
+  LB.readFile file >>= LB.putStr . LB.replace (B.pack pat) (LB.pack sub)
+
+main = do
+  (kind : file : pat : sub : _) <- getArgs
+  case kind of
+    "lazyText" -> lazyText file pat sub
+    "lazyBS" -> lazyBS file pat sub