<div dir="ltr">Hi Bram,<div><br></div><div>you might be interested in the “regex” package from my colleague Chris Dornan:</div><div><br></div><div><a href="http://regex.uk/">http://regex.uk/</a><br></div><div><br></div><div>I know some proper performance work still needs to be done, but I would be curious to hear your experience report ;)</div><div><br></div><div>Alfredo</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 19 May 2017 at 18:52, Bram Neijt <span dir="ltr"><<a href="mailto:bneijt@gmail.com" target="_blank">bneijt@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you!<br>
<br>
I already changed to Text instead, but I thought the regex was already<br>
memoized by GHC, so that should not be a problem.<br>
<br>
I'm trying regex-applicative now, maybe that will help, but it takes<br>
some time to figure out the syntax. I'll also try to see if<br>
precompilation helps.<br>
<br>
Greetings,<br>
<br>
Bram<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Fri, May 19, 2017 at 1:17 PM, Станислав Черничкин<br>
<<a href="mailto:schernichkin@gmail.com">schernichkin@gmail.com</a>> wrote:<br>
> Try to use Text or ByteString instead of strings. Try to use compile and<br>
> execute methods<br>
> (<a href="http://hackage.haskell.org/package/regex-tdfa-1.2.1/docs/Text-Regex-TDFA-ByteString.html" rel="noreferrer" target="_blank">http://hackage.haskell.org/<wbr>package/regex-tdfa-1.2.1/docs/<wbr>Text-Regex-TDFA-ByteString.<wbr>html</a>),<br>
> make sure regex get compiled once.<br>
><br>
> 2017-05-16 12:12 GMT+03:00 Bram Neijt <<a href="mailto:bneijt@gmail.com">bneijt@gmail.com</a>>:<br>
>><br>
>> 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/<wbr>BigDataRepublic/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/<wbr>BigDataRepublic/hanon/blob/<wbr>master/src/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-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
>> Only members subscribed via the mailman list are allowed to post.<br>
><br>
><br>
><br>
><br>
> --<br>
> Sincerely, Stanislav Chernichkin.<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.</div></div></blockquote></div><br></div>