runtime fusion for Data.ByteString.cons ?
Donald Bruce Stewart
dons at cse.unsw.edu.au
Sun Nov 19 20:01:05 EST 2006
claus.reinke:
> >On Nov 19, 2006, at 11:54 AM, Claus Reinke wrote:
> >>I noticed that ByteString is drastically slower than String if I use
> >>cons a lot. according to the source, that is expected because of
> >>the memcpy for the second parameter.
> >
> >Have you considered constructing your strings with unfoldr? It
> >should be able to handle most (all?) of your string producing
> >functions efficiently.
>
> old habits die hard - I still underappreciate unfold;-)
>
> perhaps I should expand my habits to include unfold more often,
> but in this case, I was interested in the performance of naively
> recursive ByteString programming. and the cons performance
> was the very first thing I noticed, so I tried to do something
> about it.
>
> I guess I got con(s)fused by the two branches of Data.ByteString:
> since it is part of base since ghc 6.6, I thought that pulling from
> the ghc/libraries darcs repository would give me the latest and
> greatest Data.ByteString, as described in the string rewriting
> paper. the lack of Yields et al should have tripped me up..
>
> what is the plan for that branch? and if there are issues that
> prevent an update, shouldn't they be mentioned on the
> Data.ByteString page?
>
> claus
Of course, you can also use stream-based ByteStrings right now, you just
have to remove the Data.ByteString* dirs from base before you build, and
then install the unstable fps branch via Cabal.
-- Don
More information about the Glasgow-haskell-users
mailing list