[GHC] #14052: Significant GHCi speed regression with :module and `let` in GHC 8.2.1

GHC ghc-devs at haskell.org
Mon Jul 31 17:54:37 UTC 2017


#14052: Significant GHCi speed regression with :module and `let` in GHC 8.2.1
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.4.1
       Component:  GHCi              |              Version:  8.2.1-rc2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by phadej):

 In GHC-8.2.1 and GHC-8.0.2 maximum residency is the same, but 8.2.1 makes
 GHC work hard. I don't have a profiled build at my hand right now to see
 what's is so much created there

 === GHC 8.2.1

 {{{
 *Foo> :q
 Leaving GHCi.
  117,933,393,408 bytes allocated in the heap
    8,146,416,328 bytes copied during GC
       19,708,480 bytes maximum residency (254 sample(s))
          281,520 bytes maximum slop
               50 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0     30416 colls,     0 par   14.994s  14.949s     0.0005s
 0.0330s
   Gen  1       254 colls,     0 par    0.134s   0.137s     0.0005s
 0.0033s

   TASKS: 5 (1 bound, 4 peak workers (4 total), using -N1)

   SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

   INIT    time    0.002s  (  0.001s elapsed)
   MUT     time   36.655s  ( 39.458s elapsed)
   GC      time   15.128s  ( 15.085s elapsed)
   EXIT    time    0.036s  (  0.046s elapsed)
   Total   time   51.820s  ( 54.591s elapsed)

   Alloc rate    3,217,432,136 bytes per MUT second

   Productivity  70.8% of total user, 72.4% of total elapsed
 }}}

 === GHC 8.0.2

 {{{
 *Foo> :q
 Leaving GHCi.
    2,025,372,528 bytes allocated in the heap
       67,188,040 bytes copied during GC
       19,710,096 bytes maximum residency (8 sample(s))
          480,376 bytes maximum slop
               44 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0       612 colls,     0 par    0.161s   0.160s     0.0003s
 0.0023s
   Gen  1         8 colls,     0 par    0.149s   0.150s     0.0187s
 0.0415s

   TASKS: 5 (1 bound, 4 peak workers (4 total), using -N1)

   SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

   INIT    time    0.001s  (  0.001s elapsed)
   MUT     time    3.144s  (  8.657s elapsed)
   GC      time    0.310s  (  0.310s elapsed)
   EXIT    time    0.042s  (  0.042s elapsed)
   Total   time    3.546s  (  9.010s elapsed)
 }}}

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


More information about the ghc-tickets mailing list