[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