- CityHash
-
This article is about the family of hash functions. For the running club, see Hash House Harriers.
CityHash is a family of non-cryptographic hash functions, designed for fast hashing of strings. It has 64-, 128-, and 256-bit variants.
Google developed the algorithm in-house starting in 2010[1]. The C++ source code for the reference implementation of the algorithm was released in 2011 under an MIT license, with credit to Geoff Pike and Jyrki Alakuijala[2]. The authors expect the algorithm to outperform previous work by a factor of 1.3 to 2.5[3], "largely due to higher instruction-level parallelism."[4] CityHash is influenced by and partly based on MurmurHash.[5]
Some particularly fast CityHash functions depend on CRC32 instructions that are present in SSE4.2. Others are designed to be portable, though they will run best on little-endian 64-bit CPUs.[3]
The reference code comments warn that it has not been tested on big-endian platforms.[4]
References
- ^ http://code.google.com/p/cityhash/
- ^ http://google-opensource.blogspot.com/2011/04/introducing-cityhash.html
- ^ a b http://code.google.com/p/cityhash/source/browse/trunk/README
- ^ a b http://code.google.com/p/cityhash/source/browse/trunk/src/city.h
- ^ http://code.google.com/p/cityhash/source/browse/trunk/src/city.cc
External links
- Official site
- Introducing CityHash, Announcement by Google
Categories:- Hash functions
Wikimedia Foundation. 2010.