Benchmarking Haskell extensible-effect libraries.
Go to file
2022-01-04 23:52:06 +03:00
instances Make everything equally polymorphic (fair) 2022-01-04 22:58:24 +03:00
src Added effectful 2022-01-04 19:30:56 +03:00
.gitignore Upgrade to newer libraries. 2019-09-04 17:00:07 -04:00
effects-benchmarks.cabal Make everything equally polymorphic (fair) 2022-01-04 22:58:24 +03:00
LICENSE First four libraries. 2018-10-12 17:49:14 -04:00
package.yaml Added effectful 2022-01-04 19:30:56 +03:00
README.md Updated readme 2022-01-04 23:52:06 +03:00
Setup.hs First four libraries. 2018-10-12 17:49:14 -04:00
stack.yaml Added effectful 2022-01-04 19:30:56 +03:00

effects-benchmarks

Results

Linux Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
*** Time benchmarks ***
benchmarked Countdown/Put/fused-effects
time                 13.54 ms   (13.44 ms .. 13.67 ms)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 13.58 ms   (13.54 ms .. 13.69 ms)
std dev              165.6 μs   (94.38 μs .. 276.3 μs)

benchmarked Countdown/Put/mtl
time                 4.885 ms   (4.777 ms .. 4.954 ms)
                     0.998 R²   (0.993 R² .. 1.000 R²)
mean                 4.995 ms   (4.934 ms .. 5.227 ms)
std dev              333.6 μs   (54.64 μs .. 696.6 μs)
variance introduced by outliers: 37% (moderately inflated)

benchmarked Countdown/Put/polysemy
time                 20.82 ms   (20.58 ms .. 21.10 ms)
                     0.999 R²   (0.997 R² .. 1.000 R²)
mean                 20.82 ms   (20.70 ms .. 21.00 ms)
std dev              359.1 μs   (243.7 μs .. 578.8 μs)

benchmarked Countdown/Put/freer-simple
time                 20.18 ms   (19.82 ms .. 20.56 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 19.90 ms   (19.56 ms .. 20.53 ms)
std dev              1.084 ms   (524.8 μs .. 2.078 ms)
variance introduced by outliers: 22% (moderately inflated)

benchmarked Countdown/Put/extensible-effects
time                 22.01 ms   (21.29 ms .. 22.72 ms)
                     0.997 R²   (0.995 R² .. 0.999 R²)
mean                 20.74 ms   (19.73 ms .. 21.26 ms)
std dev              1.554 ms   (611.3 μs .. 2.309 ms)
variance introduced by outliers: 30% (moderately inflated)

benchmarked Countdown/Put/shallow
time                 2.432 ms   (2.390 ms .. 2.477 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 2.439 ms   (2.425 ms .. 2.456 ms)
std dev              47.42 μs   (39.74 μs .. 62.97 μs)

benchmarked Countdown/Put/effectful - static
time                 555.5 μs   (542.5 μs .. 567.2 μs)
                     0.995 R²   (0.985 R² .. 1.000 R²)
mean                 548.2 μs   (544.0 μs .. 561.4 μs)
std dev              19.40 μs   (5.420 μs .. 41.81 μs)
variance introduced by outliers: 12% (moderately inflated)

benchmarked Countdown/Put/effectful - dynamic
time                 2.729 ms   (2.688 ms .. 2.777 ms)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 2.736 ms   (2.722 ms .. 2.761 ms)
std dev              59.64 μs   (42.50 μs .. 90.32 μs)

benchmarked Countdown/Put+Exc/fused-effects
time                 11.89 ms   (11.76 ms .. 12.06 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 11.93 ms   (11.87 ms .. 12.05 ms)
std dev              199.3 μs   (102.4 μs .. 324.7 μs)

benchmarked Countdown/Put+Exc/mtl
time                 5.196 ms   (5.120 ms .. 5.299 ms)
                     0.998 R²   (0.994 R² .. 0.999 R²)
mean                 5.200 ms   (5.169 ms .. 5.254 ms)
std dev              108.8 μs   (69.46 μs .. 167.0 μs)

benchmarked Countdown/Put+Exc/polysemy
time                 29.24 ms   (28.82 ms .. 29.79 ms)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 29.51 ms   (29.26 ms .. 29.95 ms)
std dev              681.2 μs   (452.7 μs .. 990.8 μs)

benchmarked Countdown/Put+Exc/freer-simple
time                 13.32 ms   (12.65 ms .. 14.12 ms)
                     0.984 R²   (0.974 R² .. 0.993 R²)
mean                 11.50 ms   (11.00 ms .. 11.99 ms)
std dev              1.209 ms   (1.080 ms .. 1.435 ms)
variance introduced by outliers: 48% (moderately inflated)

benchmarked Countdown/Put+Exc/extensible-effects
time                 17.03 ms   (15.01 ms .. 18.76 ms)
                     0.956 R²   (0.928 R² .. 0.980 R²)
mean                 13.62 ms   (12.99 ms .. 14.50 ms)
std dev              1.750 ms   (1.315 ms .. 2.083 ms)
variance introduced by outliers: 56% (severely inflated)

benchmarked Countdown/Put+Exc/shallow
time                 580.0 μs   (475.1 μs .. 675.5 μs)
                     0.971 R²   (0.958 R² .. 1.000 R²)
mean                 573.0 μs   (566.0 μs .. 584.6 μs)
std dev              14.90 μs   (1.088 μs .. 19.80 μs)

benchmarked Countdown/Put+Exc/effectful - static
time                 588.1 μs   (520.7 μs .. 679.1 μs)
                     0.974 R²   (0.954 R² .. 0.998 R²)
mean                 602.3 μs   (596.0 μs .. 612.8 μs)
std dev              13.75 μs   (5.999 μs .. 17.97 μs)

benchmarked Countdown/Put+Exc/effectful - dynamic
time                 2.769 ms   (2.747 ms .. 2.806 ms)
                     0.997 R²   (0.992 R² .. 1.000 R²)
mean                 2.796 ms   (2.783 ms .. 2.832 ms)
std dev              48.48 μs   (21.03 μs .. 95.12 μs)

benchmarked HTTP/fused-effects
time                 1.937 ms   (1.916 ms .. 1.976 ms)
                     0.997 R²   (0.993 R² .. 1.000 R²)
mean                 1.937 ms   (1.928 ms .. 1.957 ms)
std dev              29.94 μs   (11.47 μs .. 54.28 μs)

benchmarked HTTP/polysemy
time                 34.56 ms   (33.19 ms .. 36.29 ms)
                     0.995 R²   (0.992 R² .. 1.000 R²)
mean                 33.67 ms   (33.40 ms .. 34.39 ms)
std dev              841.1 μs   (347.0 μs .. 1.492 ms)

benchmarked HTTP/extensible-effects
time                 19.92 ms   (18.98 ms .. 21.52 ms)
                     0.983 R²   (0.970 R² .. 0.991 R²)
mean                 17.74 ms   (16.85 ms .. 18.62 ms)
std dev              1.942 ms   (1.676 ms .. 2.228 ms)
variance introduced by outliers: 48% (moderately inflated)

benchmarked HTTP/Deep embedding
time                 28.14 ms   (25.55 ms .. 30.55 ms)
                     0.980 R²   (0.966 R² .. 0.993 R²)
mean                 24.73 ms   (22.59 ms .. 26.22 ms)
std dev              3.694 ms   (2.445 ms .. 4.726 ms)
variance introduced by outliers: 61% (severely inflated)

benchmarking HTTP/Shallow embedding ... took 11.97 s, total 40147 iterations
benchmarked HTTP/Shallow embedding
time                 22.38 μs   (21.23 μs .. 23.27 μs)
                     0.994 R²   (0.977 R² .. 0.999 R²)
mean                 25.00 μs   (24.76 μs .. 25.35 μs)
std dev              484.0 ns   (352.7 ns .. 601.7 ns)

benchmarked HTTP/freer-simple
time                 19.35 ms   (18.52 ms .. 20.60 ms)
                     0.980 R²   (0.959 R² .. 0.992 R²)
mean                 17.17 ms   (16.27 ms .. 18.04 ms)
std dev              1.945 ms   (1.653 ms .. 2.326 ms)
variance introduced by outliers: 45% (moderately inflated)

benchmarking HTTP/effectful - static ... took 11.95 s, total 38223 iterations
benchmarked HTTP/effectful - static
time                 25.03 μs   (16.61 μs .. 35.70 μs)
                     0.838 R²   (0.740 R² .. 0.999 R²)
mean                 25.57 μs   (24.80 μs .. 27.01 μs)
std dev              1.644 μs   (121.0 ns .. 2.127 μs)
variance introduced by outliers: 18% (moderately inflated)

benchmarked HTTP/effectful - dynamic
time                 4.058 ms   (3.662 ms .. 4.753 ms)
                     0.918 R²   (0.847 R² .. 0.997 R²)
mean                 3.886 ms   (3.773 ms .. 4.122 ms)
std dev              397.4 μs   (161.9 μs .. 614.5 μs)
variance introduced by outliers: 50% (severely inflated)

*** Space benchmarks (these will take some time to run) ***

Countdown

  Case                  Allocated  GCs
  fused-effects             2,512    0
  mtl                         792    0
  polysemy                  4,184    0
  freer-simple              1,120    0
  extensible-effects        1,264    0
  shallow                     232    0
  effectful - static    4,000,488    3
  effectful - dynamic  14,401,376   13

Countdown + exc

  Case                  Allocated  GCs
  fused-effects             1,080    0
  mtl                         608    0
  polysemy                  4,144    0
  freer-simple                576    0
  extensible-effects          688    0
  shallow                       0    0
  effectful - static    4,002,080    3
  effectful - dynamic  14,403,832   13
macOS MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) 2.3 GHz Quad-Core Intel Core i5
*** Time benchmarks ***
benchmarked Countdown/Put/fused-effects
time                 13.54 ms   (13.44 ms .. 13.67 ms)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 13.58 ms   (13.54 ms .. 13.69 ms)
std dev              165.6 μs   (94.38 μs .. 276.3 μs)

benchmarked Countdown/Put/mtl
time                 4.885 ms   (4.777 ms .. 4.954 ms)
                     0.998 R²   (0.993 R² .. 1.000 R²)
mean                 4.995 ms   (4.934 ms .. 5.227 ms)
std dev              333.6 μs   (54.64 μs .. 696.6 μs)
variance introduced by outliers: 37% (moderately inflated)

benchmarked Countdown/Put/polysemy
time                 20.82 ms   (20.58 ms .. 21.10 ms)
                     0.999 R²   (0.997 R² .. 1.000 R²)
mean                 20.82 ms   (20.70 ms .. 21.00 ms)
std dev              359.1 μs   (243.7 μs .. 578.8 μs)

benchmarked Countdown/Put/freer-simple
time                 20.18 ms   (19.82 ms .. 20.56 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 19.90 ms   (19.56 ms .. 20.53 ms)
std dev              1.084 ms   (524.8 μs .. 2.078 ms)
variance introduced by outliers: 22% (moderately inflated)

benchmarked Countdown/Put/extensible-effects
time                 22.01 ms   (21.29 ms .. 22.72 ms)
                     0.997 R²   (0.995 R² .. 0.999 R²)
mean                 20.74 ms   (19.73 ms .. 21.26 ms)
std dev              1.554 ms   (611.3 μs .. 2.309 ms)
variance introduced by outliers: 30% (moderately inflated)

benchmarked Countdown/Put/shallow
time                 2.432 ms   (2.390 ms .. 2.477 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 2.439 ms   (2.425 ms .. 2.456 ms)
std dev              47.42 μs   (39.74 μs .. 62.97 μs)

benchmarked Countdown/Put/effectful - static
time                 555.5 μs   (542.5 μs .. 567.2 μs)
                     0.995 R²   (0.985 R² .. 1.000 R²)
mean                 548.2 μs   (544.0 μs .. 561.4 μs)
std dev              19.40 μs   (5.420 μs .. 41.81 μs)
variance introduced by outliers: 12% (moderately inflated)

benchmarked Countdown/Put/effectful - dynamic
time                 2.729 ms   (2.688 ms .. 2.777 ms)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 2.736 ms   (2.722 ms .. 2.761 ms)
std dev              59.64 μs   (42.50 μs .. 90.32 μs)

benchmarked Countdown/Put+Exc/fused-effects
time                 11.89 ms   (11.76 ms .. 12.06 ms)
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 11.93 ms   (11.87 ms .. 12.05 ms)
std dev              199.3 μs   (102.4 μs .. 324.7 μs)

benchmarked Countdown/Put+Exc/mtl
time                 5.196 ms   (5.120 ms .. 5.299 ms)
                     0.998 R²   (0.994 R² .. 0.999 R²)
mean                 5.200 ms   (5.169 ms .. 5.254 ms)
std dev              108.8 μs   (69.46 μs .. 167.0 μs)

benchmarked Countdown/Put+Exc/polysemy
time                 29.24 ms   (28.82 ms .. 29.79 ms)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 29.51 ms   (29.26 ms .. 29.95 ms)
std dev              681.2 μs   (452.7 μs .. 990.8 μs)

benchmarked Countdown/Put+Exc/freer-simple
time                 13.32 ms   (12.65 ms .. 14.12 ms)
                     0.984 R²   (0.974 R² .. 0.993 R²)
mean                 11.50 ms   (11.00 ms .. 11.99 ms)
std dev              1.209 ms   (1.080 ms .. 1.435 ms)
variance introduced by outliers: 48% (moderately inflated)

benchmarked Countdown/Put+Exc/extensible-effects
time                 17.03 ms   (15.01 ms .. 18.76 ms)
                     0.956 R²   (0.928 R² .. 0.980 R²)
mean                 13.62 ms   (12.99 ms .. 14.50 ms)
std dev              1.750 ms   (1.315 ms .. 2.083 ms)
variance introduced by outliers: 56% (severely inflated)

benchmarked Countdown/Put+Exc/shallow
time                 580.0 μs   (475.1 μs .. 675.5 μs)
                     0.971 R²   (0.958 R² .. 1.000 R²)
mean                 573.0 μs   (566.0 μs .. 584.6 μs)
std dev              14.90 μs   (1.088 μs .. 19.80 μs)

benchmarked Countdown/Put+Exc/effectful - static
time                 588.1 μs   (520.7 μs .. 679.1 μs)
                     0.974 R²   (0.954 R² .. 0.998 R²)
mean                 602.3 μs   (596.0 μs .. 612.8 μs)
std dev              13.75 μs   (5.999 μs .. 17.97 μs)

benchmarked Countdown/Put+Exc/effectful - dynamic
time                 2.769 ms   (2.747 ms .. 2.806 ms)
                     0.997 R²   (0.992 R² .. 1.000 R²)
mean                 2.796 ms   (2.783 ms .. 2.832 ms)
std dev              48.48 μs   (21.03 μs .. 95.12 μs)

benchmarked HTTP/fused-effects
time                 1.937 ms   (1.916 ms .. 1.976 ms)
                     0.997 R²   (0.993 R² .. 1.000 R²)
mean                 1.937 ms   (1.928 ms .. 1.957 ms)
std dev              29.94 μs   (11.47 μs .. 54.28 μs)

benchmarked HTTP/polysemy
time                 34.56 ms   (33.19 ms .. 36.29 ms)
                     0.995 R²   (0.992 R² .. 1.000 R²)
mean                 33.67 ms   (33.40 ms .. 34.39 ms)
std dev              841.1 μs   (347.0 μs .. 1.492 ms)

benchmarked HTTP/extensible-effects
time                 19.92 ms   (18.98 ms .. 21.52 ms)
                     0.983 R²   (0.970 R² .. 0.991 R²)
mean                 17.74 ms   (16.85 ms .. 18.62 ms)
std dev              1.942 ms   (1.676 ms .. 2.228 ms)
variance introduced by outliers: 48% (moderately inflated)

benchmarked HTTP/Deep embedding
time                 28.14 ms   (25.55 ms .. 30.55 ms)
                     0.980 R²   (0.966 R² .. 0.993 R²)
mean                 24.73 ms   (22.59 ms .. 26.22 ms)
std dev              3.694 ms   (2.445 ms .. 4.726 ms)
variance introduced by outliers: 61% (severely inflated)

benchmarking HTTP/Shallow embedding ... took 11.97 s, total 40147 iterations
benchmarked HTTP/Shallow embedding
time                 22.38 μs   (21.23 μs .. 23.27 μs)
                     0.994 R²   (0.977 R² .. 0.999 R²)
mean                 25.00 μs   (24.76 μs .. 25.35 μs)
std dev              484.0 ns   (352.7 ns .. 601.7 ns)

benchmarked HTTP/freer-simple
time                 19.35 ms   (18.52 ms .. 20.60 ms)
                     0.980 R²   (0.959 R² .. 0.992 R²)
mean                 17.17 ms   (16.27 ms .. 18.04 ms)
std dev              1.945 ms   (1.653 ms .. 2.326 ms)
variance introduced by outliers: 45% (moderately inflated)

benchmarking HTTP/effectful - static ... took 11.95 s, total 38223 iterations
benchmarked HTTP/effectful - static
time                 25.03 μs   (16.61 μs .. 35.70 μs)
                     0.838 R²   (0.740 R² .. 0.999 R²)
mean                 25.57 μs   (24.80 μs .. 27.01 μs)
std dev              1.644 μs   (121.0 ns .. 2.127 μs)
variance introduced by outliers: 18% (moderately inflated)

benchmarked HTTP/effectful - dynamic
time                 4.058 ms   (3.662 ms .. 4.753 ms)
                     0.918 R²   (0.847 R² .. 0.997 R²)
mean                 3.886 ms   (3.773 ms .. 4.122 ms)
std dev              397.4 μs   (161.9 μs .. 614.5 μs)
variance introduced by outliers: 50% (severely inflated)

*** Space benchmarks (these will take some time to run) ***

Countdown

  Case                  Allocated  GCs
  fused-effects             2,512    0
  mtl                         792    0
  polysemy                  4,184    0
  freer-simple              1,120    0
  extensible-effects        1,264    0
  shallow                     232    0
  effectful - static    4,000,488    3
  effectful - dynamic  14,401,376   13

Countdown + exc

  Case                  Allocated  GCs
  fused-effects             1,080    0
  mtl                         608    0
  polysemy                  4,144    0
  freer-simple                576    0
  extensible-effects          688    0
  shallow                       0    0
  effectful - static    4,002,080    3
  effectful - dynamic  14,403,832   13