
Am Sonntag 11 April 2010 17:15:22 schrieb Stephen Tetley:
On 11 April 2010 15:42, Daniel Fischer
wrote: [SNIP] When dealing with short strings, in my experience there are rarely compelling reasons to choose one over the other.
Hi Daniel
Thanks - I was slightly surprised at the results in the paper because the 'cons' test for was equal, I thought bytestrings have to do a bit more work for a 'cons' - looking at the code lazy bytestring uses one constructor and a bit of C memory poking, which is the C memory poking more than I'd expect the [Char] version to do.
Well, I guess it depends on what actually happens with fusion (a single cons doesn't take significant time for either). If repeated conses lead to a chain of one-element chunks, I'd expect that to be significantly slower than [Char], but if it's rewritten to - allocate a new chunk, - write from end and decrement offset counter, it shouldn't be slower.
The only 'determinant' I've found for choosing which type for short strings is if I'm using a library that forces one or the other on me,
Sure, that's pretty compelling - as long as you don't need two libraries with different choices :)
otherwise I'm swayed by the simplicity of [Char].
Best wishes
Stephen