I tried the tests with native compilation (erlc +native json.erl) and found about a 40-50% speedup for binary, and 10-20% for lists (median-mean). Just 10 samples each for this back of the envelope test. So lists went from being over twice as fast to about 1 1/2 times as fast.<br>
<br><div class="gmail_quote">On Tue, Oct 23, 2012 at 2:00 AM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 10/23/2012 10:50 AM, Motiejus Jakštys wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tue, Oct 23, 2012 at 9:07 AM, Martynas Pumputis <<a href="mailto:martynasp@gmail.com" target="_blank">martynasp@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
Could you show the exact steps of your simulation? Binary version should be<br>
faster, because some extra memory allocation is avoided per each iteration<br>
and large binaries aren't being copied.<br>
<br>
Take a look at:<br>
<a href="http://www.erlang.org/doc/efficiency_guide/binaryhandling.html" target="_blank">http://www.erlang.org/doc/<u></u>efficiency_guide/<u></u>binaryhandling.html</a><br>
<br>
</blockquote>
<br>
I tried that last night and was surprised, so will share.<br>
<br>
Benchmark script:<br>
<a href="https://gist.github.com/3937666" target="_blank">https://gist.github.com/<u></u>3937666</a><br>
<br>
Session:<br>
1> t:bench().<br>
Creating str of size 1048576.. done.<br>
Converting to binary.. done.<br>
Executing STR copy 30 times... done.<br>
Executing BIN copy 30 times... done.<br>
BIN: Mean:   139461.1, stdev:   7829.9<br>
STR: Mean:    79089.4, stdev:  53349.0<br>
<br>
No matter how hard I try, I cannot outperform lists.<br>
<br>
R15B02, 32-bit Linux.<br>
</blockquote>
<br></div>
Please try with the module t compiled with the native option.<br>
<br>
Also the answer to "why binary" is generally either "because unicode" or "because memory", not "lol speed". But it would be good if "lol speed" could be improved eventually.<span class="HOEnZb"><font color="#888888"><br>

<br>
-- <br>
Loïc Hoguin<br>
Erlang Cowboy<br>
Nine Nines<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a></font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br>