#5631: Compilation slowdown from 7.0.x to 7.2.x
---------------------------------+------------------------------------------
Reporter: bjpop | Owner: simonpj
Type: bug | Status: new
Priority: highest | Milestone: 7.4.1
Component: Compiler | Version: 7.2.1
Keywords: | Testcase:
Blockedby: | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: Compile-time performance bug
---------------------------------+------------------------------------------
Comment(by simonpj@…):
commit e99f323405a8398f0521686d87124453e85b599a
{{{
Author: Simon Peyton Jones <[email protected]>
Date: Sat Nov 26 21:47:39 2011 +0000
Add missing cases in TcUnify.uUnfilledVars
These missing cases dealt with unifying a meta type variable with a
skolem when the kinds match -- a pretty common case. The missing
cases meant that instead of directly solving on the fly (which is easy
in this situation) we were generating an equality constraint viat
`utype_defer`. This isn't *wrong*, but it's a lot less efficient than
it could be!
All this arose from investigating #5631. This one change does this
to the compiler allocation
Before:
821,257,552 bytes allocated in the heap
94 MB total memory in use (0 MB lost due to
fragmentation)
MUT time 1.54s ( 1.67s elapsed)
GC time 1.36s ( 1.60s elapsed)
Total time 2.93s ( 3.27s elapsed)
After:
424,244,124 bytes allocated in the heap
49 MB total memory in use (0 MB lost due to
fragmentation)
MUT time 0.64s ( 0.89s elapsed)
GC time 0.83s ( 0.77s elapsed)
Total time 1.47s ( 1.66s elapsed)
Not bad for a 3-line change!
compiler/typecheck/TcUnify.lhs | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5631#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs