<div dir="ltr"><div class="gmail_default" style="font-size:small">I have been surprised at how rarely switching to Text or ByteString makes things significantly faster.  If you do this you should look at Data.ByteString.Builder or Data.Text.Lazy.Builder.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 19, 2017 at 4:17 AM, Станислав Черничкин <span dir="ltr"><<a href="mailto:schernichkin@gmail.com" target="_blank">schernichkin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Try to use Text or ByteString instead of strings. Try to use compile and execute methods (<a href="http://hackage.haskell.org/package/regex-tdfa-1.2.1/docs/Text-Regex-TDFA-ByteString.html" target="_blank">http://hackage.haskell.org/<wbr>package/regex-tdfa-1.2.1/docs/<wbr>Text-Regex-TDFA-ByteString.<wbr>html</a>), make sure regex get compiled once.</div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">2017-05-16 12:12 GMT+03:00 Bram Neijt <span dir="ltr"><<a href="mailto:bneijt@gmail.com" target="_blank">bneijt@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear reader,<br>
<br>
I decided to do a little project which is a simple search and replace<br>
program for large text files.<br>
<br>
Written in Haskell, it does a few different regex matches on each line<br>
and stores them in a leveldb key-value store to create a<br>
consistent/reviewable search-replace index. It should provide for some<br>
simple/brute-force anonymization of data and therefore I called it<br>
hanon (sorry, could not think of a better name).<br>
<br>
<a href="https://github.com/BigDataRepublic/hanon" rel="noreferrer" target="_blank">https://github.com/BigDataRepu<wbr>blic/hanon</a><br>
<br>
The code works, but I've done some benchmarking to compare it with<br>
Python and the code is about 80x slower then doing the same thing in<br>
Python, making it useless for larger data files.<br>
<br>
I'm obviously doing something wrong.<br>
<br>
Could you give me tips on improving the performance of this code?<br>
Probably mainly looking at<br>
<br>
<a href="https://github.com/BigDataRepublic/hanon/blob/master/src/Mapper.hs" rel="noreferrer" target="_blank">https://github.com/BigDataRepu<wbr>blic/hanon/blob/master/src/<wbr>Mapper.hs</a><br>
<br>
where the regex code lives?<br>
<br>
Greetings,<br>
<br>
Bram<br>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div class="m_-1339804150021185441gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><span style="font-family:arial;font-size:small">Sincerely, Stanislav Chernichkin.</span><br></div></div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.<br></blockquote></div><br></div>