I have heard that, for example, MurmurHash2 is not "incremental" but MurmurHash3 is incremental. What does this mean? And why is it useful?
相关问题
- facebook error invalid key hash for some devices
- Character.getNumericvalue in char Frequency table
- Change first key of multi-dimensional Hash in perl
- Why is the table attribute of Hashtable serialized
- Bool.hashValue valid to convert to Int?
相关文章
- Bcrypt vs Hash in laravel
- What is the fastest way to map group names of nump
- Finding out whether there exist two identical subs
- Oracle STANDARD_HASH not available in PLSQL?
- Looking for a fast hash-function
- Python: Is there any reason *not* to cache an obje
- C# how to calculate hashcode from an object refere
- How Docker calculates the hash of each layer? Is i
http://www.cs.berkeley.edu/~daw/papers/inchash-cs06.pdf
They're useful due to the fact that they're easier to compute and therefore less expensive in terms of computing power and time.
However they're not suited to every situation. That paper from Berkeley has some nice examples of when they can be useful in the Introduction section.
I'm not an expert on this, but I think MurmurHash3 is not incremental in the sense tommarshall describes.
When people describe it as incremental they probably mean that you can compute hash of a stream in O(1) memory, i.e. you can have an API that let you do the following (in pseudocode):
and that would produce a hash of string "hello world" without keeping the whole string in memory at any point in time.
In particular, the imurmurhash-js javascript package seems to use the word 'incremental' in that meaning.
Same meaning seems to be used in MetroHash docs.