
#8199: Get rid of HEAP_ALLOCED ----------------------------+---------------------------------------------- Reporter: ezyang | Owner: ezyang Type: feature | Status: new request | Milestone: 7.10.1 Priority: normal | Version: 7.7 Component: | Keywords: Compiler | Architecture: Unknown/Multiple Resolution: | Difficulty: Project (more than a week) Operating System: | Blocked By: Unknown/Multiple | Related Tickets: Type of failure: | None/Unknown | Test Case: | Blocking: | ----------------------------+---------------------------------------------- Comment (by ezyang): Preliminary performance results (not all of nofib was compiling when I did these): {{{ -------------------------------------------------------------------------------- Program Size Allocs Runtime Elapsed TotalMem -------------------------------------------------------------------------------- ansi +5.1% +0.0% 0.00 0.00 +0.0% atom +5.1% +0.0% -3.5% -3.1% +0.0% bernouilli +5.1% +0.0% +1.7% +1.7% +0.0% exp3_8 +5.1% +0.0% +0.0% +0.0% +0.0% gen_regexps +5.0% +0.0% 0.00 0.00 +0.0% integrate +5.1% +0.0% 0.19 0.20 +0.0% kahan +4.9% +0.0% +0.0% -0.7% +0.0% paraffins +5.0% +0.0% 0.11 0.11 +0.0% primes +5.1% +0.0% 0.07 0.07 +0.0% queens +5.1% +0.0% 0.02 0.02 +0.0% rfib +5.1% +0.0% 0.02 0.02 +0.0% tak +5.1% +0.0% 0.02 0.02 +0.0% wheel-sieve1 +5.1% +0.0% +0.5% +0.0% +0.0% wheel-sieve2 +5.0% +0.0% -4.8% -4.8% +0.0% x2n1 +5.1% +0.0% 0.01 0.01 +0.0% -------------------------------------------------------------------------------- Min +4.9% +0.0% -4.8% -4.8% +0.0% Max +5.1% +0.0% +1.7% +1.7% +0.0% Geometric Mean +5.0% +0.0% -1.0% -1.2% +0.0% }}} Binary size bloat comes from all of the extra static indirection tables nonsense; I'm sure we can squeeze it down a bit. Some pretty good improvements in some cases. What I didn't see was any massive slowdowns like I am seeing in ghc-stage2. So I ran nofib again -dynamic: {{{ -------------------------------------------------------------------------------- Program Size Allocs Runtime Elapsed TotalMem -------------------------------------------------------------------------------- ansi +5.9% +0.0% 0.00 0.00 +0.0% atom +4.5% +0.0% -3.4% -3.8% +0.0% bernouilli +5.3% +0.0% +0.0% +0.0% +0.0% exp3_8 +5.6% +0.0% +0.0% +0.0% +0.0% gen_regexps +3.9% +0.0% 0.00 0.00 +0.0% integrate +4.6% +0.0% -2.7% -2.7% +0.0% kahan +5.1% +0.0% +8.4% +8.4% +0.0% paraffins +2.9% +0.0% 0.11 0.11 +0.0% primes +5.5% +0.0% 0.07 0.07 +0.0% queens +5.0% +0.0% 0.02 0.02 +0.0% rfib +6.0% +0.0% 0.02 0.02 +0.0% tak +5.5% +0.0% 0.01 0.01 +0.0% wheel-sieve1 +4.4% +0.0% -2.4% -2.4% +0.0% wheel-sieve2 +3.7% +0.0% -7.1% -6.3% +2.1% x2n1 +4.1% +0.0% 0.01 0.01 +0.0% -------------------------------------------------------------------------------- Min +2.9% +0.0% -7.1% -6.3% +0.0% Max +6.0% +0.0% +8.4% +8.4% +2.1% Geometric Mean +4.8% +0.0% -1.1% -1.1% +0.1% }}} kahan slows down, but not by much; certainly not the order of magnitude I was seeing in ghc-stage2. I still don't really know what's up, so perhaps the massive ghc-stage2 slowdown is a correctness bug somewhere, or perhaps pessimal behavior when a lot of modules are loaded. Ugh! The worst kind of bug. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8199#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler