
On 17/03/2010 16:48, Johan Tibell wrote:
On Wed, Mar 17, 2010 at 3:44 PM, Louis Wasserman
wrote: I'd concur, but I haven't been able to install Criterion yet. =(
Let me rewrite things with BenchPress, and see what happens.
As the author of BenchPress I'd encourage you to use Criterion as BenchPress was written to benchmark medium size I/O actions (such as HTTP requests) and not (small) pure computations.
I should add, though, that I think C *is* as optimized as D. In particular, some of the tricks that worked with D only worked because of the way the spines were arranged. (For instance, unrolling the children incrementally was a trick that really worked because the children and the trees in the spine were lined up, which meant that it needed the Skip combinator.)
Simon: I wasn't sure what to do there, because e.g. Data.Map, I think, is strict that way. I prefer the lazy way, though, so I certainly don't mind keeping it lazy =)
Simon, we really need a good concurrent benchmark for this stuff as most (all) of the data types in containers are strict in the spine.
I know. I'll try to get to this sometime. In the meantime just optimise for sequential performance, and don't add strictness just for the sake of it. Cheers, Simon