Extremely fast non-cryptographic hash algorithm
Go to file
2014-07-19 11:05:20 +02:00
.travis.yml Added : Travis automated tests 2014-07-10 22:44:08 +02:00
bench.c Makefile : added -Wstrict-prototype 2014-07-15 18:37:36 +01:00
LICENSE Added : Travis automated tests 2014-07-10 22:44:08 +02:00
Makefile Makefile : added -Wstrict-prototype 2014-07-15 18:37:36 +01:00
README.md Fix Travis CI URLs 2014-07-17 20:05:37 +09:00
xxhash.c Fixed : issue 18 (null input pointer) 2014-07-14 16:54:56 +01:00
xxhash.h Fixed : issue 18 (null input pointer) 2014-07-14 16:54:56 +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 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, or source download.

The "master" branch will reflect, the status of xxHash at its official homepage. Other branches will also exist, typically to fix some open issues or new requirements, and be available for testing before merge into master.