xenia/third_party/xxhash
Ben Vanik 988dd19bb6 Adding xxhash. 2014-12-31 19:26:55 -08:00
..
LICENSE Adding xxhash. 2014-12-31 19:26:55 -08:00
Makefile Adding xxhash. 2014-12-31 19:26:55 -08:00
README.md Adding xxhash. 2014-12-31 19:26:55 -08:00
README.xenia Adding xxhash. 2014-12-31 19:26:55 -08:00
xxhash.c Adding xxhash. 2014-12-31 19:26:55 -08:00
xxhash.h Adding xxhash. 2014-12-31 19:26:55 -08:00
xxhsum.c Adding xxhash. 2014-12-31 19:26:55 -08:00

README.md

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, 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.