[GHC] #9370: large blowup in memory usage and time when doing parallel build of xmlhtml package

GHC ghc-devs at haskell.org
Tue Jul 29 21:00:54 UTC 2014


#9370: large blowup in memory usage and time when doing parallel build of xmlhtml
package
-------------------------------------+-------------------------------------
              Reporter:  carter      |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:  7.10.1
             Component:  Compiler    |          Version:  7.8.3
            Resolution:              |         Keywords:  parmake
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:  Compile-    |       Blocked By:
  time performance bug               |  Related Tickets:  #910 #9221
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by rwbarton):

 Indeed something seems to be going wrong in the simplifier when invoking
 ghc with -j4.
 {{{
 *** Checking old interface for xmlhtml-0.2.3.2:Text.XmlHtml.HTML.Meta:
 [ 1 of 10] Compiling Text.XmlHtml.HTML.Meta (
 src/Text/XmlHtml/HTML/Meta.hs, dist/build/Text/XmlHtml/HTML/Meta.o )
 *** Parser:
 *** Renamer/typechecker:
 *** Desugar:
 Result size of Desugar (after optimization)
   = {terms: 26,260, types: 20,021, coercions: 0}
 *** Simplifier:
 Result size of Simplifier iteration=1
   = {terms: 1,446,658, types: 953,432, coercions: 314,352}
 ...
 }}}

 With `-ddump-inlinings` I see this repeated over and over, which is not
 present with `-j1`:
 {{{
 Inlining done: Data.String.fromString
 Inlining done: Data.Text.$fIsStringText
 Inlining done: Data.Text.pack
 Inlining done: Data.Text.Internal.Fusion.unstream
 Inlining done: Data.Text.Internal.Fusion.Common.map
 Inlining done: Data.Text.Internal.Fusion.Common.streamList
 Inlining done: Data.Text.Internal.safe
 Inlining done: Data.Bits.$fBitsInt_$c.&.
 Inlining done: Data.Text.Internal.Fusion.Types.$WYield
 [ repeats ~4000 times ]
 }}}

 According to `-ddump-inlinings -dverbose-core2core`, GHC never even
 considered inlining `fromString` with `-j1`.

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


More information about the ghc-tickets mailing list