text benchmarks are wildly slower in 9.0.1
Reproduction
- See also #19701 (closed), which reports a further regression from 9.0 to 9.2.
- Checkout
text
:
git clone https://github.com/haskell/text
cd text
git checkout ca73ae38ed3744ec930cbfdb706147ec29d5a185
git clone https://github.com/haskell/text-test-data benchmarks/text-test-data
make -Cbenchmarks/text-test-data
- Run
ascii-small
benchmarks with GHC 8.10.6 (it will take around five minutes):
cabal run -w ghc-8.10.6 benchmarks -- -p '/Text+ascii-small/' --csv 8.10.csv --hide-successes
- Compare again benchmarks with GHC 9.0.1 (it will take around five minutes):
cabal run -w ghc-9.0.1 benchmarks -- -p '/Text+ascii-small/' --baseline 8.10.csv --fail-if-slower 50 --hide-successes
Expected results
No benchmarks became slower.
Actual results
All
Pure
cons
LazyText+ascii-small: FAIL (1.87s)
914 μs ± 62 μs, 4464167% slower than baseline
intersperse
Text+ascii-small: FAIL (9.14s)
560 μs ± 31 μs, 99% slower than baseline
isInfixOf
Text+ascii-small: FAIL (5.67s)
2.8 ms ± 234 μs, 224% slower than baseline
mapAccumL
Text+ascii-small: FAIL (2.16s)
263 μs ± 17 μs, 157% slower than baseline
LazyText+ascii-small: FAIL (4.21s)
258 μs ± 7.6 μs, 160% slower than baseline
mapAccumR
Text+ascii-small: FAIL (5.18s)
633 μs ± 37 μs, 211% slower than baseline
LazyText+ascii-small: FAIL (5.34s)
659 μs ± 46 μs, 228% slower than baseline
reverse
Text+ascii-small: FAIL (2.23s)
273 μs ± 26 μs, 241% slower than baseline
LazyText+ascii-small: FAIL (2.18s)
269 μs ± 21 μs, 248% slower than baseline
zipWith
Text+ascii-small: FAIL (3.67s)
1.8 ms ± 113 μs, 91% slower than baseline
length
decode
Text+ascii-small: FAIL (1.57s)
190 μs ± 15 μs, 249% slower than baseline
intersperse
Text+ascii-small: FAIL (1.54s)
376 μs ± 36 μs, 139% slower than baseline
replicate char
LazyText+ascii-small: FAIL (2.09s)
509 μs ± 36 μs, 1037% slower than baseline
zipWith
Text+ascii-small: FAIL (2.30s)
1.1 ms ± 86 μs, 101% slower than baseline
Edited by Bodigrim