<div dir="ltr">Memory profiling only to test how stream-y the streaming was. I didn't think perf would be that different between them. The way I had to transform my fold for Pipes was a titch awkward, otherwise happy with it.<div><br></div><div>If people are that interested in the perf side of things I can setup a criterion harness and publish those numbers as well.</div><div><br></div><div>Mostly I was impressed with:</div><div><br></div><div>1. How easy it was to start using the streaming module in Cassava because it's just a Foldable instance.</div><div><br></div><div>2. How Pipes used <600kb of memory.</div><div><br></div><div>Your pull request for csv-conduit looks really clean and nice. I've merged it, thanks for sending it my way!</div><div><br></div><div>--- Chris Allen</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 13, 2014 at 12:26 AM, Christopher Reichert <span dir="ltr"><<a href="mailto:creichert07@gmail.com" target="_blank">creichert07@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On Wed, Nov 12 2014, Christopher Allen <<a href="mailto:cma@bitemyapp.com">cma@bitemyapp.com</a>> wrote:<br>
> [Snip]<br>
<span class="">> csv-conduit isn't in the test results because I couldn't figure out how to<br>
> use it. pipes-csv is proper streaming, but uses cassava's parsing machinery<br>
> and data types. Possibly this is a problem if you have really wide rows but<br>
> I've never seen anything that would be problematic in that realm even when<br>
> I did a lot of HDFS/Hadoop ecosystem stuff. AFAICT with pipes-csv you're<br>
> streaming rows, but not columns. With csv-conduit you might be able to<br>
> incrementally process the columns too based on my guess from glancing at<br>
> the rather scary code.<br>
><br>
<br>
</span>Any problems in particular? I've had pretty good luck with<br>
csv-conduit. However, I have noticed that it's rather picky about type<br>
signatures and integrating custom data types isn't straight forward at<br>
first.<br>
<br>
csv-conduit also seems to have drawn inspiration from cassava:<br>
<a href="http://hackage.haskell.org/package/csv-conduit-0.6.3/docs/Data-CSV-Conduit-Conversion.html" target="_blank">http://hackage.haskell.org/package/csv-conduit-0.6.3/docs/Data-CSV-Conduit-Conversion.html</a><br>
<br>
> [Snip]<br>
<span class="">> To that end, take a look at my rather messy workspace here:<br>
> <a href="https://github.com/bitemyapp/csvtest" target="_blank">https://github.com/bitemyapp/csvtest</a><br>
<br>
</span>I've made a PR for the conduit version:<br>
<a href="https://github.com/bitemyapp/csvtest/pull/1" target="_blank">https://github.com/bitemyapp/csvtest/pull/1</a><br>
<br>
<br>
It could certainly be made more performent but it seems to hold up well<br>
in comparison. I would be interested in reading the How I Start Article<br>
and hearing more about your conclusions. Is this focused primarily on<br>
the memory profile or also speed?<br>
<br>
<br>
Regards,<br>
-Christopher<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> Haskell-Cafe mailing list<br>
> <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
> <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>