Yo,
Fwiw, I use mc-crusher as the "official" benchmark:
https://github.com/memcached/mc-crusher tho I need to update the README
slightly. will do that in a bit.
I also test on hardware uninterrupted by other things with turbo disabled
:) testing on laptops can be really tough since you'll get different
frequencies minute to minute. You have to interleave test runs A/B/A/B/A/B
then average to get through the noise.
Also, make sure to test both binprot/ascii. with ascii multiget you can
deeply pipeline requests and get more hashing vs syscalls.
Also, test short vs long keys. a for loop and some scripting should get
you there. :)
I don't really want to add a ton of algo's. More or less a "best average"
is fine. Given the syscall overhead, hashing is barely measurable for a
lot of workloads. When I switched from jenkins to murmur I did a
somewhat comprehensive set of tests then swapped default + left old one
in just in case. I highly value good defaults! Libmemcached ended up
kitchen-sinking hash algo's and I think that didn't work out well in the
long run.
I did also test hash chain bucket depth a bit. Finally, loading up
different counts of keys (1m, 10m, 100m, etc) and re-running uniform
random benchmarks since fairness will affect the bucket depth and thus
latency.
Sorry if that's a pain in the ass, but this thing is quite widely used and
there aren't really beta testers :) Have to be thorough these days.
-Dormando