Skip to content

Instantly share code, notes, and snippets.

@mkscrg
Last active October 30, 2015 19:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mkscrg/ce62b5c2748126f54ef6 to your computer and use it in GitHub Desktop.
Save mkscrg/ce62b5c2748126f54ef6 to your computer and use it in GitHub Desktop.
name: lastconduit
version: 0.1.0.0
build-type: Simple
cabal-version: >=1.10
executable lastconduit
main-is: Main.hs
default-language: Haskell2010
ghc-options: -Wall
build-depends:
base
, conduit-combinators
, containers
, criterion
, primitive
, vector
module Main where
import Conduit
import Control.Monad.Primitive
import Data.Sequence ((|>))
import qualified Data.Sequence as Seq
import qualified Data.Vector.Mutable as V
import Criterion.Main
main :: IO ()
main = defaultMain $ map (group . truncate . (10 **)) [0::Double, 0.5 .. 6]
where
input = return ([1 .. 10000000] :: [Int])
group n = bgroup ("N=" ++ show n) $
[ env input $ \xs -> bench "baseline" $ nfIO $
runConduit $ yieldMany xs =$= (lengthC :: Sink a IO Int)
, env input $ \xs -> bench "2-list queue" $ nfIO $
runConduit $ yieldMany xs =$= lastNCQ n =$= sinkNull
, env input $ \xs -> bench "Data.Sequence" $ nfIO $
runConduit $ yieldMany xs =$= lastNCSeq n =$= sinkNull
, env input $ \xs -> bench "Data.Vector.Mutable" $ nfIO $
runConduit $ yieldMany xs =$= lastNCVec n =$= sinkNull
-- too slow to run @ n>500
] ++ if n > 500 then [] else
[ env input $ \xs -> bench "list append" $ nfIO $
runConduit $ yieldMany xs =$= lastNCList n =$= sinkNull
]
lastNCList :: Monad m => Int -> Conduit a m a
lastNCList n = (takeC n =$= sinkList) >>= foldlC rotate >>= yieldMany
where
rotate xs x = drop 1 (xs ++ [x])
lastNCSeq :: Monad m => Int -> Conduit a m a
lastNCSeq n = (takeC n =$= Seq.fromList <$> sinkList) >>= foldlC rotate >>= yieldMany
where
rotate xs x = Seq.drop 1 xs |> x
lastNCVec :: PrimMonad m => Int -> Conduit a m a
lastNCVec n = do
vec <- lift (V.new n)
i <- foldMC (pull vec) 0
mapM_ (push vec) (take n $ iterate next i)
where
next i = (i + 1) `mod` n
pull vec i x = V.unsafeWrite vec i x >> return (next i)
push vec i = lift (V.unsafeRead vec i) >>= yield
lastNCQ :: Monad m => Int -> Conduit a m a
lastNCQ n = do
outq <- takeC n =$= sinkList
loop [] outq
where
loop inq [] = loop [] (reverse inq)
loop inq outq@(_:os) = await >>= \mx -> case mx of
Nothing -> mapM_ yield outq >> mapM_ yield (reverse inq)
Just i -> loop (i:inq) os
n impl mean stdev
1 baseline 81.77 ns 4.415 ns
1 2-list queue 264.6 ms 8.389 ms
1 Data.Sequence 223.5 ms 5.729 ms
1 Data.Vector.Mutable 1.344 s 48.23 ms
1 list append 320.5 ms 14.37 ms
3 baseline 84.25 ns 3.922 ns
3 2-list queue 271.8 ms 4.834 ms
3 Data.Sequence 414.4 ms 6.742 ms
3 Data.Vector.Mutable 1.394 s 21.26 ms
3 list append 416.6 ms 7.564 ms
10 baseline 80.93 ns 2.805 ns
10 2-list queue 285.3 ms 17.14 ms
10 Data.Sequence 671.1 ms 1.908 ms
10 Data.Vector.Mutable 1.420 s 4.350 ms
10 list append 846.3 ms 15.61 ms
31 baseline 80.77 ns 2.677 ns
31 2-list queue 269.1 ms 5.921 ms
31 Data.Sequence 726.0 ms 13.38 ms
31 Data.Vector.Mutable 1.333 s 15.18 ms
31 list append 2.186 s 193.1 ms
100 baseline 82.36 ns 4.664 ns
100 2-list queue 293.2 ms 6.161 ms
100 Data.Sequence 823.1 ms 22.09 ms
100 Data.Vector.Mutable 1.407 s 18.24 ms
100 list append 7.001 s 286.0 ms
316 baseline 81.19 ns 2.859 ns
316 2-list queue 295.6 ms 6.730 ms
316 Data.Sequence 821.2 ms 6.267 ms
316 Data.Vector.Mutable 1.422 s 17.04 ms
316 list append 27.21 s 1.183 s
1000 baseline 84.66 ns 4.864 ns
1000 2-list queue 394.1 ms 40.95 ms
1000 Data.Sequence 1.078 s 36.97 ms
1000 Data.Vector.Mutable 1.379 s 3.227 ms
3162 baseline 82.21 ns 5.316 ns
3162 2-list queue 553.7 ms 49.34 ms
3162 Data.Sequence 1.310 s 90.05 ms
3162 Data.Vector.Mutable 1.415 s 8.353 ms
10000 baseline 84.99 ns 4.916 ns
10000 2-list queue 1.118 s 61.66 ms
10000 Data.Sequence 1.300 s 31.64 ms
10000 Data.Vector.Mutable 1.361 s 77.81 ms
31622 baseline 84.95 ns 5.835 ns
31622 2-list queue 1.212 s 58.83 ms
31622 Data.Sequence 1.194 s 83.93 ms
31622 Data.Vector.Mutable 1.369 s 65.62 ms
100000 baseline 84.13 ns 5.698 ns
100000 2-list queue 1.264 s 41.99 ms
100000 Data.Sequence 1.288 s 166.6 ms
100000 Data.Vector.Mutable 1.527 s 43.13 ms
316227 baseline 83.50 ns 5.706 ns
316227 2-list queue 1.337 s 194.4 ms
316227 Data.Sequence 1.337 s 162.0 ms
316227 Data.Vector.Mutable 1.357 s 23.08 ms
1000000 baseline 80.56 ns 2.692 ns
1000000 2-list queue 1.171 s 42.17 ms
1000000 Data.Sequence 1.395 s 53.45 ms
1000000 Data.Vector.Mutable 1.610 s 56.48 ms
benchmarking N=1/baseline
time 80.90 ns (80.16 ns .. 81.72 ns)
0.999 R² (0.998 R² .. 0.999 R²)
mean 81.77 ns (80.53 ns .. 83.18 ns)
std dev 4.415 ns (3.149 ns .. 6.460 ns)
variance introduced by outliers: 74% (severely inflated)
benchmarking N=1/2-list queue
time 268.2 ms (245.2 ms .. 304.5 ms)
0.995 R² (0.990 R² .. 1.000 R²)
mean 264.6 ms (257.3 ms .. 271.7 ms)
std dev 8.389 ms (6.125 ms .. 9.851 ms)
variance introduced by outliers: 16% (moderately inflated)
benchmarking N=1/Data.Sequence
time 220.6 ms (210.7 ms .. 232.4 ms)
0.998 R² (0.993 R² .. 1.000 R²)
mean 223.5 ms (219.0 ms .. 227.5 ms)
std dev 5.729 ms (4.350 ms .. 6.539 ms)
variance introduced by outliers: 14% (moderately inflated)
benchmarking N=1/Data.Vector.Mutable
time 1.423 s (1.327 s .. 1.640 s)
0.997 R² (0.995 R² .. 1.000 R²)
mean 1.344 s (1.313 s .. 1.400 s)
std dev 48.23 ms (0.0 s .. 50.00 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=1/list append
time 311.7 ms (272.7 ms .. 327.9 ms)
0.996 R² (0.988 R² .. 1.000 R²)
mean 320.5 ms (310.2 ms .. 335.3 ms)
std dev 14.37 ms (3.936 ms .. 19.34 ms)
variance introduced by outliers: 16% (moderately inflated)
benchmarking N=3/baseline
time 83.90 ns (83.21 ns .. 84.60 ns)
0.999 R² (0.998 R² .. 0.999 R²)
mean 84.25 ns (83.11 ns .. 85.45 ns)
std dev 3.922 ns (3.265 ns .. 4.757 ns)
variance introduced by outliers: 68% (severely inflated)
benchmarking N=3/2-list queue
time 264.8 ms (254.8 ms .. 276.4 ms)
0.999 R² (0.998 R² .. 1.000 R²)
mean 271.8 ms (267.9 ms .. 276.3 ms)
std dev 4.834 ms (2.311 ms .. 6.727 ms)
variance introduced by outliers: 16% (moderately inflated)
benchmarking N=3/Data.Sequence
time 416.3 ms (391.9 ms .. 461.0 ms)
0.999 R² (0.998 R² .. 1.000 R²)
mean 414.4 ms (407.3 ms .. 418.8 ms)
std dev 6.742 ms (0.0 s .. 7.756 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=3/Data.Vector.Mutable
time 1.397 s (1.338 s .. 1.537 s)
0.999 R² (0.998 R² .. 1.000 R²)
mean 1.394 s (1.370 s .. 1.407 s)
std dev 21.26 ms (0.0 s .. 24.02 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=3/list append
time 416.6 ms (381.9 ms .. 455.9 ms)
0.999 R² (0.996 R² .. 1.000 R²)
mean 416.6 ms (410.8 ms .. 425.2 ms)
std dev 7.564 ms (0.0 s .. 8.315 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=10/baseline
time 81.84 ns (81.25 ns .. 82.43 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 80.93 ns (79.90 ns .. 81.55 ns)
std dev 2.805 ns (1.707 ns .. 4.300 ns)
variance introduced by outliers: 54% (severely inflated)
benchmarking N=10/2-list queue
time 263.8 ms (248.1 ms .. 278.3 ms)
0.996 R² (0.980 R² .. 1.000 R²)
mean 285.3 ms (274.0 ms .. 303.4 ms)
std dev 17.14 ms (278.2 μs .. 21.05 ms)
variance introduced by outliers: 17% (moderately inflated)
benchmarking N=10/Data.Sequence
time 672.5 ms (657.9 ms .. 680.2 ms)
1.000 R² (1.000 R² .. 1.000 R²)
mean 671.1 ms (669.3 ms .. 672.4 ms)
std dev 1.908 ms (0.0 s .. 2.192 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=10/Data.Vector.Mutable
time 1.421 s (1.403 s .. 1.452 s)
1.000 R² (1.000 R² .. 1.000 R²)
mean 1.420 s (1.416 s .. 1.423 s)
std dev 4.350 ms (0.0 s .. 5.022 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=10/list append
time 830.5 ms (768.2 ms .. 893.5 ms)
0.999 R² (0.997 R² .. 1.000 R²)
mean 846.3 ms (830.7 ms .. 856.7 ms)
std dev 15.61 ms (0.0 s .. 18.03 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=31/baseline
time 81.29 ns (80.73 ns .. 81.81 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 80.77 ns (79.88 ns .. 81.42 ns)
std dev 2.677 ns (1.743 ns .. 4.453 ns)
variance introduced by outliers: 52% (severely inflated)
benchmarking N=31/2-list queue
time 269.1 ms (254.7 ms .. 287.7 ms)
0.999 R² (0.997 R² .. 1.000 R²)
mean 269.1 ms (263.3 ms .. 273.4 ms)
std dev 5.921 ms (2.749 ms .. 7.745 ms)
variance introduced by outliers: 16% (moderately inflated)
benchmarking N=31/Data.Sequence
time 753.5 ms (719.5 ms .. 810.1 ms)
0.999 R² (0.998 R² .. 1.000 R²)
mean 726.0 ms (718.0 ms .. 741.4 ms)
std dev 13.38 ms (0.0 s .. 13.52 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=31/Data.Vector.Mutable
time 1.320 s (1.259 s .. 1.387 s)
1.000 R² (0.999 R² .. 1.000 R²)
mean 1.333 s (1.317 s .. 1.343 s)
std dev 15.18 ms (0.0 s .. 17.28 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=31/list append
time 2.497 s (2.044 s .. 3.298 s)
0.986 R² (0.981 R² .. 1.000 R²)
mean 2.186 s (2.044 s .. 2.406 s)
std dev 193.1 ms (0.0 s .. 208.9 ms)
variance introduced by outliers: 22% (moderately inflated)
benchmarking N=100/baseline
time 83.05 ns (81.72 ns .. 84.26 ns)
0.998 R² (0.996 R² .. 0.999 R²)
mean 82.36 ns (81.12 ns .. 83.79 ns)
std dev 4.664 ns (3.680 ns .. 6.445 ns)
variance introduced by outliers: 76% (severely inflated)
benchmarking N=100/2-list queue
time 286.0 ms (274.9 ms .. 292.0 ms)
1.000 R² (0.998 R² .. 1.000 R²)
mean 293.2 ms (289.8 ms .. 299.5 ms)
std dev 6.161 ms (87.45 μs .. 7.906 ms)
variance introduced by outliers: 16% (moderately inflated)
benchmarking N=100/Data.Sequence
time 798.7 ms (757.3 ms .. 887.3 ms)
0.999 R² (0.997 R² .. 1.000 R²)
mean 823.1 ms (804.4 ms .. 837.4 ms)
std dev 22.09 ms (0.0 s .. 24.87 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=100/Data.Vector.Mutable
time 1.414 s (1.320 s .. 1.507 s)
0.999 R² (NaN R² .. 1.000 R²)
mean 1.407 s (1.386 s .. 1.418 s)
std dev 18.24 ms (271.9 as .. 18.93 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=100/list append
time 6.773 s (5.013 s .. 7.928 s)
0.993 R² (0.975 R² .. 1.000 R²)
mean 7.001 s (6.726 s .. 7.191 s)
std dev 286.0 ms (0.0 s .. 329.7 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=316/baseline
time 80.74 ns (80.14 ns .. 81.31 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 81.19 ns (80.38 ns .. 82.07 ns)
std dev 2.859 ns (2.102 ns .. 3.887 ns)
variance introduced by outliers: 55% (severely inflated)
benchmarking N=316/2-list queue
time 290.1 ms (272.3 ms .. 305.6 ms)
0.999 R² (0.997 R² .. 1.000 R²)
mean 295.6 ms (289.2 ms .. 301.0 ms)
std dev 6.730 ms (2.884 ms .. 9.074 ms)
variance introduced by outliers: 16% (moderately inflated)
benchmarking N=316/Data.Sequence
time 818.5 ms (797.0 ms .. 850.4 ms)
1.000 R² (0.999 R² .. 1.000 R²)
mean 821.2 ms (817.2 ms .. 824.9 ms)
std dev 6.267 ms (136.0 as .. 6.460 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=316/Data.Vector.Mutable
time 1.440 s (1.358 s .. 1.508 s)
1.000 R² (0.999 R² .. 1.000 R²)
mean 1.422 s (1.406 s .. 1.433 s)
std dev 17.04 ms (0.0 s .. 19.52 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=316/list append
time 27.55 s (22.36 s .. 34.87 s)
0.992 R² (0.977 R² .. 1.000 R²)
mean 27.21 s (25.87 s .. 27.96 s)
std dev 1.183 s (0.0 s .. 1.300 s)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=1000/baseline
time 84.36 ns (82.24 ns .. 86.04 ns)
0.997 R² (0.996 R² .. 0.998 R²)
mean 84.66 ns (83.38 ns .. 86.29 ns)
std dev 4.864 ns (3.929 ns .. 6.413 ns)
variance introduced by outliers: 76% (severely inflated)
benchmarking N=1000/2-list queue
time 448.4 ms (303.8 ms .. 573.3 ms)
0.982 R² (0.979 R² .. 1.000 R²)
mean 394.1 ms (354.8 ms .. 421.3 ms)
std dev 40.95 ms (0.0 s .. 47.18 ms)
variance introduced by outliers: 23% (moderately inflated)
benchmarking N=1000/Data.Sequence
time 1.023 s (921.5 ms .. 1.142 s)
0.998 R² (0.997 R² .. 1.000 R²)
mean 1.078 s (1.040 s .. 1.103 s)
std dev 36.97 ms (0.0 s .. 42.66 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=1000/Data.Vector.Mutable
time 1.360 s (1.335 s .. 1.382 s)
1.000 R² (1.000 R² .. 1.000 R²)
mean 1.379 s (1.375 s .. 1.381 s)
std dev 3.227 ms (0.0 s .. 3.339 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=3162/baseline
time 80.87 ns (80.36 ns .. 81.54 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 82.21 ns (81.16 ns .. 84.84 ns)
std dev 5.316 ns (2.296 ns .. 10.30 ns)
variance introduced by outliers: 80% (severely inflated)
benchmarking N=3162/2-list queue
time 475.2 ms (383.6 ms .. 608.1 ms)
0.991 R² (0.975 R² .. 1.000 R²)
mean 553.7 ms (516.9 ms .. 584.6 ms)
std dev 49.34 ms (0.0 s .. 53.59 ms)
variance introduced by outliers: 22% (moderately inflated)
benchmarking N=3162/Data.Sequence
time 1.444 s (1.211 s .. 1.728 s)
0.996 R² (0.985 R² .. 1.000 R²)
mean 1.310 s (1.209 s .. 1.368 s)
std dev 90.05 ms (0.0 s .. 99.86 ms)
variance introduced by outliers: 20% (moderately inflated)
benchmarking N=3162/Data.Vector.Mutable
time 1.402 s (1.317 s .. 1.450 s)
1.000 R² (0.999 R² .. 1.000 R²)
mean 1.415 s (1.407 s .. 1.420 s)
std dev 8.353 ms (0.0 s .. 9.638 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=10000/baseline
time 84.20 ns (82.53 ns .. 85.92 ns)
0.997 R² (0.995 R² .. 0.999 R²)
mean 84.99 ns (83.54 ns .. 86.53 ns)
std dev 4.916 ns (3.804 ns .. 6.751 ns)
variance introduced by outliers: 77% (severely inflated)
benchmarking N=10000/2-list queue
time 1.268 s (864.4 ms .. 1.558 s)
0.989 R² (0.961 R² .. 1.000 R²)
mean 1.118 s (1.048 s .. 1.157 s)
std dev 61.66 ms (0.0 s .. 67.70 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=10000/Data.Sequence
time 1.354 s (1.248 s .. 1.451 s)
0.999 R² (0.997 R² .. 1.000 R²)
mean 1.300 s (1.265 s .. 1.320 s)
std dev 31.64 ms (0.0 s .. 35.76 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=10000/Data.Vector.Mutable
time 1.231 s (1.131 s .. 1.445 s)
0.996 R² (0.993 R² .. 1.000 R²)
mean 1.361 s (1.292 s .. 1.412 s)
std dev 77.81 ms (0.0 s .. 88.52 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=31622/baseline
time 83.08 ns (81.67 ns .. 84.87 ns)
0.997 R² (0.996 R² .. 0.998 R²)
mean 84.95 ns (83.27 ns .. 86.88 ns)
std dev 5.835 ns (4.623 ns .. 7.552 ns)
variance introduced by outliers: 82% (severely inflated)
benchmarking N=31622/2-list queue
time 1.414 s (1.312 s .. 1.495 s)
0.999 R² (0.998 R² .. 1.000 R²)
mean 1.212 s (1.156 s .. 1.251 s)
std dev 58.83 ms (0.0 s .. 67.78 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=31622/Data.Sequence
time 1.318 s (1.081 s .. 1.504 s)
0.996 R² (0.987 R² .. 1.000 R²)
mean 1.194 s (1.098 s .. 1.245 s)
std dev 83.93 ms (0.0 s .. 88.63 ms)
variance introduced by outliers: 20% (moderately inflated)
benchmarking N=31622/Data.Vector.Mutable
time 1.265 s (1.164 s .. 1.458 s)
0.997 R² (0.995 R² .. 1.000 R²)
mean 1.369 s (1.310 s .. 1.413 s)
std dev 65.62 ms (0.0 s .. 74.99 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=100000/baseline
time 84.62 ns (82.78 ns .. 86.56 ns)
0.996 R² (0.994 R² .. 0.998 R²)
mean 84.13 ns (82.23 ns .. 85.94 ns)
std dev 5.698 ns (4.672 ns .. 7.247 ns)
variance introduced by outliers: 82% (severely inflated)
benchmarking N=100000/2-list queue
time 1.437 s (1.190 s .. 1.650 s)
0.997 R² (0.987 R² .. 1.000 R²)
mean 1.264 s (1.230 s .. 1.291 s)
std dev 41.99 ms (0.0 s .. 46.56 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=100000/Data.Sequence
time 1.471 s (1.059 s .. 2.073 s)
0.982 R² (0.950 R² .. 1.000 R²)
mean 1.288 s (1.103 s .. 1.396 s)
std dev 166.6 ms (0.0 s .. 186.7 ms)
variance introduced by outliers: 24% (moderately inflated)
benchmarking N=100000/Data.Vector.Mutable
time 1.590 s (1.493 s .. 1.712 s)
0.999 R² (0.998 R² .. 1.000 R²)
mean 1.527 s (1.477 s .. 1.553 s)
std dev 43.13 ms (0.0 s .. 45.17 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=316227/baseline
time 81.52 ns (80.20 ns .. 82.66 ns)
0.998 R² (0.997 R² .. 0.999 R²)
mean 83.50 ns (82.01 ns .. 85.45 ns)
std dev 5.706 ns (4.170 ns .. 7.885 ns)
variance introduced by outliers: 82% (severely inflated)
benchmarking N=316227/2-list queue
time 1.228 s (675.4 ms .. 2.270 s)
0.914 R² (0.871 R² .. 1.000 R²)
mean 1.337 s (1.155 s .. 1.466 s)
std dev 194.4 ms (0.0 s .. 223.4 ms)
variance introduced by outliers: 24% (moderately inflated)
benchmarking N=316227/Data.Sequence
time 1.579 s (1.095 s .. 1.869 s)
0.990 R² (0.967 R² .. 1.000 R²)
mean 1.337 s (1.154 s .. 1.440 s)
std dev 162.0 ms (0.0 s .. 178.6 ms)
variance introduced by outliers: 23% (moderately inflated)
benchmarking N=316227/Data.Vector.Mutable
time 1.351 s (1.242 s .. 1.426 s)
0.999 R² (0.998 R² .. 1.000 R²)
mean 1.357 s (1.335 s .. 1.373 s)
std dev 23.08 ms (0.0 s .. 26.63 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=1000000/baseline
time 80.32 ns (79.59 ns .. 81.05 ns)
0.999 R² (0.999 R² .. 1.000 R²)
mean 80.56 ns (79.81 ns .. 81.45 ns)
std dev 2.692 ns (1.845 ns .. 3.825 ns)
variance introduced by outliers: 52% (severely inflated)
benchmarking N=1000000/2-list queue
time 1.349 s (1.236 s .. 1.487 s)
0.999 R² (0.996 R² .. 1.000 R²)
mean 1.171 s (1.131 s .. 1.198 s)
std dev 42.17 ms (0.0 s .. 48.48 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=1000000/Data.Sequence
time 1.396 s (1.094 s .. 1.731 s)
0.990 R² (0.988 R² .. 1.000 R²)
mean 1.395 s (1.334 s .. 1.428 s)
std dev 53.45 ms (271.9 as .. 58.52 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking N=1000000/Data.Vector.Mutable
time 1.693 s (1.559 s .. 1.848 s)
0.999 R² (0.996 R² .. 1.000 R²)
mean 1.610 s (1.545 s .. 1.644 s)
std dev 56.48 ms (271.9 as .. 58.28 ms)
variance introduced by outliers: 19% (moderately inflated)
resolver: lts-3.11
packages:
- '.'
extra-deps: []
flags: {}
extra-package-dbs: []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment