forget deleting refs, I confused it with another project.  <br><br><div class="gmail_quote">On 4 October 2010 11:17, Lev Walkin <span dir="ltr"><<a href="mailto:vlm@lionet.info">vlm@lionet.info</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: break-word;"><div><br></div><div>In some of my tests there were improvements in the order of single digit percentages. That's a good enough for me to get rid of phashing now(). Don't forget about GC implications of getting now() in and out.</div>

<div><br></div>What do you mean you could delete refs? I believe refs are not better than<div><div><div></div><div class="h5"><br><div><div>On Oct 4, 2010, at 1:44 AM, eF wrote:</div><br><blockquote type="cite">I forked riak from github some time ago substitute erlang:phash2 with make_ref. I did not reveal any significant performance jump ;) <br>

<br>However I agree with you that make_ref just looks better and seems to be more accurate. Actually, no hash is needed (at least in riak_client) because it is used to match on specific messages (to not mix map/reds etc.) and we can easily match on make_ref which is as good as any erlang term.<br>

 <br>My initial motivation was better control over memory (i.e. I could delete refs), but there was no improvement also, so I gave up the idea.  <br><br><br>Michal Zajda<br><br><div class="gmail_quote">On 2 October 2010 16:00, Lev Walkin <span dir="ltr"><<a href="mailto:vlm@lionet.info" target="_blank">vlm@lionet.info</a>></span> wrote:<br>

 <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><br> In riak sources there are many references to erlang:phash2(erlang:now()).<br> <br> Why not use idiomatic make_ref() or at the very least erlang:phash2(make_ref()), which is faster?<br>

 <br> 1> perftest:comprehensive(100000, fun() -> erlang:phash2(erlang:now()) end).<br> Sequential 100000 cycles in ~1 seconds (193510 cycles/s)<br> Parallel 2 100000 cycles in ~1 seconds (187282 cycles/s)<br> Parallel 4 100000 cycles in ~1 seconds (197310 cycles/s)<br>

 Parallel 10 100000 cycles in ~1 seconds (182890 cycles/s)<br> Parallel 100 100000 cycles in ~0 seconds (208671 cycles/s)<br> [197310,182890,208671]<br> 2> perftest:comprehensive(100000, fun() -> erlang:phash2(make_ref()) end).<br>

 Sequential 100000 cycles in ~0 seconds (323952 cycles/s)<br> Parallel 2 100000 cycles in ~0 seconds (301875 cycles/s)<br> Parallel 4 100000 cycles in ~0 seconds (308568 cycles/s)<br> Parallel 10 100000 cycles in ~0 seconds (287875 cycles/s)<br>

 Parallel 100 100000 cycles in ~0 seconds (326416 cycles/s)<br> [308568,287875,326416]<br> 3> perftest:comprehensive(100000, fun() -> make_ref() end).<br> Sequential 100000 cycles in ~0 seconds (1299765 cycles/s)<br>

 Parallel 2 100000 cycles in ~0 seconds (934492 cycles/s)<br> Parallel 4 100000 cycles in ~0 seconds (1111679 cycles/s)<br> Parallel 10 100000 cycles in ~0 seconds (1241434 cycles/s)<br> Parallel 100 100000 cycles in ~0 seconds (1264350 cycles/s)<br>

 [1111679,1241434,1264350]<br> 4><br> <br> make_ref is 6 times faster than erlang:phash2(make_ref()) which is 50% faster than erlang:phash2(now()).<br> <br> Of course, in the grand scheme of things this might not be your biggest bottleneck, but why hashing now() when there exsists an idiomatic make_ref() solution? Am I missing something?<br>

<font color="#888888"> <br> -- <br> Lev Walkin<br> <a href="mailto:vlm@lionet.info" target="_blank">vlm@lionet.info</a><br> <br> _______________________________________________<br> riak-users mailing list<br> <a href="mailto:riak-users@lists.basho.com" target="_blank">riak-users@lists.basho.com</a><br>

 <a href="http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com" target="_blank">http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com</a><br> </font></blockquote></div><br></blockquote></div><br>

</div></div><div> <span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap: break-word;">

<span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap: break-word;">

<div>-- </div><div>vlm</div></div></span></div></span> </div><br></div></div></blockquote></div><br>