Advancements in Hash Function Performance: A Comparative Study
The exploration of hash functions highlights a debate between two approaches: using modulo by prime operations and employing custom hash functions like those proposed by Bob Jenkins. The author initially preferred LFSRs or CRCs but ultimately found Jenkins' hash function to be superior. However, upon testing, the author's own modifications to the hash function, which focused on reducing operations per input fragment and utilizing 16-bit processing, resulted in a new hash function that performed significantly better than Jenkins'. This new function was tested and shown to have a good distribution of outputs, and it has gained attention for its efficiency across different architectures. The author also discusses various updates and performance comparisons, emphasizing the importance of understanding the bottlenecks in hash function performance.
What were the initial hashing methods discussed?
The initial methods discussed were LFSRs and CRCs versus modulo by prime operations.
How did the author's new hash function compare to Bob Jenkins' function?
The author's new hash function performed around 66% faster than Bob Jenkins' function when tested on different compilers and architectures.
What improvements were made to the new hash function?
Improvements included processing 16-bit input fragments, reducing operations, and ensuring good output distribution, which contributed to its enhanced performance.