[GHC] #12754: Adding an explicit export list halves compilation time.

GHC ghc-devs at haskell.org
Wed Oct 26 01:32:18 UTC 2016


#12754: Adding an explicit export list halves compilation time.
-------------------------------------+-------------------------------------
        Reporter:  mpickering        |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by niteria):

 The difference in allocations is significant:
 {{{
 $ rm A.{hs,o,hi}; python gen12754no.py > A.hs && inplace/bin/ghc-stage2
 A.hs +RTS -s; rm A.{hs,o,hi}; python gen12754.py > A.hs && inplace/bin
 /ghc-stage2 A.hs +RTS -s;
 [1 of 1] Compiling A                ( A.hs, A.o )
   13,116,210,736 bytes allocated in the heap
    1,154,829,688 bytes copied during GC
       92,896,592 bytes maximum residency (13 sample(s))
        2,925,816 bytes maximum slop
              225 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0      2658 colls,     0 par    1.433s   1.433s     0.0005s
 0.0334s
   Gen  1        13 colls,     0 par    0.840s   0.840s     0.0646s
 0.1918s

   TASKS: 4 (1 bound, 3 peak workers (3 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   10.539s  ( 11.260s elapsed)
   GC      time    2.273s  (  2.273s elapsed)
   EXIT    time    0.045s  (  0.046s elapsed)
   Total   time   12.882s  ( 13.580s elapsed)

   Alloc rate    1,244,579,585 bytes per MUT second

   Productivity  82.3% of total user, 83.3% of total elapsed

 gc_alloc_block_sync: 0
 whitehole_spin: 0
 gen[0].sync: 0
 gen[1].sync: 0
 [1 of 1] Compiling A                ( A.hs, A.o )
    7,981,835,440 bytes allocated in the heap
      804,198,536 bytes copied during GC
       92,485,816 bytes maximum residency (13 sample(s))
        2,114,568 bytes maximum slop
              243 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0       592 colls,     0 par    0.846s   0.846s     0.0014s
 0.0385s
   Gen  1        13 colls,     0 par    0.883s   0.883s     0.0679s
 0.1829s

   TASKS: 4 (1 bound, 3 peak workers (3 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    9.633s  ( 10.229s elapsed)
   GC      time    1.729s  (  1.728s elapsed)
   EXIT    time    0.044s  (  0.052s elapsed)
   Total   time   11.433s  ( 12.010s elapsed)

   Alloc rate    828,632,869 bytes per MUT second

   Productivity  84.9% of total user, 85.6% of total elapsed

 gc_alloc_block_sync: 0
 whitehole_spin: 0
 gen[0].sync: 0
 gen[1].sync: 0
 }}}

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


More information about the ghc-tickets mailing list