commit | 228d727c6c285a8a18f59309e0171fb729504f31 | [log] [tgz] |
---|---|---|
author | Yann Collet <yann.collet.73@gmail.com> | Fri Jun 24 10:23:29 2016 |
committer | GitHub <noreply@github.com> | Fri Jun 24 10:23:29 2016 |
tree | 68df96e937bfa8ccf903e3a7c4e001ca21452bd5 | |
parent | b806ee430d9e68026f4506fdf8e46d38c45cd851 [diff] | |
parent | 81f6843b1a61f10b0e8923dc4442125ad91edb74 [diff] |
Merge pull request #71 from Cyan4973/dev add `XXH*_copyState()` to list for `XXH_NAMESPACE`
xxHash is an Extremely fast Hash algorithm, running at RAM speed limits. It successfully completes the SMHasher test suite which evaluates collision, dispersion and randomness qualities of hash functions.
Branch | Status |
---|---|
master | |
dev |
The benchmark uses SMHasher speed test, compiled with Visual 2010 on a Windows Seven 32-bits box. The reference system uses a Core 2 Duo @3GHz
Name | Speed | Quality | Author |
---|---|---|---|
xxHash | 5.4 GB/s | 10 | Y.C. |
MurmurHash 3a | 2.7 GB/s | 10 | Austin Appleby |
SBox | 1.4 GB/s | 9 | Bret Mulvey |
Lookup3 | 1.2 GB/s | 9 | Bob Jenkins |
CityHash64 | 1.05 GB/s | 10 | Pike & Alakuijala |
FNV | 0.55 GB/s | 5 | Fowler, Noll, Vo |
CRC32 | 0.43 GB/s | 9 | |
MD5-32 | 0.33 GB/s | 10 | Ronald L.Rivest |
SHA1-32 | 0.28 GB/s | 10 |
Q.Score is a measure of quality of the hash function. It depends on successfully passing SMHasher test set. 10 is a perfect score. Algorithms with a score < 5 are not listed on this table.
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. [Mathias Westerdahl]: https://github.com/JCash
SMHasher speed test, compiled using GCC 4.8.2, on 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 project also includes a command line utility, named xxhsum
, offering similar features as md5sum
, thanks to Takayuki Matsuoka contributions.
The library files xxhash.c
and xxhash.h
are BSD licensed. The utility xxhsum
is GPL licensed.
Beyond the C reference version, xxHash is also available on many programming languages, thanks to great contributors. They are listed here.
- The “master” branch is considered stable, at all times.
- The “dev” branch is the one where all contributions must be merged before being promoted to master.
- If you plan to propose a patch, please commit into the “dev” branch, or its own feature branch. Direct commit to “master” are not permitted.