From 64c35c5f0447ed51a9ba9c772776e7684f7cd4c4 Mon Sep 17 00:00:00 2001 From: Bryan O'Sullivan Date: Wed, 8 Sep 2010 04:17:23 +0000 Subject: [PATCH] Add Daniel's replace benchmark --HG-- extra : convert_revision : fc7c0924637fe3b5b3e3aec743fa1f7a8bda57f0 --- tests/benchmarks/Makefile | 2 +- tests/benchmarks/Replace.hs | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 tests/benchmarks/Replace.hs diff --git a/tests/benchmarks/Makefile b/tests/benchmarks/Makefile index 7d129976..20feb995 100644 --- a/tests/benchmarks/Makefile +++ b/tests/benchmarks/Makefile @@ -4,7 +4,7 @@ CPPFLAGS := $(shell icu-config --cppflags) 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) diff --git a/tests/benchmarks/Replace.hs b/tests/benchmarks/Replace.hs new file mode 100644 index 00000000..520eda11 --- /dev/null +++ b/tests/benchmarks/Replace.hs @@ -0,0 +1,21 @@ +{-# 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