[Haskell-cafe] [RFC] benchmarks of bytestrings, teaser
Peter Lund
firefly at vax64.dk
Sun Dec 16 00:45:21 EST 2007
On Sat, 2007-12-15 at 19:07 -0800, Don Stewart wrote:
> Well, I'm not going to wait till Wednesday for the numbers!
But I got you to write down predictions before you ran the tests, which
is precisely what I wanted :)
> Summary,
>
> * Program 1 is fast, as expected, but exhbits a bug in the bytestring
> library's lazy bytestring fusion system. Something in length or filter
> isn't doing the right job. This code will be replaced by the stream fusion
> system soon.
Good.
> * Program 2: as expected. strict IO uses O(N) space, and that has performance
> effects.
>
> * Program 3: lazy bytestrings use constant space, but you better avoid
> redundant bounds checks in the inner loops.
Maybe its extra bounds-checking that makes it slow, as you say. It
probably is. I must admit that I couldn't follow the
core/stg/C--/assembly code at all.
> * Program 4: strings are silly
No they are not.
They are the default data structure for text and give the baseline that
bytestrings should beat.
I find it interesting to see *if* bytestrings beat it and if so, by how
much. The vanilla string versions of my tests all use less memory than
any of the other versions, but they are a bit slower. And perhaps not
as much slower as they should be...
> * Program 5: as expected. similar to program 2.
>
> * Program 6: strict foldl's over lazy bytestrings are good :)
> fast, and constant space.
>
> * Program 7: see program 4.
>
> Pretty much as expected then, but with a bug identified in lazy bytestring fusion (I think).
>
> Nice little benchmark.
Thanks :)
There are more...
-Peter
More information about the Haskell-Cafe
mailing list