<a name="benchmarks"></a> Benchmarks ---------- The benchmark uses the [Open-Source SMHasher program by Austin Appleby](http://code.google.com/p/smhasher/wiki/SMHasher) compiled with Visual C on Windows Seven 32-bits in single-thread mode. The reference system uses a Core 2 Duo @3.0GHz. | 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](https://github.com/JCash)'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, 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 | <br/> <a name="other-languages"></a> ## Multiple languages The following versions produce xxHash-compatible results in different languages. |Language |Author |URL | |-- |-- |-- | |__Java__ (XXH32) |Adrien Grand |https://github.com/jpountz/lz4-java | |__Java__ (XXH64) |Vsevolod Tolstopyatov|https://github.com/OpenHFT/Zero-Allocation-Hashing | |__Javascript__ (pure) |Pierre Curto |https://npmjs.org/package/xxhashjs | |__Javascript__ (nodeJS) |Brian White |https://npmjs.org/package/xxhash | |__JSX__ (static Javascript)|Yoshiki Shibukawa |https://www.npmjs.org/package/xxhash.jsx | |__C#__ (XXH32) |Seok-ju Yun |https://github.com/noricube/xxHashSharp | |__C#__ (XXH64) |Brandon Dahler |http://www.nuget.org/packages/System.Data.HashFunction.xxHash | |__Python__ (XXH32) |Ewen Cheslack-Postava|https://pypi.python.org/pypi/pyhashxx/ | |__Python__ (XXH64) |Yue Du |https://pypi.python.org/pypi/xxhash/ | |__PHP__ |Nir Heimann |https://github.com/nheimann1/php-xxhash | |__PHP7__ |Craig R Megasaxon |https://github.com/Megasaxon/php-xxhash | |__Perl__ |Sanko Robinson |https://metacpan.org/module/Digest::xxHash | |__Ruby__ (pure) |Justin W Smith |http://rubygems.org/gems/ruby-xxHash | |__Ruby__ (wrapper) |Vasiliy Ermolovich |https://rubygems.org/gems/xxhash | |__Pascal__ |Vojtěch Čihák |http://sourceforge.net/projects/xxhashfpc | |__D__ |Masahiro Nakagawa |https://github.com/repeatedly/xxhash-d | |__Lua__ (binding) |Masatoshi Teruya |https://github.com/mah0x211/lua-xxhash | |__Lua__ (jit) |szensk |https://github.com/szensk/luaxxhash | |__Erlang__ |Pierre Matri |https://github.com/pierresforge/erlang-xxhash | |__Haskell__ |Christian Marie |http://hackage.haskell.org/package/xxhash | |__Go__ (XXH32) |Stéphane Bunel |https://bitbucket.org/StephaneBunel/xxhash-go | |__Go__ (XXH64) |Ahmed Waheed |https://github.com/OneOfOne/xxhash | |__Go + ASM__ |Caleb Spare |https://github.com/cespare/xxhash | |__Rust__ |Jake Goulding |https://libraries.io/cargo/twox-hash | |__PicoLisp__ |Mike Mihailp |https://t.co/86cIjhApmj | |__Elixir__ |Mykola Konyk |https://github.com/ttvd/elixir-xxhash | <br/> <a name="references"></a> ## xxHash is used by #### Databases <div id="xxhashusedby_databases" class="container"> <ul id="icons" class="list-inline"> <li><a href="http://prestodb.io/" ><img src="images/logo50/prestoDB.png" /><span> PrestoDB</span></a></li> <li><a href="https://rocksdb.org/" ><img src="images/logo50/rocksdb.png" /><span> RocksDB</span></a></li> <li><a href="https://www.arangodb.org/" ><img src="images/logo50/arangoDB.png" /><span> ArangoDB</span></a></li> </ul> </div> #### Security <div id="xxhashusedby_security" class="container"> <ul id="icons" class="list-inline"> <li><a href="https://www.pfsense.org/" ><img src="images/logo50/pfsense.png" /><span> pfSense</span></a></li> <li><a href="https://rspamd.com/" ><img src="images/logo50/rspamd.png" /><span> Rspamd</span></a></li> </ul> </div> #### Games <div id="xxhashusedby_games" class="container"> <ul id="icons" class="list-inline"> <li><a href="http://www.cocos2d.org/" ><img src="images/logo50/cocos2D.png" /><span> Cocos2D</span></a></li> <li><a href="http://ppsspp.org/" ><img src="images/logo50/ppsspp.png" /><span> PPSSPP</span></a></li> <li><a href="https://dolphin-emu.org/" ><img src="images/logo50/dolphin.png" /><span> Dolphin</span></a></li> <li><a href="https://www.lwjgl.org/" ><img src="images/logo50/lwjgl.png" /><span> LWJGL</span></a></li> </ul> </div> #### Filters <div id="xxhashusedby_filters" class="container"> <ul id="icons" class="list-inline"> <li><a href="http://www.lz4.org/" ><img src="images/logo50/lz4.png" /><span> LZ4</span></a></li> <li><a href="http://freecode.com/projects/fio/" ><img src="images/logo50/placeholder.png" /><span> fio</span></a></li> <li><a href="https://npmjs.org/package/bloomxx/" ><img src="images/logo50/placeholder.png" /><span> bloomxx</span></a></li> <li><a href="http://devisedbydavid.com/open_source/bloom_filter"><img src="images/logo50/placeholder.png" /><span> C & Python Bloom Filter</span></a></li> <li><a href="https://github.com/mozilla-services/lua_bloom_filter"><img src="images/logo50/mozilla.png" /><span> LUA Bloom Filter</span></a></li> </ul> </div> #### Other <div id="xxhashusedby_other" class="container"> <ul id="icons" class="list-inline"> <li><a href="https://wiki.freebsd.org/pkgng" ><img src="images/logo50/freebsd.png" /><span> PKG</span></a></li> <li><a href="https://www.qemu.org/" ><img src="images/logo50/qemu.png" /><span> Qemu</span></a></li> <li><a href="http://www.teamviewer.com/" ><img src="images/logo50/teamviewer.png" /><span> TeamViewer</span></a></li> <li><a href="http://nvlabs.github.io/nvbio/index.html" ><img src="images/logo50/factor.png" /><span> Factor</span></a></li> <li><a href="http://factorcode.org/" ><img src="images/logo50/nvbio.png" /><span> nVBio</span></a></li> <li><a href="http://pomfort.com/silverstack/" ><img src="images/logo50/silverstack.png" /><span> Silverstack</span></a></li> <li><a href="http://www.lespace.co.jp/file_bl/rapidcopy/rapidcopy.html"><img src="images/logo50/rapidcopy.png" /><span> Rapidcopy</span></a></li> <li><a href="http://dvisvgm.bplaced.net/"> <img src="images/logo50/placeholder.png" /><span> dvisvgm</span></a></li> <li><a href="http://www.fastbuild.org/"> <img src="images/logo50/fastbuild.png" /><span> FastBuild</span></a></li> <li><a href="https://www.hedgeformac.com/"> <img src="images/logo50/syncFactory.png" /><span> Hedge</span></a></li> <li><a href="https://www.dragonflybsd.org/hammer/"> <img src="images/logo50/hammer.png" /><span> Hammer 2</span></a></li> <li><a href="http://keypirinha.com/"> <img src="images/logo50/keypirinha.png" /><span> Keypirinha</span></a></li> </ul> </div> ### Special Thanks to [Takayuki Matsuoka](https://github.com/t-mat/) who created the canvas for this webpage (based on [lz4](http://www.lz4.org/)) ---