Skip to content

Folding unlifted list is 1k slower than regular one

I compared performance for folding unlifted list of bools with regular one and result is not what expected, because unlifted types should out perform lifted counterparts.

git clone https://github.com/yaitskov/lifted-vs-unlifted-benchmark/tree/0ff3f178b387597c4bb81a3bb7cd1645d214ee7b
cd lifted-vs*
stack test

Progress 1/2: unlifted-boxedbenchmarking Fold Lifted/Left
time                 4.440 ns   (4.368 ns .. 4.539 ns)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 4.439 ns   (4.387 ns .. 4.511 ns)
std dev              203.1 ps   (148.5 ps .. 286.4 ps)
variance introduced by outliers: 71% (severely inflated)

benchmarking Fold Unlifted/Left
time                 2.496 μs   (2.426 μs .. 2.563 μs)
                     0.994 R²   (0.989 R² .. 0.998 R²)
mean                 2.504 μs   (2.443 μs .. 2.595 μs)
std dev              250.6 ns   (142.5 ns .. 438.0 ns)
variance introduced by outliers: 88% (severely inflated)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information