[GHC] #9630: compile-time performance regression (probably due to Generics)
GHC
ghc-devs at haskell.org
Mon Mar 23 15:28:45 UTC 2015
#9630: compile-time performance regression (probably due to Generics)
-------------------------------------+-------------------------------------
Reporter: hvr | Owner: simonpj
Type: bug | Status: new
Priority: high | Milestone: 7.12.1
Component: Compiler | Version: 7.9
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Compile-time | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: #9583 | Differential Revisions:
-------------------------------------+-------------------------------------
Comment (by darchon):
I have another data-point for this performance bug:
http://hackage.haskell.org/package/unbound-generics. Compiling the
following example: https://github.com/lambdageek/unbound-
generics/blob/master/examples/F.hs
{{{
$ uname -a
Darwin wlan022084.mobiel.utwente.nl 14.1.0 Darwin Kernel Version 14.1.0:
Thu Feb 26 19:26:47 PST 2015;
root:xnu-2782.10.73~1/RELEASE_X86_64 x86_64
#############################################################################
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.4
$ ghc -O -c -Rghc-timing -fforce-recomp -Wnot F.hs
<<ghc: 1721650904 bytes, 3317 GCs,
16624472/43436104 avg/max bytes residency (12 samples), 112M in
use,
0.00 INIT (0.00 elapsed), 1.85 MUT (2.22 elapsed),
1.52 GC (2.03 elapsed) :ghc>>
#############################################################################
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.10.0.20150323
$ ghc -O -c -Rghc-timing -fforce-recomp -Wnot F.hs
<<ghc: 13422435616 bytes, 21356 GCs,
46569528/80396192 avg/max bytes residency (25 samples), 221M in
use,
0.000 INIT (0.001 elapsed), 11.911 MUT (12.895 elapsed),
10.298 GC (10.973 elapsed) :ghc>>
}}}
The interesting parts of running with -v2 are:
{{{
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.4
$ ghc -O -c -Rghc-timing -fforce-recomp -Wnot -v2 F.hs
[...]
Result size of Simplifier
= {terms: 2,583, types: 8,513, coercions: 1,371}
*** Specialise:
Result size of Specialise
= {terms: 2,583, types: 8,513, coercions: 1,371}
*** Float out(FOS {Lam = Just 0, Consts = True, PAPs = False}):
Result size of Float out(FOS {Lam = Just 0,
Consts = True,
PAPs = False})
= {terms: 2,923, types: 9,081, coercions: 1,371}
*** Float inwards:
Result size of Float inwards
= {terms: 2,923, types: 9,081, coercions: 1,371}
*** Simplifier:
Result size of Simplifier iteration=1
= {terms: 6,490, types: 31,862, coercions: 17,447}
[...]
#############################################################################
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.10.0.20150323
$ ghc -O -c -Rghc-timing -fforce-recomp -Wnot -v2 F.hs
[...]
Result size of Simplifier
= {terms: 2,028, types: 5,759, coercions: 1,207}
*** Specialise:
Result size of Specialise
= {terms: 11,945, types: 48,810, coercions: 9,282}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False}):
Result size of Float out(FOS {Lam = Just 0,
Consts = True,
OverSatApps = False})
= {terms: 14,293, types: 68,412, coercions: 9,282}
*** Simplifier:
Result size of Simplifier iteration=1
= {terms: 22,244, types: 103,329, coercions: 35,450}
[...]
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9630#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list