[Haskell-cafe] darcs patch dependencies in dot format

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Thu May 17 00:18:08 CEST 2012

On 17 May 2012 03:31, Stephen Tetley <stephen.tetley at gmail.com> wrote:
>> On 16 May 2012 19:43, wren ng thornton <wren at freegeek.org> wrote:
>>> You should probably farm out the toDot rendering to one of the libraries
>>> that focuses on that[1], since they'll have focused on the efficiency
>>> issues--- or if they haven't, then you can contribute improvements there,
>>> helping everyone win. In particular, you're using Strings which is a
>>> notorious performance sink. Using Text or ByteStrings would be far better.
> I'm not sure swapping to Text or ByteStrings make be much great shakes
> for this. If you are generating huge files, where it would count -
> then the files are going to be a real problem for Graphviz to render
> (unless Graphviz has seen some optimization recently...).

I found with graphviz that switching to Text gave two advantages:

1) Easier to require UTF-8 usage

2) Printing and parsing was faster

In part, the speed-up came from switching to wl-pprint-text rather
than pretty (the wl-pprint method of pretty-printing seems to have
some efficiency improvements in how concatenation is done over pretty)
and the Text backend for polyparse lets you use manySatisfy rather
than (many . satisfy) which is more efficient.

But even in my initial pseudo-port (going via String a lot, etc.)
there was a slight speed-up.

So I think there is still a valid reason to consider using Text (or
possibly ByteString, but I think that has potential issues).

> That said, I would recommend Sönke uses a pretty print library rather
> than Printf as using the former makes for much more idiomatic for
> Haskell and generally performs well enough for "generational"
> activities even if it uses Strings internally.
> Best wishes
> Stephen
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Haskell-Cafe mailing list