
claus.reinke:
I keep wanting to use DiffArray as the natural functional solution to single-threaded array use. But everytime I try, I get smacked over the head with the actual performance figures. Sometimes, even plain arrays are faster in a loop doing array updates, in spite of all the copying involved. And when copying on update dominates the runtime, using IntMap tends to be faster - the "indirections" are the wrong way round, but don't pile up, just that array lookups aren't quite constant time.
In my view, DiffArray needs a modern rewrite. There's no need for it to be as slow as it is. We played with some similar structures at work, and got quite good performance, so I think the problem is not fundamental. Time for someone to step up and write a new fast diff array. -- Don