on master help sign in
Add nested-concurrent benchmark
ff99b4cHarendra Kumar
bench.sh+12−8
@@ -231,7 +231,7 @@ run_reports() {
231#-----------------------------------------------------------------------------
231#-----------------------------------------------------------------------------
232
232
233DEFAULT_BENCHMARKS="linear"
233DEFAULT_BENCHMARKS="linear"
234−ALL_BENCHMARKS="linear linear-async linear-rate nested concurrrent fileio array base"
234+ALL_BENCHMARKS="linear linear-async linear-rate nested nested-concurrent concurrent fileio array base"
235GROUP_DIFF=0
235GROUP_DIFF=0
236
236
237COMPARE=0
237COMPARE=0
@@ -290,25 +290,29 @@ then
290 CABAL_BUILD_FLAGS="--flags dev"
290 CABAL_BUILD_FLAGS="--flags dev"
291fi
291fi
292
292
293+for i in $BENCHMARKS
294+do
293−if echo "$BENCHMARKS" | grep -q concurrent
295+ if test "$i" = concurrent
294−then
296+ then
295− STACK_BUILD_FLAGS="--flag streamly:dev"
297+ STACK_BUILD_FLAGS="--flag streamly:dev"
296− CABAL_BUILD_FLAGS="--flags dev"
298+ CABAL_BUILD_FLAGS="--flags dev"
299+ break
297−fi
300+ fi
301+done
298
302
299if test "$USE_STACK" = "1"
303if test "$USE_STACK" = "1"
300then
304then
301 WHICH_COMMAND="stack exec which"
305 WHICH_COMMAND="stack exec which"
302 BUILD_CHART_EXE="stack build --flag streamly:dev"
306 BUILD_CHART_EXE="stack build --flag streamly:dev"
303 GET_BENCH_PROG=stack_bench_prog
307 GET_BENCH_PROG=stack_bench_prog
304− BUILD_BENCH="stack build $STACK_BUILD_FLAGS --flags "streamly:benchmark" --bench --no-run-benchmarks"
308+ BUILD_BENCH="stack build $STACK_BUILD_FLAGS --bench --no-run-benchmarks"
305else
309else
306 # XXX cabal issue "cabal v2-exec which" cannot find benchmark/test executables
310 # XXX cabal issue "cabal v2-exec which" cannot find benchmark/test executables
307 #WHICH_COMMAND="cabal v2-exec which"
311 #WHICH_COMMAND="cabal v2-exec which"
308 WHICH_COMMAND=cabal_which
312 WHICH_COMMAND=cabal_which
309 BUILD_CHART_EXE="cabal v2-build --flags dev chart"
313 BUILD_CHART_EXE="cabal v2-build --flags dev chart"
310 GET_BENCH_PROG=cabal_bench_prog
314 GET_BENCH_PROG=cabal_bench_prog
311− BUILD_BENCH="cabal v2-build $CABAL_BUILD_FLAGS --flag benchmark --enable-benchmarks"
315+ BUILD_BENCH="cabal v2-build $CABAL_BUILD_FLAGS --enable-benchmarks"
312fi
316fi
313
317
314#-----------------------------------------------------------------------------
318#-----------------------------------------------------------------------------
benchmark/Chart.hs+8−1
@@ -27,6 +27,7 @@ data BenchType
27 | LinearAsync
27 | LinearAsync
28 | LinearRate
28 | LinearRate
29 | Nested
29 | Nested
30+ | NestedConcurrent
30 | Base
31 | Base
31 | FileIO
32 | FileIO
32 | Array
33 | Array
@@ -69,6 +70,7 @@ parseBench = do
69 Just "linear-async" -> setBenchType LinearAsync
70 Just "linear-async" -> setBenchType LinearAsync
70 Just "linear-rate" -> setBenchType LinearRate
71 Just "linear-rate" -> setBenchType LinearRate
71 Just "nested" -> setBenchType Nested
72 Just "nested" -> setBenchType Nested
73+ Just "nested-concurrent" -> setBenchType NestedConcurrent
72 Just "base" -> setBenchType Base
74 Just "base" -> setBenchType Base
73 Just "fileio" -> setBenchType FileIO
75 Just "fileio" -> setBenchType FileIO
74 Just "array" -> setBenchType Array
76 Just "array" -> setBenchType Array
@@ -345,10 +347,15 @@ main = do
345 "charts/linear-rate/results.csv"
347 "charts/linear-rate/results.csv"
346 "charts/linear-rate"
348 "charts/linear-rate"
347 Nested -> benchShow opts cfg
349 Nested -> benchShow opts cfg
348− { title = Just "Nested loops 100 x 100 elems" }
350+ { title = Just "Nested loops 316 x 316 elems" }
349 makeNestedGraphs
351 makeNestedGraphs
350 "charts/nested/results.csv"
352 "charts/nested/results.csv"
351 "charts/nested"
353 "charts/nested"
354+ NestedConcurrent -> benchShow opts cfg
355+ { title = Just "Nested concurrent loops 316 x 316 elems" }
356+ makeNestedGraphs
357+ "charts/nested-concurrent/results.csv"
358+ "charts/nested-concurrent"
352 FileIO -> benchShow opts cfg
359 FileIO -> benchShow opts cfg
353 { title = Just "File IO" }
360 { title = Just "File IO" }
354 makeFileIOGraphs
361 makeFileIOGraphs