on master help sign in
Make a sandalone fold executable.
commit9797d7615ddad2f806859863a056357a1b630692 authoradithyaov <adi.obilisetty@gmail.com> dateFri 27 Mar 2020, 03:27 (7 years ago) parent619b574
5 files changed+39−15
benchmark/lib/Streamly/Benchmark/Data/Fold.hs → benchmark/Streamly/Benchmark/Data/Fold.hs+27−7 benchmark/Streamly/Benchmark/Prelude/Serial/O_1_Space.hs−4 benchmark/Streamly/Benchmark/Prelude/Serial/O_n_Heap.hs−2 benchmark/streamly-benchmarks.cabal+12−1 streamly.cabal−1
benchmark/lib/Streamly/Benchmark/Data/Fold.hs → benchmark/Streamly/Benchmark/Data/Fold.hsrenamed+27−7
@@ -7,12 +7,7 @@
77
88{-# LANGUAGE FlexibleContexts #-}
99
10−module Streamly.Benchmark.Data.Fold
11− ( o_1_space_serial_folds
12− , o_1_space_serial_foldsTransforms
13− , o_1_space_serial_foldsCompositions
14− , o_n_heap_serial_folds
15− ) where
10+module Main (main) where
1611
1712import Control.DeepSeq (NFData(..))
1813import Data.Monoid (Last(..))
@@ -20,7 +15,7 @@ import Data.Monoid (Last(..))
2015import System.Random (randomRIO)
2116import Prelude (IO, Int, Double, String, (>), (<*>), (<$>), (+), ($),
2217 (<=), Monad(..), (==), Maybe(..), (.), fromIntegral,
23− compare, (>=))
18+ compare, (>=), concat, seq)
2419
2520import qualified Streamly as S hiding (runStream)
2621import qualified Streamly.Prelude as S
@@ -36,6 +31,7 @@ import qualified Streamly.Internal.Prelude as IP
3631
3732import Gauge
3833import Streamly hiding (runStream)
34+import Streamly.Benchmark.Common
3935
4036-- We need a monadic bind here to make sure that the function f does not get
4137-- completely optimized out by the compiler in some cases.
@@ -208,3 +204,27 @@ o_n_heap_serial_folds value =
208204 ]
209205 ]
210206 ]
207+
208+-------------------------------------------------------------------------------
209+-- Driver
210+-------------------------------------------------------------------------------
211+
212+main :: IO ()
213+main = do
214+ (value, cfg, benches) <- parseCLIOpts defaultStreamSize
215+ value `seq` runMode (mode cfg) cfg benches (allBenchmarks value)
216+ where
217+ allBenchmarks value =
218+ [ bgroup
219+ "o-1-space"
220+ [ bgroup "fold" $
221+ concat
222+ [ o_1_space_serial_folds value
223+ , o_1_space_serial_foldsTransforms value
224+ , o_1_space_serial_foldsCompositions value
225+ ]
226+ ]
227+ , bgroup
228+ "o-n-heap"
229+ [bgroup "fold" $ concat [o_n_heap_serial_folds value]]
230+ ]
benchmark/Streamly/Benchmark/Prelude/Serial/O_1_Space.hs−4
@@ -7,7 +7,6 @@
77
88import Streamly.Benchmark.Common
99import Streamly.Benchmark.Prelude
10−import Streamly.Benchmark.Data.Fold
1110
1211import Gauge
1312
@@ -34,10 +33,7 @@ main = do
3433 , o_1_space_serial_foldable value
3534 , o_1_space_serial_generation value
3635 , o_1_space_serial_elimination value
37− , o_1_space_serial_folds value
3836 , o_1_space_serial_foldMultiStream value
39− , o_1_space_serial_foldsTransforms value
40− , o_1_space_serial_foldsCompositions value
4137 , o_1_space_serial_pipes value
4238 , o_1_space_serial_pipesX4 value
4339 , o_1_space_serial_transformer value
benchmark/Streamly/Benchmark/Prelude/Serial/O_n_Heap.hs−2
@@ -7,7 +7,6 @@
77
88import Streamly.Benchmark.Common
99import Streamly.Benchmark.Prelude
10−import Streamly.Benchmark.Data.Fold
1110
1211import Gauge
1312
@@ -28,5 +27,4 @@ main = do
2827 concat
2928 [ o_n_heap_serial_foldl size
3029 , o_n_heap_serial_buffering size
31− , o_n_heap_serial_folds size
3230 ]
benchmark/streamly-benchmarks.cabal+12−1
@@ -137,7 +137,6 @@ library lib-prelude
137137 hs-source-dirs: lib, .
138138 exposed-modules:
139139 Streamly.Benchmark.Prelude
140− , Streamly.Benchmark.Data.Fold
141140 other-modules: Streamly.Benchmark.Common
142141 , NestedOps
143142 , NestedUnfoldOps
@@ -226,6 +225,18 @@ benchmark serial-o-n-space
226225 build-depends: lib-prelude
227226 buildable: True
228227
228+-- XXX Default memory restriction = o-1-space
229+benchmark fold
230+ import: bench-options
231+ type: exitcode-stdio-1.0
232+ ghc-options: -with-rtsopts "-T -K36K -M16M"
233+ hs-source-dirs: ., Streamly/Benchmark/Data
234+ main-is: Fold.hs
235+ if impl(ghcjs)
236+ buildable: False
237+ else
238+ buildable: True
239+
229240-------------------------------------------------------------------------------
230241-- Raw Streams
231242-------------------------------------------------------------------------------
streamly.cabal−1
@@ -123,7 +123,6 @@ extra-source-files:
123123 benchmark/README.md
124124 benchmark/*.hs
125125 benchmark/lib/Streamly/Benchmark/*.hs
126− benchmark/lib/Streamly/Benchmark/Data/*.hs
127126 benchmark/Streamly/Benchmark/Data/*.hs
128127 benchmark/Streamly/Benchmark/Data/Prim/*.hs
129128 benchmark/Streamly/Benchmark/Data/Stream/*.hs