<div dir="ltr">Thanks James. Already checked that.<div><br></div><div style>/Zab</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/8 James Aimonetti <span dir="ltr"><<a href="mailto:james@2600hz.com" target="_blank">james@2600hz.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
You may want to research the widefinder project that Tim Bray did a<br>
while ago; I think there were quite a few submissions in Erlang that<br>
had interesting optimizations for text processing.<br>
<div><div class="h5"><br>
<br>
On 04/08/2013 11:17 AM, Zabrane Mickael wrote:<br>
> Hi guys,<br>
><br>
> I'm facing a nice problem in order to accelerate words search in a<br>
> fairly large file.<br>
><br>
> * Problem: get a list of [{offset, size} | ...]  for each word in a<br>
> text file.<br>
><br>
> * Baseline: For the purpose of the exercise, I'm using an online<br>
> version of  "King James Bible".<br>
><br>
> $ wget <a href="http://printkjv.ifbweb.com/AV_txt.zip" target="_blank">http://printkjv.ifbweb.com/AV_txt.zip</a> $ unzip -a AV_txt.zip<br>
><br>
> $ erl<br>
>> {ok, Bin} = file:read_file("AV1611Bible.txt"). {ok, MP} =<br>
>> re:compile("\\w+"). {match, L} = re:run(Bin, MP, [global]).<br>
>> length(L).<br>
> 839979<br>
><br>
> When timing this version on my machine, I got:<br>
>> timer:tc( fun() -> re:run(Bin, MP, [global]) end ).<br>
><br>
> 2002007 us., which is OK. But can we do better? And how fast we can<br>
> go?<br>
><br>
> The word separators for this problem are: $\s, $\t, $\n, and $\r.<br>
> You can use anything you'd like to accelerate the solution (binary<br>
> matching, os:cmd(), open_port, NIF, LinkedIn driver).<br>
><br>
> The only one constraint is to get back a list of [{offset, size} |<br>
> ...] as a result.<br>
><br>
> Waiting your hacks ... thanks!!!<br>
><br>
> Regards, Zab<br>
><br>
><br>
><br>
</div></div>> _______________________________________________ erlang-questions<br>
> mailing list <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
><br>
<br>
<br>
- --<br>
James Aimonetti<br>
Distributed Systems Engineer / DJ MC_<br>
<br>
2600hz | <a href="http://2600hz.com" target="_blank">http://2600hz.com</a><br>
<a href="mailto:sip%3Ajames@2600hz.com">sip:james@2600hz.com</a><br>
tel: 415.886.7905<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.11 (GNU/Linux)<br>
Comment: Using GnuPG with Thunderbird - <a href="http://www.enigmail.net/" target="_blank">http://www.enigmail.net/</a><br>
<br>
iQEcBAEBAgAGBQJRYo4kAAoJENc77s1OYoGgYX8H/2wgYJGINGrseQpw7gYpuy7W<br>
lAQ2dHBHFUcn2V8kTKBZpCIxC62DRgeuNmJQ6wiHn5KuNonLtUcFSN2Nh2Z2KKNi<br>
TbbOJOJggswpgLK2Cop+pk2+9811x1bhCPDm5cLtrK2m3D8lMjgCLdvycEfbaAd5<br>
oAKZgIJ7PD2syccMoMcyn6UI6Jf0DrEG+U0r6Aiy81rSZv1WqEtzWT1M4rfb6LYO<br>
wFUwPWBhgcDAYUA+6A1I+uaav/IU+lGmQ/gie5ZXHvIbrTl2uD++4fyZU6QKD5Ck<br>
VkJhOO/PPS3XccE5m+tgWm38ZnLiikREiVtOZYQxNA0RCue9Bwoq4B5awy1MgBA=<br>
=jtwl<br>
-----END PGP SIGNATURE-----<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards<br>Zabrane
</div>