[WIP] Use unboxed sums for change / no-change tracking#461
[WIP] Use unboxed sums for change / no-change tracking#461
Conversation
| then NoChange | ||
| else Changed (Leaf h (L k x)) | ||
| else Changed $ collision h l (L k x) | ||
| | otherwise = Changed $ runST (two s h k x hy t) |
There was a problem hiding this comment.
I suspect that we're less lazy in the result of two now, and that this is the actual source of the minor performance improvements.
There was a problem hiding this comment.
I should try to make two itself more strict: Force the result of the recursive application of go, force the returned BitmapIndexed nodes.
|
With the benchmarks I'm getting a lot of noise and a rather reliable 2-3% speedup in |
|
The last time I experimented with this idea, the performance was worse, but maybe things have changed. Or maybe there are differences between |
|
FWIW, I think those old experiments used unboxed tuples with |
…instead of pervasive
ptrEq.