Skip to content

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.

Edited by Simon Jakobi
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information