Explanation

This allows different implementations of Haskell code to be compared to each other.

Each table compares different implementations of the same functionality on different inputs (for all the tests so far the input is the size of data to use).

Each column compares 2 implementations. The number in each cell is how many times longer the second took than the first. For example, suppose that with input 100 A takes 10s and B takes 12s. Then the table would look like:

A -> B
1001.20

Failures, defined as being 1.1 times slower, are shown like this.

If the second implementation is 1.1 times faster then it is shown like this.

Results

Tests/Ptr/FindSpace

Find the first space (character with value 32) in a chunk of memory

Base -> BarelyHaskellBarelyHaskell -> Haskell
0 0.98 1.00
1 0.99 1.00
10 0.99 1.00
100 1.00 1.01
1000 1.16 0.96
10000 1.83 0.88
100000 2.85 0.83
1000000 2.28 0.84
10485760 2.21 0.88

Tests/Ptr/FindWhite

Find the first white space character (character with value 32, 9, 13 or 10) in a chunk of memory

Base -> BarelyHaskellBarelyHaskell -> HaskellHaskell -> NicerHaskell
0 0.97 1.00 1.03
1 0.98 0.99 1.04
10 0.99 1.00 1.12
100 1.01 0.99 1.89
1000 1.15 0.98 7.67
10000 1.62 0.95 19.02
100000 2.01 0.93 22.46
1000000 2.01 0.93 22.33
10485760 2.02 0.93 22.42

Tests/Ptr/Reverse

Make a reversed copy of a chunk of memory

Base -> BarelyHaskellBarelyHaskell -> HaskellBarelyHaskell -> Haskell2
0 1.00 1.35 1.31
1 1.01 1.34 1.29
10 1.01 1.40 1.34
100 1.03 1.68 1.61
1000 1.21 3.27 3.11
10000 1.55 5.73 5.40
100000 1.67 4.09 3.73
1000000 1.82 4.24 3.87
10485760 2.02 4.34 4.08