<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style>BODY{font:10pt Tahoma, Verdana, sans-serif}</style></head><body>
Hi Michael,<div><br></div><div>Yes, Funs will give overhead. Badly chosen example code on my part.</div><div><br></div><div>But still the rev2 example is on my machine still twice or trice as slow (YMMV) than a list:reverse. </div><div><br></div><div>I want to see what can be done to bring a binary reverse on par with a list reverse. I would, naïvely, expect a binary reverse to be faster than a erlang list reverse.</div><div><br></div><div>Regards,</div><div><br></div><div>Ward</div><div><br></div><div><br><blockquote style="padding-left: 5px; margin-left: 5px; border-left: #0000ff 2px solid; margin-right: 0px"><hr><b>From:</b> Michael Uvarov [mailto:freeakk@gmail.com]<br><b>To:</b> Ward Bekker [mailto:ward@tty.nl]<br><b>Sent:</b> Thu, 27 Oct 2011 10:33:12 +0200<br><b>Subject:</b> Re: [erlang-questions] Fast binary reverse<br><br>Just don't use anonymous functions.<br>
<br>
<code><br>
-module(bin).<br>
-export([rev1/1, rev2/1]).<br>
<br>
<br>
rev1(B) -><br>
    S = size(B)*8,<br>
    <<X:S/integer-little>>=B,<br>
    <<X:S/integer-big>>.<br>
<br>
rev2(B) -><br>
    binary:list_to_bin(<br>
        lists:reverse(<br>
            binary:bin_to_list(B))).<br>
</code><br>
<br>
<br>
29>  timer:tc(bin,rev2,[<<"teribly">>]).<br>
{5,<<"ylbiret">>}<br>
30>  timer:tc(bin,rev1,[<<"teribly">>]).<br>
{11,<<"ylbiret">>}<br>
<br>
--<br>
Best regards,<br>
Uvarov Michael<br>
</blockquote><style>
</style>
</div></body></html>