#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

Reply via email to