
#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