I updated John's 
benchmark https://gist.github.com/michaelt/7f89dc8b366b30bb6acc 
Here are the results I got.  As I said in the readme, this is the perfect 
test for conduit's
fusion system. The difference from Pipes is just the avoidance of piping; 
one could also
write direct functions, like 

     filter :: Monad m => (a -> Bool) -> Producer a m r -> Producer a m r

Apart from that, the only difference would be that between

    Step (a :> rest)

and

    Respond a (\() -> rest)

... right?  Step has an extra constructor, Respond hides the 'rest' behind 
a trivial function.


    filter (\x -> x `mod` 2 == 0) . map (+1) . drop 1000 . map (+1) . 
filter even . fromList

    basic tests
      passes tests

    Finished in 0.0007 seconds
    1 example, 0 failures
    benchmarking basic/stream
    time                 83.72 ms   (74.88 ms .. 89.07 ms)
                         0.990 R²   (0.984 R² .. 0.998 R²)
    mean                 84.65 ms   (81.77 ms .. 90.04 ms)
    std dev              6.301 ms   (3.204 ms .. 9.272 ms)
    variance introduced by outliers: 19% (moderately inflated)

    benchmarking basic/iostreams
    time                 259.1 ms   (230.2 ms .. 288.6 ms)
                         0.996 R²   (0.989 R² .. 1.000 R²)
    mean                 259.6 ms   (251.4 ms .. 265.8 ms)
    std dev              8.216 ms   (3.490 ms .. 11.14 ms)
    variance introduced by outliers: 16% (moderately inflated)

    benchmarking basic/pipes
    time                 226.0 ms   (198.4 ms .. 246.4 ms)
                         0.988 R²   (0.954 R² .. 1.000 R²)
    mean                 240.8 ms   (228.6 ms .. 262.2 ms)
    std dev              21.00 ms   (6.224 ms .. 29.73 ms)
    variance introduced by outliers: 16% (moderately inflated)

    benchmarking basic/conduit
    time                 99.89 ms   (89.77 ms .. 107.4 ms)
                         0.986 R²   (0.957 R² .. 0.997 R²)
    mean                 94.71 ms   (82.12 ms .. 100.8 ms)
    std dev              12.84 ms   (5.137 ms .. 21.08 ms)
    variance introduced by outliers: 43% (moderately inflated)

    benchmarking basic/simple-conduit
    time                 201.3 ms   (178.7 ms .. 213.6 ms)
                         0.994 R²   (0.978 R² .. 1.000 R²)
    mean                 196.2 ms   (187.7 ms .. 200.1 ms)
    std dev              6.333 ms   (3.048 ms .. 7.932 ms)
    variance introduced by outliers: 14% (moderately inflated)

    benchmarking basic/fusion
    time                 124.7 ms   (112.6 ms .. 131.7 ms)
                         0.993 R²   (0.983 R² .. 0.999 R²)
    mean                 123.5 ms   (119.6 ms .. 132.0 ms)
    std dev              7.873 ms   (2.680 ms .. 12.60 ms)
    variance introduced by outliers: 12% (moderately inflated)

-- 
You received this message because you are subscribed to the Google Groups 
"Haskell Pipes" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to haskell-pipes+unsubscr...@googlegroups.com.
To post to this group, send email to haskell-pipes@googlegroups.com.

Reply via email to