#4280: Proposal: Performance improvements for Data.Set
---------------------------------+------------------------------------------
    Reporter:  tibbe             |       Owner:                         
        Type:  proposal          |      Status:  new                    
    Priority:  normal            |   Component:  libraries (other)      
     Version:  6.12.3            |    Keywords:                         
    Testcase:                    |   Blockedby:                         
          Os:  Unknown/Multiple  |    Blocking:                         
Architecture:  Unknown/Multiple  |     Failure:  Runtime performance bug
---------------------------------+------------------------------------------
 Following on from ticket #4277 here is a similar patch for `Data.Set`.

 This proposal provides a patch that improves performance for many parts of
 the API. Three standard techniques are applied to the code:

  * Worker/Wrapper transformations of recursive functions with constant
 arguments (aka. the  static argument transformation).
  * Explicit inlining of wrapper functions.
  * Explicit strictness of keys to functions.

 Three complementary, but orthogonal patches are provided.

  * Add a testsuite, with
 [http://johantibell.com/files/containers/set/hpc_index.html coverage data]
 (currently 51% of top level functions, and all core functions).
  * Add a micro-benchmark suite based on Criterion, for empirical evidence
 of improvements to each function.
  * The optimization patch itself.

 All 3 patches should be applied, under this proposal.

 The
 
[http://spreadsheets.google.com/pub?key=0AurLfcdFg73_dGZKN1hONFdyVlFudTh2a3BuSTc4NXc&hl=en&gid=1
 benchmark results] are relatively clear:

 32% faster on OS X 10.5.8 on 2 GHz Core 2 Duo

 
[[Image(https://spreadsheets.google.com/oimg?key=0AurLfcdFg73_dGZKN1hONFdyVlFudTh2a3BuSTc4NXc&oid=2&zx
 =yh9l2q-h6cvi1)]]

 The consideration period is 3 weeks (before ICFP).

 Work carried out over 28/29th August, 2010 in Utrecht, NL, by Johan Tibell
 and Don Stewart.

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