#2159: Use a more efficient representation than [DynFlag]
---------------------------------+------------------------------------------
    Reporter:  igloo             |        Owner:                              
        Type:  bug               |       Status:  new                         
    Priority:  low               |    Milestone:  7.0.1                       
   Component:  Compiler          |      Version:  6.8.2                       
    Keywords:                    |     Testcase:                              
   Blockedby:                    |   Difficulty:  Unknown                     
          Os:  Unknown/Multiple  |     Blocking:                              
Architecture:  Unknown/Multiple  |      Failure:  Compile-time performance bug
---------------------------------+------------------------------------------

Comment(by igloo):

 With plain HEAD, and HEAD with `bitmap.dpatch`, running
 {{{
 time ghc -v0 --make -O Setup.hs
 }}}
 in a Cabal tree (which thus also builds most of Cabal) I get:
 {{{
 Run 1
     HEAD:           111.38 user 1.39 system 1:52.88 elapsed
     Bitmap:         109.01 user 1.38 system 1:50.41 elapsed
 Run 2
     HEAD:           112.18 user 1.32 system 1:53.55 elapsed
     Bitmap:         110.58 user 1.38 system 1:51.98 elapsed
 Run 3
     HEAD:           97.51 user 1.23 system 1:38.75 elapsed
     Bitmap:         110.95 user 1.26 system 1:52.24 elapsed
 Run 4
     HEAD:           111.60 user 1.33 system 1:52.92 elapsed
     Bitmap:         109.93 user 1.30 system 1:51.31 elapsed
 Run 5
     HEAD:           111.63 user 1.66 system 1:53.31 elapsed
     Bitmap:         88.90 user 1.19 system 1:30.41 elapsed
 Run 6
     HEAD:           95.12 user 1.26 system 1:36.47 elapsed
     Bitmap:         111.27 user 1.48 system 1:52.88 elapsed
 Run 7
     HEAD:           112.18 user 1.35 system 1:53.66 elapsed
     Bitmap:         109.51 user 1.27 system 1:50.85 elapsed
 Run 8
     HEAD:           112.51 user 1.16 system 1:53.74 elapsed
     Bitmap:         110.33 user 1.26 system 1:51.71 elapsed
 Run 9
     HEAD:           111.69 user 1.36 system 1:53.37 elapsed
     Bitmap:         109.26 user 1.40 system 1:50.65 elapsed
 Run 10
     HEAD:           114.77 user 1.38 system 1:56.24 elapsed
     Bitmap:         110.08 user 1.47 system 1:51.54 elapsed
 }}}
 so with the patch it takes 109-110 rather than 111-112s (although
 occasionally a build is much quicker).

 So not a huge performance increase, but it removes one of the slivers, and
 it would be nice to get the `dopt` noise out of profiles. I think some
 sort of extension (or generic program?) that makes bitmaps from
 enumerations would be generally useful.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2159#comment:7>
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