[Haskell-cafe] ANN: unordered-containers - a new, faster hashing-based containers library
simonpj at microsoft.com
Tue Feb 22 09:15:45 CET 2011
| 1) The for me most interesting performance issue at the moment is the
| regression in CPS performance that Bryan reported.
Yes, I'm going to look at that once I've finished with the 7.0.2 perf regression. It's a bit tricky because it's a big program.
| the state one. My guess, from reading some of the core, is that GHC
| sometimes allocates closures in places were we don't want to e.g. it
| would use
| let k = ...continuation closure...
| in if pred then k
| else ...no use of k...
| instead of pushing the allocation of k into the 'then' branch.
No, it should definitely push k into the then branch.
| thing I'm seeing is that GHC allocates a closure for a continuation,
| calls another function that immediately and unconditionally applies
| that closure (like a trampoline). I'd expect GHC to never allocate
| that closure to begin with.
That's much harder, unless you inline the trampoline function.
| I guess we owe you a small reproducible test case. Unfortunately it's
| kinda hard to produce as the difference can only be seen in medium
| size programs.
Well even bigger programs are ok if you can point to regressions, or say "look at this Core, it could obviously be improved".
| 2) I've gotten really interested in array copying performance lately.
Do the new primops help? (I'm not sure if they've made it in yet, and Simon M is on hol.)
More information about the Cvs-ghc