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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe