<div class="gmail_quote">On Fri, Dec 2, 2011 at 5:59 PM, Craig Silverstein <span dir="ltr"><<a href="mailto:csilvers@google.com">csilvers@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":80i">Here are the updated results, including City64, which is probably a<br>
better candidate here than City128. The data is a little noisy, but<br>
it looks like City64 is faster than Murmur3F starting at<br>
around 8-byte strings.<br>
<br>
Answering another question, Austin said all tests were performed on an<br>
x86_64 machine with gcc 4.6.x, with code compiled via gcc -O2.<br>
Results can differ on different platforms/compilers/etc, making the<br>
choice of a 'best' hash function difficult. Overall, I think either<br>
cityhash or murmurhash would be great choices, and better than what<br>
exists in libc++ now. I don't want to get too bogged down in choosing<br>
between them.<br></div></blockquote></div><br><div>Agreed, but thanks for at least providing a baseline idea of the performance of these routines.</div><div><br></div><div>Based on the data we have, my inclination would be to go with City64 for 64-bit architectures. For 32-bit architectures we could start with an "obvious" port of City64, and potentially improve on it if needed in the future. Let's see what Howard and others have to say though.</div>
<div><br></div><div>Also, I wonder about the code size impact. Any idea there? I'm not certain it would be terribly relevant (hopefully there would be only one copy of it) but it might...</div>