[Haskell-cafe] Re: String vs ByteString

Benedikt Huber benjovi at gmx.net
Mon Aug 16 19:55:32 EDT 2010

On 16.08.10 14:44, Daniel Fischer wrote:
> Hi Bulat,
> On Monday 16 August 2010 07:35:44, Bulat Ziganshin wrote:
>> Hello Daniel,
>> Sunday, August 15, 2010, 10:39:24 PM, you wrote:
>>> That's great. If that performance difference is a show stopper, one
>>> shouldn't go higher-level than C anyway :)
>> *all* speed measurements that find Haskell is as fast as C, was
>> broken.
> That's a pretty bold claim, considering that you probably don't know all
> such measurements ;)
> [...]
> If you are claiming that his test was flawed (and since the numbers clearly
> showed Haskell slower than C, just not much, I suspect you do, otherwise I
> don't see the point of your post), could you please elaborate why you think
> it's flawed?
Hi Daniel,
you are right, the throughput of 'cat' (as proposed by Bulat) is not a 
fair comparison, and 'all speed measurements favoring haskell are 
broken' is hardly a reasonable argument. However, 'wc -m' is indeed a 
rather slow way to count the number of UTF-8 characters. Python, for 
example, is quite a bit faster (1.60s vs 0.93s for 70M) on my 
machine[1,2]. Despite of all this, I think the performance of the text 
package is very promising, and hope it will improve further!

cheers, benedikt

[1] A special purpose C implementation (as the one presented here: 
http://canonical.org/~kragen/strlen-utf8.html) is even faster (0.50), 
but that's not a fair comparison either.
[2] I do not know Python, so maybe there is an even faster way than
  print len(sys.stdin.readline().decode('utf-8'))

More information about the Haskell-Cafe mailing list