[Haskell-cafe] ANNOUNCE: text 0.8.0.0, fast Unicode text support

Bryan O'Sullivan bos at serpentine.com
Wed Sep 1 12:15:19 EDT 2010


Hi, Daniel -

Thanks for taking the new code for a test drive!


> The interesting part is the comparison between text and vanilla String I/O,
> the difference is smaller than I expected for text-0.8.0.0.


Yes. Much of this is due to the new encoding stuff on Handles in GHC 6.12,
which is slow. Its performance wasn't so noticeable when it was only
shipping String around, but it's much more visible with Text. It's far
slower on a Mac than on Linux, in case that's relevant.


> The performance of text-0.8.0.0 has improved significantly over that of
> text-0.7.2.1 (for the tested features), the improvement of the replacing
> algorithm is however not as impressive as that of I/O.
>

I'd bet you that's mostly because the program is I/O bound, in the sense
that it's spending time going through the layers of buffering and
translation that now make up a Handle. Any improvement in other code is
going to be hard to see because of that.

The other major consideration, both for this case and the first one you
note, is that the inliner in 6.12 chokes on code that uses stream fusion: it
boxes and unboxes vast quantities of state. That kills performance due to
both the boxing and unboxing overhead and the increased number of nursery
GCs.

The marvelous new 6.13 inliner does a *much* better job here - that's where
I see those 3x performance improvements for free.

What's *really* bad is the space behaviour.
>

What are you using to measure that?

Also, please don't forget to post your benchmark code when you make
observations like this, as that way I can reproduce your measurements and
fix problems. I appreciate your help!

Regards,
Bryan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100901/ea36051f/attachment.html


More information about the Haskell-Cafe mailing list