@@ -31,30 +31,55 @@ main = do
31 -- degradation, so we should keep that in account when comparing.
31 -- degradation, so we should keep that in account when comparing.
32 let as = asyncly_basic
32 let as = asyncly_basic
33 defaultMain [
33 defaultMain [
34− bgroup "basic"
34+ bgroup "asyncly"
35+ [ bgroup "serial bind"
35− [ bench "asyncly-serial" $ nfIO (as (>>=) (A.<>))
36+ [ bench "serial" $ nfIO (as (>>=) (A.<>))
36− , bench "asyncly-interleaved" $ nfIO (as (>>=) (A.<=>))
37+ , bench "fair serial" $ nfIO (as (>>=) (A.<=>))
38+ , bench "left parallel" $ nfIO (as (>>=) (A.<|))
39+ , bench "fair parallel" $ nfIO (as (>>=) (A.<|>))
37− , bench "asyncly-serial-fairbind" $ nfIO (as (A.>->) (A.<>))
43+ [ bench "serial" $ nfIO (as (A.>->) (A.<>))
38− , bench "asyncly-interleaved-fairbind" $ nfIO (as (A.>->) (A.<=>))
44+ , bench "fair serial" $ nfIO (as (A.>->) (A.<=>))
45+ , bench "left parallel" $ nfIO (as (A.>->) (A.<|))
46+ , bench "fair parallel" $ nfIO (as (A.>->) (A.<|>))
49+ , bgroup "parallel bind"
50+ [ bench "serial" $ nfIO (as (A.>>|) (A.<>))
51+ , bench "fair serial" $ nfIO (as (A.>>|) (A.<=>))
39− , bench "asyncly-parleft" $ nfIO (as (>>=) (A.<|))
52+ , bench "left parallel" $ nfIO (as (A.>>|) (A.<|))
40− , bench "asyncly-parinterleaved" $ nfIO (as (>>=) (A.<|>))
53+ , bench "fair parallel" $ nfIO (as (A.>>|) (A.<|>))
56+ , bgroup "fair parallel bind"
41− , bench "asyncly-parleft-fairbind" $ nfIO (as (A.>->) (A.<|))
57+ [ bench "serial" $ nfIO (as (A.>|>) (A.<>))
42− , bench "asyncly-parinterleaved-fairbind" $ nfIO (as (A.>->) (A.<|>))
58+ , bench "fair serial" $ nfIO (as (A.>|>) (A.<=>))
59+ , bench "left parallel" $ nfIO (as (A.>|>) (A.<|))
60+ , bench "fair parallel" $ nfIO (as (A.>|>) (A.<|>))
63+ -- Benchmark smallest possible actions composed together
64+ , bgroup "serial bind nil"
43− , bench "asyncly-serial-nil" $ nfIO (asyncly_nil (A.<>))
65+ [ bench "serial" $ nfIO (asyncly_nil (A.<>))
44− , bench "asyncly-interleaved-nil" $ nfIO (asyncly_nil (A.<=>))
66+ , bench "fair serial" $ nfIO (asyncly_nil (A.<=>))
45− , bench "asyncly-parleft-nil" $ nfIO (asyncly_nil (A.<|))
67+ , bench "left parallel" $ nfIO (asyncly_nil (A.<|))
46− , bench "asyncly-parinterleaved-nil" $ nfIO (asyncly_nil (A.<|>))
68+ , bench "fair parallel" $ nfIO (asyncly_nil (A.<|>))
47#ifdef EXTRA_BENCHMARKS
71#ifdef EXTRA_BENCHMARKS
48#if MIN_VERSION_transient(0,5,1)
72#if MIN_VERSION_transient(0,5,1)
49− , bench "transient" $ nfIO transient_basic
74+ [ bench "transient" $ nfIO transient_basic
50 , bench "transient-nil" $ nfIO transient_nil
75 , bench "transient-nil" $ nfIO transient_nil
52 , bench "logict" $ nfIO logict_basic
77 , bench "logict" $ nfIO logict_basic
53 , bench "list-t" $ nfIO list_t_basic
78 , bench "list-t" $ nfIO list_t_basic
54 , bench "simple-conduit" $ nfIO simple_conduit_basic
79 , bench "simple-conduit" $ nfIO simple_conduit_basic
55 , bench "machines" $ nfIO machines_basic
80 , bench "machines" $ nfIO machines_basic
60{-# INLINABLE map #-}
85{-# INLINABLE map #-}