2-fold memory and 2.5-fold time usage regression from GHC 8.10.4 to 9.01 in the mmark package
Summary
Building mmark-0.0.7.2
with GHC 9.0.1 takes 2 times more memory and 2.5 times longer than with GHC 8.10.4.
Reproduction steps
$ cabal get mmark-0.0.7.2 && cd mmark-0.0.7.2
$ cat > cabal.project
packages: .
package mmark
ghc-options: -Rghc-timing
^D
$ cabal build
Results
GHC version | Peak megabytes allocated | Mutator CPU time in seconds | GC CPU time in seconds |
---|---|---|---|
8.4.4 | 2839 | 66.720 | 30.528 |
8.6.5 | 2050 | 65.112 | 27.428 |
8.8.4 | 2662 | 63.661 | 29.302 |
8.10.4 | 2581 | 64.875 | 30.612 |
9.0.1 | 5170 | 196.415 | 56.772 |
As in #14974 (closed), GHC appears to spend most of the time on the Text.MMark.Parser
module.
Note that mmark
uses -O2
.