On Wed, Nov 19, 2014 at 1:12 AM, David Turner <dturner@xxxxxxxxxxxxxxxx> wrote: >> Or will you go >> with cityhash now.. I ask because you have another sse optimization >> for hashmap on your watchman branch and that could reduce init time >> for name-hash. Name-hash is used often on case-insensitive fs (less >> often on case-sensitive fs). > > Cityhash would be better, because it has actual engineering effort put > into it; what I did on my branch is a hack that happens to work > decently. As the comment notes, I did not spend much effort on tuning > my implementation. Also, Cityhash doesn't require SSE, so it's more > portable. Cityhash looks less appealing to me. For one thing it's C++ so linking to C can't be done. I could add a few "extern "C"" to make it work. But if we plan to support it eventually, cityhash must support C out of the box. Then cityhash does not support case-insensitive hashing. I had to make a CityHash32i version based on CityHash32. It's probably my bugs there, but performance is worse (~120ms) than original hashmap.c (90ms). Enabling sse4.2 helps a bit, but still worse. Using the case-sensitive version in place for memihash and strihash does make cityhash win over hashmap.c, around 50ms (with or without sse4.2). But that's still not as good as your version (~35ms).. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html