#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