@@ -11,7 +11,7 @@
12module Main (main) where
12module Main (main) where
14−import Control.DeepSeq (NFData(..))
14+import Control.DeepSeq (NFData(..), deepseq)
15import System.Random (randomRIO)
15import System.Random (randomRIO)
17import qualified Streamly.Benchmark.Data.ArrayOps as Ops
17import qualified Streamly.Benchmark.Data.ArrayOps as Ops
@@ -48,6 +48,9 @@ benchIO' name src f = bench name $ nfIO $
48benchIOSink :: NFData b => String -> (Ops.Stream Int -> IO b) -> Benchmark
48benchIOSink :: NFData b => String -> (Ops.Stream Int -> IO b) -> Benchmark
49benchIOSink name f = benchIO' name Ops.sourceIntFromTo f
49benchIOSink name f = benchIO' name Ops.sourceIntFromTo f
52+mkString = "[1" ++ concat (replicate Ops.value ",1") ++ "]"
51main :: IO ()
54main :: IO ()
53 defaultMain
56 defaultMain
@@ -60,15 +63,15 @@ main =
60 , benchIOSrc "writeN . fromList" Ops.sourceFromList
63 , benchIOSrc "writeN . fromList" Ops.sourceFromList
61 -- , benchPureSrc "writeN . IsList.fromList" Ops.sourceIsList
64 -- , benchPureSrc "writeN . IsList.fromList" Ops.sourceIsList
62 -- , benchPureSrc "writeN . IsString.fromString" Ops.sourceIsString
65 -- , benchPureSrc "writeN . IsString.fromString" Ops.sourceIsString
63− -- , mkString `deepseq` (bench "read" $ nf Ops.readInstance mkString)
66+ , mkString `deepseq` (bench "read" $ nf Ops.readInstance mkString)
64− -- , benchPureSink "show" Ops.showInstance
67+ , benchPureSink "show" Ops.showInstance
66 , bgroup "elimination"
69 , bgroup "elimination"
67 [ benchPureSink "id" id
70 [ benchPureSink "id" id
68− -- , benchPureSink "==" Ops.eqInstance
71+ , benchPureSink "==" Ops.eqInstance
69− -- , benchPureSink "/=" Ops.eqInstanceNotEq
72+ , benchPureSink "/=" Ops.eqInstanceNotEq
70− -- , benchPureSink "<" Ops.ordInstance
73+ , benchPureSink "<" Ops.ordInstance
71− -- , benchPureSink "min" Ops.ordInstanceMin
74+ , benchPureSink "min" Ops.ordInstanceMin
72 -- length is used to check for foldr/build fusion
75 -- length is used to check for foldr/build fusion
73 -- , benchPureSink "length . IsList.toList" (length . GHC.toList)
76 -- , benchPureSink "length . IsList.toList" (length . GHC.toList)
74 , benchIOSink "foldl'" Ops.pureFoldl'
77 , benchIOSink "foldl'" Ops.pureFoldl'