Extremely fast non-cryptographic hash algorithm
Go to file
2015-05-04 23:54:55 +02:00
.gitattributes Added : .gitattributes 2014-08-06 20:34:53 +01:00
.travis.yml Moved to xxhsum 2014-09-25 21:22:59 +01:00
LICENSE Added : Travis automated tests 2014-07-10 22:44:08 +02:00
Makefile Added : -Wcast-align compilation option 2014-11-23 00:48:56 +01:00
README.md README: typo. 2015-01-07 23:10:10 +08:00
xxhash.c Fixed : minor -pedantic warnings 2014-12-17 12:35:18 +01:00
xxhash.h minor comment update 2014-12-09 19:16:15 +01:00
xxhsum.c updated some comments 2015-01-01 17:10:04 +01:00

xxHash - Extremely fast hash algorithm

xxHash is an Extremely fast Hash algorithm, running at RAM speed limits. It successfully passes the SMHasher Test suite evaluating Hash quality.

Branch Status
master Build Status
dev Build Status

Benchmarks

The benchmark uses SMHasher speed test, compiled with Visual on a Windows Seven 32 bits system. The reference system uses a Core 2 Duo @3GHz

NameSpeedQ.ScoreAuthor
xxHash5.4 GB/s10Y.C.
MumurHash 3a2.7 GB/s10Austin Appleby
SBox1.4 GB/s9Bret Mulvey
Lookup31.2 GB/s9Bob Jenkins
CityHash641.05 GB/s10Pike & Alakuijala
FNV0.55 GB/s5Fowler, Noll, Vo
CRC320.43 GB/s9
SipHash0.34 GB/s10Jean-Philippe Aumasson
MD5-320.33 GB/s10Ronald L. Rivest
SHA1-320.28 GB/s10

Q.Score is a measure of quality of the hash function. It depends on successfully passing SMHasher test set. 10 is a perfect score.

A new version, XXH64, has been created thanks to Mathias Westerdahl's contribution, which offers superior speed and dispersion for 64-bits systems. Note however that 32-bits applications will still run faster using the 32-bits version.

SMHasher speed test, compiled using GCC 4.8.2, a Linux Mint 64-bits. The reference system uses a Core i5-3340M @2.7GHz

Version Speed on 64-bits Speed on 32-bits
XXH64 13.8 GB/s 1.9 GB/s
XXH32 6.8 GB/s 6.0 GB/s

This is an official mirror of xxHash project, hosted on Google Code. The intention is to offer github's capabilities to xxhash users, such as cloning, branch, pull requests or source download.

The "master" branch will reflect, the status of xxhash at its official homepage. The "dev" branch is the one where all contributions will be merged. If you plan to propose a patch, please commit into the "dev" branch. Direct commit to "master" are not permitted. Feature branches will also exist, typically to introduce new requirements, and be temporarily available for testing before merge into "dev" branch.