[GHC] #14797: High-residency modules during GHC build

GHC ghc-devs at haskell.org
Mon Feb 12 16:56:56 UTC 2018


#14797: High-residency modules during GHC build
-------------------------------------+-------------------------------------
           Reporter:  tdammers       |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.2.1
           Keywords:                 |  Operating System:  Linux
       Architecture:  x86_64         |   Type of failure:  Runtime
  (amd64)                            |  performance bug
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 While trying to figure out memory allocation failures on the CI server, I
 tracked allocations and residency on a per-module basis, and noticed that
 some modules require a lot more memory to compile than others.

 I've compiled a digest of the most memory-hungry compilation steps:

 {{{
 "/usr/local/bin/ghc" ... compiler/stage1/build/OptCoercion.o: Max.
 residency: 991356584 / In use: 2094M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/OptCoercion.dyn_o: Max.
 residency: 714940528 / In use: 1471M
 "/usr/local/bin/ghc" ... compiler/stage1/build/X86/CodeGen.o: Max.
 residency: 679947656 / In use: 1497M
 "inplace/bin/ghc-stage1" ... libraries/Cabal/Cabal/dist-
 install/build/Distribution/SPDX/LicenseId.dyn_o: Max. residency: 653177496
 / In use: 1355M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/X86/CodeGen.dyn_o: Max.
 residency: 641515344 / In use: 1425M
 "/usr/local/bin/ghc" ... -ilibraries/parsec: Max. residency: 593335568 /
 In use: 1355M
 "/usr/local/bin/ghc" ... libraries/Cabal/Cabal/dist-
 boot/build/Distribution/SPDX/LicenseId.o: Max. residency: 575034968 / In
 use: 1137M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/DynFlags.dyn_o: Max.
 residency: 402734408 / In use: 1059M
 "/usr/local/bin/ghc" ... compiler/stage1/build/DynFlags.o: Max. residency:
 343154784 / In use: 892M
 "inplace/bin/ghc-stage1" ... libraries/template-haskell/dist-
 install/build/Language/Haskell/TH/Syntax.dyn_o: Max. residency: 266744312
 / In use: 720M
 "/usr/local/bin/ghc" ... compiler/stage1/build/Parser.o: Max. residency:
 258613584 / In use: 679M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/CmmOpt.dyn_o: Max.
 residency: 254639624 / In use: 568M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/Parser.dyn_o: Max.
 residency: 236774592 / In use: 635M
 "inplace/bin/ghc-stage1" ... ghc/stage2/build/GHCi/UI.dyn_o: Max.
 residency: 234055792 / In use: 609M
 "/usr/local/bin/ghc" ... compiler/stage1/build/HsExpr.o: Max. residency:
 233724400 / In use: 657M
 "/usr/local/bin/ghc" ... compiler/stage1/build/CmmOpt.o: Max. residency:
 208378888 / In use: 436M
 "/usr/local/bin/ghc" ... compiler/stage1/build/HscMain.o: Max. residency:
 197177248 / In use: 500M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/HsExpr.dyn_o: Max.
 residency: 192780496 / In use: 521M
 "inplace/bin/ghc-stage1" ... libraries/Cabal/Cabal/dist-
 install/build/Distribution/Simple/Setup.dyn_o: Max. residency: 191649952 /
 In use: 521M
 "/usr/local/bin/ghc" ... compiler/stage1/build/HsDecls.o: Max. residency:
 183441120 / In use: 508M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/TcSplice.dyn_o: Max.
 residency: 176802000 / In use: 445M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/TcRnDriver.dyn_o: Max.
 residency: 172892128 / In use: 458M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/HscMain.dyn_o: Max.
 residency: 172802688 / In use: 470M
 "inplace/bin/ghc-stage1" ... libraries/ghci/dist-
 install/build/GHCi/TH/Binary.dyn_o: Max. residency: 169775368 / In use:
 455M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/GhcMake.dyn_o: Max.
 residency: 167305408 / In use: 431M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/PrimOp.dyn_o: Max.
 residency: 162532408 / In use: 455M
 "/usr/local/bin/ghc" ... compiler/stage1/build/HscTypes.o: Max. residency:
 160814736 / In use: 421M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/HsDecls.dyn_o: Max.
 residency: 160445552 / In use: 426M
 "inplace/bin/ghc-stage1" ... libraries/Cabal/Cabal/dist-
 install/build/Language/Haskell/Extension.dyn_o: Max. residency: 159817712
 / In use: 363M
 "/usr/local/bin/ghc" ... compiler/stage1/build/TcSplice.o: Max. residency:
 156738656 / In use: 375M
 "/usr/local/bin/ghc" ... compiler/stage1/build/TcRnDriver.o: Max.
 residency: 153910768 / In use: 421M
 "inplace/bin/ghc-stage1" ... libraries/containers/dist-
 install/build/Data/Sequence/Internal.dyn_o: Max. residency: 151318224 / In
 use: 405M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/MatchLit.dyn_o: Max.
 residency: 150681176 / In use: 382M
 "/usr/local/bin/ghc" ... compiler/stage1/build/ByteCodeGen.o: Max.
 residency: 144579176 / In use: 389M
 "/usr/local/bin/ghc" ... compiler/stage1/build/GhcMake.o: Max. residency:
 144411312 / In use: 379M
 "/usr/local/bin/ghc" ... compiler/stage1/build/MatchLit.o: Max. residency:
 142596736 / In use: 382M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/StgCmmPrim.dyn_o: Max.
 residency: 141484616 / In use: 340M
 "inplace/bin/ghc-stage1" ... libraries/ghci/dist-
 install/build/GHCi/Message.dyn_o: Max. residency: 139224136 / In use: 363M
 "/usr/local/bin/ghc" ... compiler/stage1/build/StgCmmPrim.o: Max.
 residency: 137390744 / In use: 346M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/TcExpr.dyn_o: Max.
 residency: 136387128 / In use: 370M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/Lexer.dyn_o: Max.
 residency: 135228120 / In use: 337M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/TcTyClsDecls.dyn_o:
 Max. residency: 134817024 / In use: 369M
 "/usr/local/bin/ghc" ... compiler/stage1/build/MkIface.o: Max. residency:
 134039144 / In use: 339M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/RnExpr.dyn_o: Max.
 residency: 133947600 / In use: 345M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/HscTypes.dyn_o: Max.
 residency: 133938840 / In use: 366M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/TcGenDeriv.dyn_o: Max.
 residency: 133744056 / In use: 320M
 "/usr/local/bin/ghc" ... compiler/stage1/build/TcExpr.o: Max. residency:
 131766896 / In use: 336M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/GHC.dyn_o: Max.
 residency: 130998912 / In use: 277M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/ByteCodeGen.dyn_o: Max.
 residency: 129499464 / In use: 348M
 "inplace/bin/ghc-stage1" ... compiler/stage2/build/InteractiveEval.dyn_o:
 Max. residency: 128902944 / In use: 286M
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14797>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list