<meta charset="utf-8"><div>Ticket: <a href="http://hackage.haskell.org/trac/ghc/ticket/4280">http://hackage.haskell.org/trac/ghc/ticket/4280</a></div><div><br></div>Proposal: Performance improvements for Data.Set<br><br>Following on from ticket #4277 here is a similar patch for Data.Set.<br>

<br>This proposal provides a patch that improves performance for many parts of the API. Three standard techniques are applied to the code:<br><br> * Worker/Wrapper transformations of recursive functions with constant arguments (aka. the static argument transformation).<br>

 * Explicit inlining of wrapper functions.<br> * Explicit strictness of keys to functions.<br><br>Three complementary, but orthogonal patches are provided.<br><br> * Add a testsuite, with  coverage data (currently 51% of top level functions, and all core functions).<br>

 * Add a micro-benchmark suite based on Criterion, for empirical evidence of improvements to each function.<br> * The optimization patch itself.<br><br>All 3 patches should be applied, under this proposal.<br><br>The  benchmark results are relatively clear:<br>

<br>32% faster on OS X 10.5.8 on 2 GHz Core 2 Duo<br><br>The consideration period is 3 weeks (before ICFP).<br><br>Work carried out over 28/29th August, 2010 in Utrecht, NL, by Johan Tibell and Don Stewart.<div><br></div>