Commit db66df3b authored by Alexey Spiridonov's avatar Alexey Spiridonov Committed by Noam Lerner

Add comment about djb2 hash

Summary:
In my tests, using djb2 was much worse for any sizable workload. Just use SpookyHashV2.

Test Plan: comment only

Reviewed By: tudorb@fb.com

Subscribers: trunkagent, folly-diffs@, yfeldblum

FB internal diff: D1906439

Signature: t1:1906439:1426117575:f88b7b28b578092c1716433e21150d423d4e94a7
parent 5333a914
......@@ -426,6 +426,11 @@ public:
return b_[i];
}
// Do NOT use this function, which was left behind for backwards
// compatibility. Use SpookyHashV2 instead -- it is faster, and produces
// a 64-bit hash, which means dramatically fewer collisions in large maps.
// (The above advice does not apply if you are targeting a 32-bit system.)
//
// Works only for Range<const char*> and Range<char*>
uint32_t hash() const {
// Taken from fbi/nstring.h:
......@@ -916,6 +921,7 @@ operator>=(const T& lhs, const U& rhs) {
return StringPiece(lhs) >= StringPiece(rhs);
}
// Do NOT use this, use SpookyHashV2 instead, see commment on hash() above.
struct StringPieceHash {
std::size_t operator()(const StringPiece str) const {
return static_cast<std::size_t>(str.hash());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment