Skip to content

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.
  1. 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
  1. 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
  1. 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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information