Back to root page: http://www.sanmayce.com/ Section 'TRIADvsCRC': www.sanmayce.com/Fastest_Hash/index.html#TRIADvsCRC Section 'GAMERA': www.sanmayce.com/Fastest_Hash/index.html#GAMERA
Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 4584 clocks or 14.297MB per clock BURST_Read_3DWORDS: (64MB block); 65536MB fetched in 4645 clocks or 14.109MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 5623 clocks or 11.655MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 6212 clocks or 10.550MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 5329 clocks or 12.298MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 37555 clocks or 1.745MB per clock Fetching/Hashing a 10MB block 8*1024 times ... BURST_Read_4DWORDS: (10MB block); 81920MB fetched in 4726 clocks or 17.334MB per clock BURST_Read_3DWORDS: (10MB block); 81920MB fetched in 4850 clocks or 16.891MB per clock FNV1A_YoshimitsuTRIAD: (10MB block); 81920MB hashed in 6363 clocks or 12.874MB per clock FNV1A_Yorikke: (10MB block); 81920MB hashed in 7173 clocks or 11.421MB per clock FNV1A_Yoshimura: (10MB block); 81920MB hashed in 6121 clocks or 13.383MB per clock CRC32_SlicingBy8K2: (10MB block); 81920MB hashed in 46394 clocks or 1.766MB per clock Fetching/Hashing a 5MB block 8*1024 times ... BURST_Read_4DWORDS: (5MB block); 40960MB fetched in 2046 clocks or 20.020MB per clock BURST_Read_3DWORDS: (5MB block); 40960MB fetched in 2091 clocks or 19.589MB per clock FNV1A_YoshimitsuTRIAD: (5MB block); 40960MB hashed in 2877 clocks or 14.237MB per clock FNV1A_Yorikke: (5MB block); 40960MB hashed in 3333 clocks or 12.289MB per clock FNV1A_Yoshimura: (5MB block); 40960MB hashed in 2929 clocks or 13.984MB per clock CRC32_SlicingBy8K2: (5MB block); 40960MB hashed in 22909 clocks or 1.788MB per clock Fetching/Hashing a 2MB block 32*1024 times ... BURST_Read_4DWORDS: (2MB block); 65536MB fetched in 3207 clocks or 20.435MB per clock BURST_Read_3DWORDS: (2MB block); 65536MB fetched in 3296 clocks or 19.883MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 4554 clocks or 14.391MB per clock FNV1A_Yorikke: (2MB block); 65536MB hashed in 5285 clocks or 12.400MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 4630 clocks or 14.155MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 36538 clocks or 1.794MB per clock Fetching/Hashing a 128KB block 512*1024 times ... BURST_Read_4DWORDS: (128KB block); 65536MB fetched in 2433 clocks or 26.936MB per clock BURST_Read_3DWORDS: (128KB block); 65536MB fetched in 2627 clocks or 24.947MB per clock FNV1A_YoshimitsuTRIAD: (128KB block); 65536MB hashed in 4388 clocks or 14.935MB per clock FNV1A_Yorikke: (128KB block); 65536MB hashed in 5163 clocks or 12.693MB per clock FNV1A_Yoshimura: (128KB block); 65536MB hashed in 4553 clocks or 14.394MB per clock CRC32_SlicingBy8K2: (128KB block); 65536MB hashed in 36238 clocks or 1.808MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 1968 clocks or 33.301MB per clock BURST_Read_3DWORDS: (16KB block); 65536MB fetched in 2600 clocks or 25.206MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 4393 clocks or 14.918MB per clock FNV1A_Yorikke: (16KB block); 65536MB hashed in 5126 clocks or 12.785MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 4551 clocks or 14.400MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 36227 clocks or 1.809MB per clockThe above dump was made with HASH_linearspeed_Yoshimura.zip package, please share your 'Results.txt'.
FNV1A_YoshimitsuTRIADii: KT_DumpCounter = 0,000,134,217,729; 000,000,001 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,050,530,128 CRC32 0x8F6E37A0, iSCSI: KT_DumpCounter = 0,000,134,217,729; 000,000,004 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,049,561,215 ... FNV1A_YoshimitsuTRIADii: KT_DumpCounter = 1,000,056,291,329; 000,000,001 x MAXcollisionsAtSomeSlots = 007,930; HASHfreeSLOTS = 0,000,000,000 CRC32 0x8F6E37A0, iSCSI: KT_DumpCounter = 1,000,056,291,329; 000,000,002 x MAXcollisionsAtSomeSlots = 007,910; HASHfreeSLOTS = 0,000,000,000 So, 'TRISMUS' rev. E says: For 1,000,056,291,329:134,217,727 = 7,451:1 ratio the DFTID (deviation-from-the-ideal-dispersion) is: DFTID = (MAX_depthness-(NumberOfKeys+1)/Slots) / ((NumberOfKeys+1)/Slots) * 100% or FNV1A_YoshimitsuTRIADii's DFTID = (7,930-7,451)/7,451*100% = 6.4%Thanks to m^2 some results obtained on AMCC 440EPX (aka. sequoia) with his benchmarking package come here: On PowerPC 440 'FNV1a-YoshimitsuTRIAD' slashes MUTSI, it is written well as if I knew what I was doing, he-he.
PPC440EPx Features PowerPC 440 Processor The PowerPC 440 processor is designed for high-end applications: RAID controllers, SAN, iSCSI, routers, switches, printers, set-top boxes, etc. It implements the Book E PowerPC embedded architecture and uses the 128-bit version of IBM's on-chip CoreConnect Bus Architecture. Features include: * Up to 667MHz operation * PowerPC Book E architecture * 32KB I-cache, 32KB D-cache - UTLB Word Wide parity on data and tag address parity with exception force * Three logical regions in D-cache: locked, transient, normal * D-cache full line flush capability * 41-bit virtual address, 36-bit (64GB) physical address * Superscalar, out-of-order execution * 7-stage pipeline * 3 execution pipelines * Dynamic branch prediction * Memory management unit - 64-entry, full associative, unified TLB with optional parity - Separate instruction and data micro-TLBs - Storage attributes for write-through, cache-inhibited, guarded, and big or little endian * Debug facilities - Multiple instruction and data range breakpoints - Data value compare - Single step, branch, and trap events - Non-invasive real-time trace interface * 24 DSP instructions - Single cycle multiply and multiply-accumulate - 32 x 32 integer multiply - 16 x 16 -> 32-bit MAC System: cpu 440EPX clock 666.666670MHz platform PowerPC 44x Platform model amcc,sequoia Memory 255 MB Software: switches fsbench 0.14.2 s400 -i3 -c -o200 gcc 4.4.6 -O3 -fno-tree-vectorize Data: 16 KB of random data Codec: Speed (MB/s) Speed (ticks/B) FNV1a-YoshimitsuTRIAD 1122.19 0.57 FNV1a-Yoshimura 1078.13 0.59 FNV1a-Yorikke 1072.76 0.59 fletcher2 763.72 0.83 FNV1a-Jesteress 690.14 0.92 xxhash 580.14 1.10 xxhash256 490.96 1.29 murmur3_x86_128 380.91 1.67 CityHash32 339.51 1.87 SpookyHash 255.89 2.48 fletcher4 226.00 2.81 CityHash64 179.86 3.53 murmur3_x64_128 177.91 3.57 CityHash128 162.04 3.92 murmur3_x86_32 146.97 4.33 Software: switches fsbench 0.14.2 -i10 -s1000 gcc 4.4.6 -O3 -fno-tree-vectorize Data: tar of scc files trimmed to 1 MB each Codec Speed (MB/s) Speed (ticks/B) FNV1a-YoshimitsuTRIAD 219.66 2.89 FNV1a-Yorikke 216.21 2.94 FNV1a-Yoshimura 204.94 3.10 fletcher2 203.59 3.12 xxhash256 193.37 3.29 FNV1a-Jesteress 193.37 3.29 xxhash 184.26 3.45 murmur3_x86_128 164.06 3.88 CityHash32 157.60 4.03 uhash 149.14 4.26 CityHash64 134.46 4.73 SpookyHash 134.46 4.73 fletcher4 127.17 5.00 CityHash128 111.01 5.73 murmur3_x64_128 109.50 5.81 murmur3_x86_32 96.70 6.58 vhash 76.79 8.28Also, he did an interesting speed test on ARM Cortex-A8:
Cortex-A8 Features NEON: 128-bit SIMD engine enables high performance media processing. Using NEON for some Audio, Video, and Graphics workloads eases the burden of supporting more dedicated accelerators across the SoC and enables the system to support the standards of tomorrow Optimized Level 1 cache: The Level 1 cache is integrated tightly into the processor with a single-cycle access time. The caches combine minimal access latency with hash way determination to maximize performance and minimize power consumption. Integrated Level 2 cache: The Level 2 cache, integrated into the core, provides ease of integration, power efficiency, and optimal performance. Built using standard compiled RAMs, the cache is configurable from 0K - 1MB. The cache can be built using compiled memories and has programmable delay to accommodate different array characteristics Thumb-2 Technology: Delivers the peak performance of traditional ARM code while also providing up to a 30% reduction in memory required to store instructions. Dynamic Branch Prediction: To minimize branch wrong prediction penalties, the dynamic branch predictor achieves 95% accuracy across a wide range of industry benchmarks. The Predictor is enabled by branch target and global history buffers. The replay mechanism minimizes miss-predict penalty. Memory Management Unit: A full MMU enables the Cortex-A8 to run rich operating systems in a variety of Applications Jazelle-RCT Technology: RCT Java-acceleration technology to optimize Just In Time (JIT) and Dynamic Adaptive Compilation (DAC), and reduce memory footprint by up to three times Memory System: Optimized for power-efficiency and high-performance. Hash array in the L1 cache limits activation of the memories to when they are likely to be needed. Direct interface between the integrated, configurable L2 cache and the NEON media unit for data streaming. Banked L2 cache design that enables only one bank at a time. Support for multiple outstanding transactions to the L3 memory to fully utilize the CPU. CortexA8 1 thread @720 Mhz L1 cache Codec Speed (MB/s) Ticks/B FNV1a-YoshimitsuTRIAD 1021.79 0.67 FNV1a-Yoshimura 989.00 0.69 FNV1a-Yorikke 988.45 0.69 fletcher2 834.93 0.82 FNV1a-Jesteress 682.55 1.01 xxhash 520.19 1.32 fletcher4 389.82 1.76 xxhash256 354.69 1.94 murmur3_x86_128 303.36 2.26 SpookyHash 229.25 3.00 murmur3_x86_32 136.94 5.01 murmur3_x64_128 133.48 5.14 uhash 121.58 5.65 vhash 113.45 6.05 CityHash32 84.42 8.13 CityHash128 82.57 8.32 CityHash64 79.14 8.68I hope m^2 to continue his quest on different platforms, it will be beneficial for many coders.
D:\_KAZE\HASH_linearspeed_FURY_Intel_32bit_64bit_PENUMBRA>dir Directory of D:\_KAZE\HASH_linearspeed_FURY_Intel_32bit_64bit_PENUMBRA 06/16/2013 04:21 PM 172,850 HASH_linearspeed_FURY.c 06/16/2013 04:21 PM 1,535,862 HASH_linearspeed_FURY_Intel_64bit_12.cod 06/16/2013 04:21 PM 135,168 HASH_linearspeed_FURY_Intel_64bit_12.exe 06/16/2013 04:21 PM 4,812 HASH_linearspeed_FURY_Intel_64bit_12_XXHASH256_mainloop.cod.txt 06/16/2013 04:21 PM 1,637,166 HASH_linearspeed_FURY_Intel_IA-32_12.cod 06/16/2013 04:21 PM 124,416 HASH_linearspeed_FURY_Intel_IA-32_12.exe 06/16/2013 04:21 PM 6,771 HASH_linearspeed_FURY_Intel_IA-32_12_PENUMBRA_mainloop.cod.txt 06/16/2013 04:21 PM 314 KAZE_compile_Intel32.bat 06/16/2013 04:21 PM 314 KAZE_compile_Intel64.bat 06/16/2013 04:21 PM 6,833 RESULTS_T7500.TXT 06/16/2013 04:21 PM 109 RUNME.bat 06/16/2013 04:21 PM 1,590 Yorikke prompt.lnk D:\_KAZE\HASH_linearspeed_FURY_Intel_32bit_64bit_PENUMBRA>RUNME.bat D:\_KAZE\HASH_linearspeed_FURY_Intel_32bit_64bit_PENUMBRA>HASH_linearspeed_FURY_Intel_IA-32_12.exe1>RESULTS.TXT D:\_KAZE\HASH_linearspeed_FURY_Intel_32bit_64bit_PENUMBRA>HASH_linearspeed_FURY_Intel_64bit_12.exe1>>RESULTS.TXT The 64bit results, HASH_linearspeed_FURY_Intel_64bit_12.exe: Memory pool starting address: 00000000005A0080 ... 64 byte aligned, OK Info1: One second seems to have 998 clocks. Info2: This CPU seems to be working at 2,191 MHz. Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... XXH_256: (64MB block); 65536MB hashed in 15975 clocks or 4.102MB/4.099MB per clock FNV1A_penumbra: (64MB block); 65536MB hashed in 14710 clocks or 4.455MB/4.517MB per clock FNV1A_YoshimitsuTRIADiiXMM: (64MB block); 65536MB hashed in 13900 clocks or 4.715MB/4.763MB per clock FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 14680 clocks or 4.464MB/4.488MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 16130 clocks or 4.063MB/4.055MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 14867 clocks or 4.408MB/4.418MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71261 clocks or 0.920MB/0.920MB per clock Fetching/Hashing a 2MB block 32*1024 times ... XXH_256: (2MB block); 65536MB hashed in 6022 clocks or 10.883MB/10.883MB per clock FNV1A_penumbra: (2MB block); 65536MB hashed in 6380 clocks or 10.272MB/10.272MB per clock FNV1A_YoshimitsuTRIADiiXMM: (2MB block); 65536MB hashed in 6786 clocks or 9.658MB/ 9.703MB per clock FNV1A_YoshimitsuTRIADii: (2MB block); 65536MB hashed in 10374 clocks or 6.317MB/ 6.279MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 10576 clocks or 6.197MB/ 6.215MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 10935 clocks or 5.993MB/ 5.942MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 68125 clocks or 0.962MB/ 0.962MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... XXH_256: (16KB block); 65536MB hashed in 6037 clocks or 10.856MB/10.941MB per clock FNV1A_penumbra: (16KB block); 65536MB hashed in 5991 clocks or 10.939MB/10.941MB per clock FNV1A_YoshimitsuTRIADiiXMM: (16KB block); 65536MB hashed in 6021 clocks or 10.885MB/10.883MB per clock FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 9469 clocks or 6.921MB/ 6.921MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 10250 clocks or 6.394MB/ 6.384MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 9937 clocks or 6.595MB/ 6.595MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 67595 clocks or 0.970MB/ 0.970MB per clock The 32bit results, HASH_linearspeed_FURY_Intel_IA-32_12.exe: Memory pool starting address: 00AC0040 ... 64 byte aligned, OK Info1: One second seems to have 998 clocks. Info2: This CPU seems to be working at 2,191 MHz. Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... XXH_256: (64MB block); 65536MB hashed in 35787 clocks or 1.831MB/1.831MB per clock FNV1A_penumbra: (64MB block); 65536MB hashed in 14445 clocks or 4.537MB/4.581MB per clock FNV1A_YoshimitsuTRIADiiXMM: (64MB block); 65536MB hashed in 14056 clocks or 4.662MB/4.752MB per clock FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 14773 clocks or 4.436MB/4.488MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 16115 clocks or 4.067MB/4.087MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 14914 clocks or 4.394MB/4.436MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71573 clocks or 0.916MB/0.916MB per clock Fetching/Hashing a 2MB block 32*1024 times ... XXH_256: (2MB block); 65536MB hashed in 33212 clocks or 1.973MB/ 1.972MB per clock FNV1A_penumbra: (2MB block); 65536MB hashed in 6568 clocks or 9.978MB/10.025MB per clock FNV1A_YoshimitsuTRIADiiXMM: (2MB block); 65536MB hashed in 7316 clocks or 8.958MB/ 8.976MB per clock FNV1A_YoshimitsuTRIADii: (2MB block); 65536MB hashed in 9750 clocks or 6.722MB/ 6.854MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 9750 clocks or 6.722MB/ 6.722MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 10311 clocks or 6.356MB/ 6.483MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 69763 clocks or 0.939MB/ 0.940MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... XXH_256: (16KB block); 65536MB hashed in 33415 clocks or 1.961MB/ 1.957MB per clock FNV1A_penumbra: (16KB block); 65536MB hashed in 5819 clocks or 11.262MB/11.293MB per clock !!! Giga Shadow !!! FNV1A_YoshimitsuTRIADiiXMM: (16KB block); 65536MB hashed in 6973 clocks or 9.399MB/ 9.399MB per clock FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 8908 clocks or 7.357MB/ 7.370MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 8986 clocks or 7.293MB/ 7.294MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 9688 clocks or 6.765MB/ 6.754MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 69467 clocks or 0.943MB/ 0.949MB per clockWhat can I say, despite the hiccup (in L2 64bit results) 'PENUMBRA' overshadows everything up to 2013-Jun-16, no?
// FNV1A_YoshimitsuTRIADiiXMMx2 (revision 2 of FNV1A_YoshimitsuTRIADiiXMM, just unrolled once) aka FNV1A_penumbra, copyleft 2013-Jun-15 Kaze. // PENUMBRA: Any partial shade or shadow round a thing; a surrounding area of uncertain extent (lit. & fig.). [mod. Latin, from Latin paene almost + umbra shadow.] // // Hoy en mi ventana brilla el sol / The sun shines through my window today // Y el corazón se pone triste contemplando la ciudad / And my heart feels sad while contemplating the city // Porque te vas / Because you are leaving // Como cada noche desperté pensando en ti / Just like every night, I woke up thinking of you // Y en mi reloj todas las horas vi pasar / And I saw as all the hours passed by in my clock // Porque te vas / Because you are leaving // Todas las promesas de mi amor se irán contigo / All my love promises will be gone with you // Me olvidaras, me olvidaras / You will forget me, you will forget me // Junto a la estación lloraré igual que un niño / Next to the station I will cry like a child // Porque te vas, porque te vas / Because you are leaving, because you are leaving // Bajo la penumbra de un farol se dormirán / Under the shadow of a street lamp they will sleep // Todas las cosas que quedaron por decir se dormirán / All the things left unsaid will sleep there // Junto a las manillas de un reloj esperarán / They will wait next to a clock's hands // Todas las horas que quedaron por vivir esperarán / They will wait for all those hours that we had yet to live // /J[e]anette - 'Porque te vas' lyrics/ // // Many dependencies, many mini-goals, many restrictions... Blah-blah-blah... // Yet in my amateurish view the NIFTIEST HT lookups function emerged, it is FNV1A_YoshimitsuTRIADii. // Main feature: general purpose HT lookups function targeted as 32bit code and 32bit stamp, superfast for 'any length' keys, escpecially useful for text messages. // //#include <emmintrin.h> //SSE2 //#include <smmintrin.h> //SSE4.1 //#include <immintrin.h> //AVX #define xmmload(p) _mm_load_si128((__m128i const*)(p)) #define xmmloadu(p) _mm_loadu_si128((__m128i const*)(p)) #define _rotl_KAZE128(x, n) _mm_or_si128(_mm_slli_si128(x, n) , _mm_srli_si128(x, 128-n)) #define _rotl_KAZE32(x, n) (((x) << (n)) | ((x) >> (32-(n)))) #define XMM_KAZE_SSE2 // For better mixing the above 'define' should be commented while the next one uncommented! //#define XMM_KAZE_SSE4 uint32_t FNV1A_penumbra(const char *str, uint32_t wrdlen) { const uint32_t PRIME = 709607; uint32_t hash32 = 2166136261; uint32_t hash32B = 2166136261; uint32_t hash32C = 2166136261; const char *p = str; uint32_t Loop_Counter; uint32_t Second_Line_Offset; #if defined(XMM_KAZE_SSE2) || defined(XMM_KAZE_SSE4) || defined(XMM_KAZE_AVX) __m128i xmm0; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm1; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm2; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm3; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm4; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm5; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm0nd; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm1nd; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm2nd; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm3nd; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm4nd; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i xmm5nd; // Defined for clarity: No need of defining it, the compiler sees well and uses no intermediate. __m128i hash32xmm = _mm_set1_epi32(2166136261); __m128i hash32Bxmm = _mm_set1_epi32(2166136261); __m128i hash32Cxmm = _mm_set1_epi32(2166136261); __m128i PRIMExmm = _mm_set1_epi32(709607); #endif #if defined(XMM_KAZE_SSE2) || defined(XMM_KAZE_SSE4) || defined(XMM_KAZE_AVX) if (wrdlen >= 2*4*24) { // Actually 2*4*24 is the minimum and not useful, 200++ makes more sense. Loop_Counter = (wrdlen/(2*4*24)); Loop_Counter++; Second_Line_Offset = wrdlen-(Loop_Counter)*(2*4*3*4); for(; Loop_Counter; Loop_Counter--, p += 2*4*3*sizeof(uint32_t)) { xmm0 = xmmloadu(p+0*16); xmm1 = xmmloadu(p+0*16+Second_Line_Offset); xmm2 = xmmloadu(p+1*16); xmm3 = xmmloadu(p+1*16+Second_Line_Offset); xmm4 = xmmloadu(p+2*16); xmm5 = xmmloadu(p+2*16+Second_Line_Offset); xmm0nd = xmmloadu(p+3*16); xmm1nd = xmmloadu(p+3*16+Second_Line_Offset); xmm2nd = xmmloadu(p+4*16); xmm3nd = xmmloadu(p+4*16+Second_Line_Offset); xmm4nd = xmmloadu(p+5*16); xmm5nd = xmmloadu(p+5*16+Second_Line_Offset); #if defined(XMM_KAZE_SSE2) hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0nd,5) , xmm1nd)) , PRIMExmm); hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3nd,5) , xmm2nd)) , PRIMExmm); hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4nd,5) , xmm5nd)) , PRIMExmm); #else hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); hash32Bxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); hash32Cxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0nd,5) , xmm1nd)) , PRIMExmm); hash32Bxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3nd,5) , xmm2nd)) , PRIMExmm); hash32Cxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4nd,5) , xmm5nd)) , PRIMExmm); #endif } #if defined(XMM_KAZE_SSE2) hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , hash32Bxmm) , PRIMExmm); hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , hash32Cxmm) , PRIMExmm); #else hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , hash32Bxmm) , PRIMExmm); hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , hash32Cxmm) , PRIMExmm); #endif hash32 = (hash32 ^ hash32xmm.m128i_u32[0]) * PRIME; hash32B = (hash32B ^ hash32xmm.m128i_u32[3]) * PRIME; hash32 = (hash32 ^ hash32xmm.m128i_u32[1]) * PRIME; hash32B = (hash32B ^ hash32xmm.m128i_u32[2]) * PRIME; } else if (wrdlen >= 24) #else if (wrdlen >= 24) #endif { Loop_Counter = (wrdlen/24); Loop_Counter++; Second_Line_Offset = wrdlen-(Loop_Counter)*(3*4); for(; Loop_Counter; Loop_Counter--, p += 3*sizeof(uint32_t)) { hash32 = (hash32 ^ (_rotl_KAZE32(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+0+Second_Line_Offset))) * PRIME; hash32B = (hash32B ^ (_rotl_KAZE32(*(uint32_t *)(p+4+Second_Line_Offset),5) ^ *(uint32_t *)(p+4))) * PRIME; hash32C = (hash32C ^ (_rotl_KAZE32(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+8+Second_Line_Offset))) * PRIME; } hash32 = (hash32 ^ _rotl_KAZE32(hash32C,5) ) * PRIME; } else { // 1111=15; 10111=23 if (wrdlen & 4*sizeof(uint32_t)) { hash32 = (hash32 ^ (_rotl_KAZE32(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+4))) * PRIME; hash32B = (hash32B ^ (_rotl_KAZE32(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+12))) * PRIME; p += 8*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7,...,15 if (wrdlen & 2*sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint32_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint32_t*)(p+4)) * PRIME; p += 4*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint16_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint16_t*)(p+2)) * PRIME; p += 2*sizeof(uint16_t); } if (wrdlen & sizeof(uint16_t)) { hash32 = (hash32 ^ *(uint16_t*)p) * PRIME; p += sizeof(uint16_t); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; } hash32 = (hash32 ^ _rotl_KAZE32(hash32B,5) ) * PRIME; return hash32 ^ (hash32 >> 16); } /* Main loop, 345a-334e+1+7= 276 bytes, using SSE4: ; mark_description "Intel(R) C++ Compiler XE for applications running on IA-32, Version 12.1.1.258 Build 20111011"; ; mark_description "-Ox -TcHASH_linearspeed_FURY.c -FaHASH_linearspeed_FURY_Intel_IA-32_12 -FAcs"; ;;; for(; Loop_Counter; Loop_Counter--, p += 2*4*3*sizeof(uint32_t)) { 03346 85 d2 test edx, edx 03348 0f 84 14 01 00 00 je .B5.6 .B5.4: ;;; xmm0 = xmmloadu(p+0*16); 0334e f3 0f 6f 09 movdqu xmm1, XMMWORD PTR [ecx] ;;; xmm1 = xmmloadu(p+0*16+Second_Line_Offset); ;;; xmm2 = xmmloadu(p+1*16); ;;; xmm3 = xmmloadu(p+1*16+Second_Line_Offset); 03352 f3 0f 6f 7c 19 10 movdqu xmm7, XMMWORD PTR [16+ecx+ebx] ;;; xmm4 = xmmloadu(p+2*16); 03358 f3 0f 6f 69 20 movdqu xmm5, XMMWORD PTR [32+ecx] ;;; xmm5 = xmmloadu(p+2*16+Second_Line_Offset); ;;; xmm0nd = xmmloadu(p+3*16); 0335d f3 0f 6f 61 30 movdqu xmm4, XMMWORD PTR [48+ecx] ;;; xmm1nd = xmmloadu(p+3*16+Second_Line_Offset); ;;; xmm2nd = xmmloadu(p+4*16); ;;; xmm3nd = xmmloadu(p+4*16+Second_Line_Offset); ;;; xmm4nd = xmmloadu(p+5*16); ;;; xmm5nd = xmmloadu(p+5*16+Second_Line_Offset); ;;; #if defined(XMM_KAZE_SSE2) ;;; hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); ;;; hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); ;;; hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); ;;; hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0nd,5) , xmm1nd)) , PRIMExmm); ;;; hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3nd,5) , xmm2nd)) , PRIMExmm); ;;; hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4nd,5) , xmm5nd)) , PRIMExmm); ;;; #else ;;; hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); 03362 66 0f 6f d1 movdqa xmm2, xmm1 03366 66 0f 73 fa 05 pslldq xmm2, 5 0336b 66 0f 73 d9 7b psrldq xmm1, 123 03370 66 0f eb d1 por xmm2, xmm1 03374 f3 0f 6f 0c 19 movdqu xmm1, XMMWORD PTR [ecx+ebx] 03379 66 0f ef d1 pxor xmm2, xmm1 ;;; hash32Bxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); 0337d 66 0f 6f cf movdqa xmm1, xmm7 03381 66 0f 73 f9 05 pslldq xmm1, 5 03386 66 0f ef f2 pxor xmm6, xmm2 0338a 66 0f 73 df 7b psrldq xmm7, 123 0338f 66 0f eb cf por xmm1, xmm7 03393 f3 0f 6f 79 10 movdqu xmm7, XMMWORD PTR [16+ecx] 03398 66 0f ef cf pxor xmm1, xmm7 ;;; hash32Cxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); 0339c 66 0f 6f fd movdqa xmm7, xmm5 033a0 66 0f 73 ff 05 pslldq xmm7, 5 033a5 66 0f ef d9 pxor xmm3, xmm1 033a9 66 0f 73 dd 7b psrldq xmm5, 123 033ae 66 0f eb fd por xmm7, xmm5 033b2 f3 0f 6f 6c 19 20 movdqu xmm5, XMMWORD PTR [32+ecx+ebx] ;;; hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0nd,5) , xmm1nd)) , PRIMExmm); ;;; hash32Bxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3nd,5) , xmm2nd)) , PRIMExmm); 033b8 f3 0f 6f 4c 19 40 movdqu xmm1, XMMWORD PTR [64+ecx+ebx] 033be 66 0f ef fd pxor xmm7, xmm5 033c2 66 0f 6f ec movdqa xmm5, xmm4 033c6 66 0f 73 fd 05 pslldq xmm5, 5 033cb 66 0f ef c7 pxor xmm0, xmm7 033cf 66 0f 73 dc 7b psrldq xmm4, 123 033d4 66 0f eb ec por xmm5, xmm4 033d8 f3 0f 6f 64 19 30 movdqu xmm4, XMMWORD PTR [48+ecx+ebx] ;;; hash32Cxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4nd,5) , xmm5nd)) , PRIMExmm); 033de f3 0f 6f 79 50 movdqu xmm7, XMMWORD PTR [80+ecx] 033e3 66 0f 6f 15 00 00 00 00 movdqa xmm2, XMMWORD PTR [_2il0floatpacket.65] 033eb 66 0f ef ec pxor xmm5, xmm4 033ef 66 0f 38 40 f2 pmulld xmm6, xmm2 033f4 66 0f ef f5 pxor xmm6, xmm5 033f8 66 0f 6f e9 movdqa xmm5, xmm1 033fc 66 0f 73 fd 05 pslldq xmm5, 5 03401 66 0f 73 d9 7b psrldq xmm1, 123 03406 66 0f eb e9 por xmm5, xmm1 0340a 66 0f 6f cf movdqa xmm1, xmm7 0340e 66 0f 73 f9 05 pslldq xmm1, 5 03413 66 0f 73 df 7b psrldq xmm7, 123 03418 f3 0f 6f 61 40 movdqu xmm4, XMMWORD PTR [64+ecx] 0341d 66 0f eb cf por xmm1, xmm7 03421 66 0f ef ec pxor xmm5, xmm4 03425 f3 0f 6f 7c 19 50 movdqu xmm7, XMMWORD PTR [80+ecx+ebx] 0342b 66 0f 38 40 da pmulld xmm3, xmm2 03430 66 0f ef cf pxor xmm1, xmm7 03434 66 0f 38 40 c2 pmulld xmm0, xmm2 03439 66 0f ef dd pxor xmm3, xmm5 0343d 66 0f ef c1 pxor xmm0, xmm1 03441 83 c1 60 add ecx, 96 03444 66 0f 38 40 f2 pmulld xmm6, xmm2 03449 4a dec edx 0344a 66 0f 38 40 da pmulld xmm3, xmm2 0344f 66 0f 38 40 c2 pmulld xmm0, xmm2 03454 0f 85 f4 fe ff ff jne .B5.4 .B5.5: 0345a 66 0f 6f 0d 00 00 00 00 movdqa xmm1, XMMWORD PTR [_2il0floatpacket.65] .B5.6: */
Blah-blah... the latest 'put-and-forget' hasher is 'FNV1A_YoshimitsuTRIADii'... yet for the sake of fun, speed training and superfast file hashing XMM/YMM variants should be implemented. Let's see what boost can deliver XMM, following dump was obtained using my laptop with Intel T7500: Info1: One second seems to have 998 clocks. Info2: This CPU seems to be working at 2,191 MHz. Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 15132 clocks or 4.331MB per clock BURST_Read_8DWORDSi: (64MB block); 65536MB fetched in 13946 clocks or 4.699MB per clock FNV1A_YoshimitsuTRIADiiXMM: (64MB block); 65536MB hashed in 13572 clocks or 4.829MB per clock !!! FLASHY-SLASHY: OUTSPEEDS THE INTERLEAVED 8x4 READ !!! FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 14399 clocks or 4.551MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 15912 clocks or 4.119MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 16427 clocks or 3.990MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 14555 clocks or 4.503MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71588 clocks or 0.915MB per clock Fetching/Hashing a 2MB block 32*1024 times ... BURST_Read_4DWORDS: (2MB block); 65536MB fetched in 9532 clocks or 6.875MB per clock BURST_Read_8DWORDSi: (2MB block); 65536MB fetched in 9844 clocks or 6.657MB per clock FNV1A_YoshimitsuTRIADiiXMM: (2MB block); 65536MB hashed in 7332 clocks or 8.938MB per clock !!! COMMENTLESS !!! FNV1A_YoshimitsuTRIADii: (2MB block); 65536MB hashed in 10155 clocks or 6.454MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 9766 clocks or 6.711MB per clock FNV1A_Yorikke: (2MB block); 65536MB hashed in 10171 clocks or 6.443MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 10717 clocks or 6.115MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 69764 clocks or 0.939MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 7863 clocks or 8.335MB per clock BURST_Read_8DWORDSi: (16KB block); 65536MB fetched in 7894 clocks or 8.302MB per clock FNV1A_YoshimitsuTRIADiiXMM: (16KB block); 65536MB hashed in 6973 clocks or 9.399MB per clock !!! WIGGING-OUT: 894% faster than CRC32_SlicingBy8 !!! FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 8892 clocks or 7.370MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 9110 clocks or 7.194MB per clock FNV1A_Yorikke: (16KB block); 65536MB hashed in 9657 clocks or 6.786MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 9734 clocks or 6.733MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 69342 clocks or 0.945MB per clock Delerium - Hammer (Feat. Leona Naess) ... Sad eyes you got songs And they hit me like a hammer hammer The whole time I thought you Were just a wilted little flower flower ... Sad eyes you got soul And it hits me like a stammer stammer The whole time I thought I Was the one with the power power // Notes, 2013-Apr-26: // Wanted to see how SIMDed main loop would look like: // One of the main goals: to stress 128bit registers only and nothing else, for now 6 in total, in fact Intel uses the all 8. // Current approach: instead of rotating the 5 bits within the DWORD quadruplets I chose to do it within the entire DQWORD i.e. XMMWORD. // Length of the main loop: 02795 - 0270d + 6 = 142 bytes // CRASH CARAMBA: My CPU T7500 supports up to SSSE3 but not SSE4.1 and AVX, I need YMM (it reads 'yummy') machine.
// FNV1A_YoshimitsuTRIADiiXMM revision 1+ aka FNV1A_SaberFatigue, copyleft 2013-Apr-26 Kaze. // Targeted purpose: x-gram table lookups for Leprechaun r17. // Targeted machine: assuming SSE2 is present always - no non-SSE2 counterpart. //#include <emmintrin.h> //SSE2 //#include <smmintrin.h> //SSE4.1 //#include <immintrin.h> //AVX #define xmmload(p) _mm_load_si128((__m128i const*)(p)) #define xmmloadu(p) _mm_loadu_si128((__m128i const*)(p)) #define _rotl_KAZE128(x, n) _mm_or_si128(_mm_slli_si128(x, n) , _mm_srli_si128(x, 128-n)) #define _rotl_KAZE32(x, n) (((x) << (n)) | ((x) >> (32-(n)))) #define XMM_KAZE_SSE2 uint32_t FNV1A_Hash_YoshimitsuTRIADiiXMM(const char *str, uint32_t wrdlen) { const uint32_t PRIME = 709607; uint32_t hash32 = 2166136261; uint32_t hash32B = 2166136261; uint32_t hash32C = 2166136261; const char *p = str; uint32_t Loop_Counter; uint32_t Second_Line_Offset; #if defined(XMM_KAZE_SSE2) || defined(XMM_KAZE_SSE4) || defined(XMM_KAZE_AVX) __m128i xmm0; __m128i xmm1; __m128i xmm2; __m128i xmm3; __m128i xmm4; __m128i xmm5; __m128i hash32xmm = _mm_set1_epi32(2166136261); __m128i hash32Bxmm = _mm_set1_epi32(2166136261); __m128i hash32Cxmm = _mm_set1_epi32(2166136261); __m128i PRIMExmm = _mm_set1_epi32(709607); #endif #if defined(XMM_KAZE_SSE2) || defined(XMM_KAZE_SSE4) || defined(XMM_KAZE_AVX) if (wrdlen >= 4*24) { // Actually 4*24 is the minimum and not useful, 200++ makes more sense. Loop_Counter = (wrdlen/(4*24)); Loop_Counter++; Second_Line_Offset = wrdlen-(Loop_Counter)*(4*3*4); for(; Loop_Counter; Loop_Counter--, p += 4*3*sizeof(uint32_t)) { xmm0 = xmmloadu(p+0*16); xmm1 = xmmloadu(p+0*16+Second_Line_Offset); xmm2 = xmmloadu(p+1*16); xmm3 = xmmloadu(p+1*16+Second_Line_Offset); xmm4 = xmmloadu(p+2*16); xmm5 = xmmloadu(p+2*16+Second_Line_Offset); #if defined(XMM_KAZE_SSE2) hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); #else hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); hash32Bxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); hash32Cxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); #endif } #if defined(XMM_KAZE_SSE2) hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , hash32Bxmm) , PRIMExmm); hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , hash32Cxmm) , PRIMExmm); #else hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , hash32Bxmm) , PRIMExmm); hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , hash32Cxmm) , PRIMExmm); #endif hash32 = (hash32 ^ hash32xmm.m128i_u32[0]) * PRIME; hash32B = (hash32B ^ hash32xmm.m128i_u32[3]) * PRIME; hash32 = (hash32 ^ hash32xmm.m128i_u32[1]) * PRIME; hash32B = (hash32B ^ hash32xmm.m128i_u32[2]) * PRIME; } else if (wrdlen >= 24) #else if (wrdlen >= 24) #endif { Loop_Counter = (wrdlen/24); Loop_Counter++; Second_Line_Offset = wrdlen-(Loop_Counter)*(3*4); for(; Loop_Counter; Loop_Counter--, p += 3*sizeof(uint32_t)) { hash32 = (hash32 ^ (_rotl_KAZE32(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+0+Second_Line_Offset))) * PRIME; hash32B = (hash32B ^ (_rotl_KAZE32(*(uint32_t *)(p+4+Second_Line_Offset),5) ^ *(uint32_t *)(p+4))) * PRIME; hash32C = (hash32C ^ (_rotl_KAZE32(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+8+Second_Line_Offset))) * PRIME; } hash32 = (hash32 ^ _rotl_KAZE32(hash32C,5) ) * PRIME; } else { // 1111=15; 10111=23 if (wrdlen & 4*sizeof(uint32_t)) { hash32 = (hash32 ^ (_rotl_KAZE32(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+4))) * PRIME; hash32B = (hash32B ^ (_rotl_KAZE32(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+12))) * PRIME; p += 8*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7,...,15 if (wrdlen & 2*sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint32_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint32_t*)(p+4)) * PRIME; p += 4*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint16_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint16_t*)(p+2)) * PRIME; p += 2*sizeof(uint16_t); } if (wrdlen & sizeof(uint16_t)) { hash32 = (hash32 ^ *(uint16_t*)p) * PRIME; p += sizeof(uint16_t); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; } hash32 = (hash32 ^ _rotl_KAZE32(hash32B,5) ) * PRIME; return hash32 ^ (hash32 >> 16); }
/* !!! The main (SSE2 i.e. 'pmullw' used) loop: !!! .B4.4: 0270d 8d 3c 76 lea edi, DWORD PTR [esi+esi*2] 02710 46 inc esi 02711 c1 e7 04 shl edi, 4 02714 3b f2 cmp esi, edx 02716 f3 0f 6f 3c 39 movdqu xmm7, XMMWORD PTR [ecx+edi] 0271b f3 0f 6f 74 3b 10 movdqu xmm6, XMMWORD PTR [16+ebx+edi] ;;; xmm4 = xmmloadu(p+2*16); 02721 f3 0f 6f 6c 39 20 movdqu xmm5, XMMWORD PTR [32+ecx+edi] ;;; xmm5 = xmmloadu(p+2*16+Second_Line_Offset); ;;; #if defined(XMM_KAZE_SSE2) ;;; hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); 02727 66 0f 6f cf movdqa xmm1, xmm7 0272b 66 0f 73 f9 05 pslldq xmm1, 5 02730 66 0f 73 df 7b psrldq xmm7, 123 02735 66 0f eb cf por xmm1, xmm7 02739 f3 0f 6f 3c 3b movdqu xmm7, XMMWORD PTR [ebx+edi] 0273e 66 0f ef cf pxor xmm1, xmm7 02742 66 0f ef d1 pxor xmm2, xmm1 ;;; hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); 02746 66 0f 6f ce movdqa xmm1, xmm6 0274a 66 0f 73 f9 05 pslldq xmm1, 5 0274f 66 0f 73 de 7b psrldq xmm6, 123 02754 66 0f eb ce por xmm1, xmm6 02758 f3 0f 6f 74 39 10 movdqu xmm6, XMMWORD PTR [16+ecx+edi] 0275e 66 0f d5 d0 pmullw xmm2, xmm0 02762 66 0f ef ce pxor xmm1, xmm6 ;;; hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); 02766 66 0f 6f f5 movdqa xmm6, xmm5 0276a 66 0f 73 fe 05 pslldq xmm6, 5 0276f 66 0f ef d9 pxor xmm3, xmm1 02773 66 0f 73 dd 7b psrldq xmm5, 123 02778 66 0f eb f5 por xmm6, xmm5 0277c f3 0f 6f 6c 3b 20 movdqu xmm5, XMMWORD PTR [32+ebx+edi] 02782 66 0f d5 d8 pmullw xmm3, xmm0 02786 66 0f ef f5 pxor xmm6, xmm5 0278a 66 0f ef e6 pxor xmm4, xmm6 0278e 66 0f d5 e0 pmullw xmm4, xmm0 02792 0f 82 75 ff ff ff jb .B4.4 !!! The main (SSE4.1 i.e. 'pmulld' used) loop: !!! .B4.4: 0270d 8d 3c 76 lea edi, DWORD PTR [esi+esi*2] 02710 46 inc esi 02711 c1 e7 04 shl edi, 4 02714 3b f2 cmp esi, edx 02716 f3 0f 6f 3c 39 movdqu xmm7, XMMWORD PTR [ecx+edi] 0271b f3 0f 6f 74 3b 10 movdqu xmm6, XMMWORD PTR [16+ebx+edi] ;;; xmm4 = xmmloadu(p+2*16); 02721 f3 0f 6f 6c 39 20 movdqu xmm5, XMMWORD PTR [32+ecx+edi] ;;; xmm5 = xmmloadu(p+2*16+Second_Line_Offset); ;;; #if defined(XMM_KAZE_SSE2) ;;; hash32xmm = _mm_mullo_epi16(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); ;;; hash32Bxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); ;;; hash32Cxmm = _mm_mullo_epi16(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); ;;; #else ;;; hash32xmm = _mm_mullo_epi32(_mm_xor_si128(hash32xmm , _mm_xor_si128(_rotl_KAZE128(xmm0,5) , xmm1)) , PRIMExmm); 02727 66 0f 6f cf movdqa xmm1, xmm7 0272b 66 0f 73 f9 05 pslldq xmm1, 5 02730 66 0f 73 df 7b psrldq xmm7, 123 02735 66 0f eb cf por xmm1, xmm7 02739 f3 0f 6f 3c 3b movdqu xmm7, XMMWORD PTR [ebx+edi] 0273e 66 0f ef cf pxor xmm1, xmm7 02742 66 0f ef d1 pxor xmm2, xmm1 ;;; hash32Bxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Bxmm , _mm_xor_si128(_rotl_KAZE128(xmm3,5) , xmm2)) , PRIMExmm); 02746 66 0f 6f ce movdqa xmm1, xmm6 0274a 66 0f 73 f9 05 pslldq xmm1, 5 0274f 66 0f 73 de 7b psrldq xmm6, 123 02754 66 0f eb ce por xmm1, xmm6 02758 f3 0f 6f 74 39 10 movdqu xmm6, XMMWORD PTR [16+ecx+edi] 0275e 66 0f ef ce pxor xmm1, xmm6 ;;; hash32Cxmm = _mm_mullo_epi32(_mm_xor_si128(hash32Cxmm , _mm_xor_si128(_rotl_KAZE128(xmm4,5) , xmm5)) , PRIMExmm); 02762 66 0f 6f f5 movdqa xmm6, xmm5 02766 66 0f 73 fe 05 pslldq xmm6, 5 0276b 66 0f ef d9 pxor xmm3, xmm1 0276f 66 0f 73 dd 7b psrldq xmm5, 123 02774 66 0f eb f5 por xmm6, xmm5 02778 f3 0f 6f 6c 3b 20 movdqu xmm5, XMMWORD PTR [32+ebx+edi] 0277e 66 0f ef f5 pxor xmm6, xmm5 02782 66 0f ef e6 pxor xmm4, xmm6 02786 66 0f 38 40 d0 pmulld xmm2, xmm0 0278b 66 0f 38 40 d8 pmulld xmm3, xmm0 02790 66 0f 38 40 e0 pmulld xmm4, xmm0 02795 0f 82 72 ff ff ff jb .B4.4 */ // emmintrin.h // Principal header file for Intel(R) Pentium(R) 4 processor SSE2 intrinsics //extern __m128i __ICL_INTRINCC _mm_mulhi_epi16(__m128i, __m128i); //extern __m128i __ICL_INTRINCC _mm_mulhi_epu16(__m128i, __m128i); //extern __m128i __ICL_INTRINCC _mm_mullo_epi16(__m128i, __m128i); //extern __m128i __ICL_INTRINCC _mm_mul_epu32(__m128i, __m128i); // // smmintrin.h // SSE4.1 intrinsics // Packed integer 32-bit multiplication with truncation of upper halves of results //extern __m128i __ICL_INTRINCC _mm_mullo_epi32(__m128i, __m128i); // Packed integer 32-bit multiplication of 2 pairs of operands producing two 64-bit results //extern __m128i __ICL_INTRINCC _mm_mul_epi32(__m128i, __m128i); // // immintrin.h // Intel(R) AVX compiler intrinsics. //extern __m256i __cdecl _mm256_mullo_epi32(__m256i, __m256i); //extern __m256i __cdecl _mm256_mul_epu32(__m256i, __m256i); //extern __m256i __cdecl _mm256_mul_epi32(__m256i, __m256i); //... // __int8 m256i_i8[32]; // __int16 m256i_i16[16]; // __int32 m256i_i32[8]; // __int64 m256i_i64[4]; // unsigned __int8 m256i_u8[32]; // unsigned __int16 m256i_u16[16]; // unsigned __int32 m256i_u32[8]; // unsigned __int64 m256i_u64[4]; //} __m256i; // // Move Aligned Packed Integer Values // **** VMOVDQA ymm1, m256 // **** VMOVDQA m256, ymm1 // Moves 256 bits of packed integer values from the source operand to the destination //extern __m256i __ICL_INTRINCC _mm256_load_si256(__m256i const *); //extern void __ICL_INTRINCC _mm256_store_si256(__m256i *, __m256i); // // Move Unaligned Packed Integer Values // **** VMOVDQU ymm1, m256 // **** VMOVDQU m256, ymm1 // Moves 256 bits of packed integer values from the source operand to the destination //extern __m256i __ICL_INTRINCC _mm256_loadu_si256(__m256i const *); //extern void __ICL_INTRINCC _mm256_storeu_si256(__m256i *, __m256i); // // VMOVDQA sounds to me almost as JAMIROQUAI - the weirdest hat artist with fast lively movements. // When YMM machine comes to me FNV1A_YUMMY and FNV1A_JAMIROQUAI are gonna walk on the walls and hit the ceiling. // /* hash32xmm = _mm_set1_epi32(1); printf("%lu,%lu,%lu,%lu\n",PRIMExmm.m128i_u32[0],PRIMExmm.m128i_u32[1],PRIMExmm.m128i_u32[2],PRIMExmm.m128i_u32[3]); printf("%lu,%lu,%lu,%lu\n",hash32xmm.m128i_u32[0],hash32xmm.m128i_u32[1],hash32xmm.m128i_u32[2],hash32xmm.m128i_u32[3]); hash32Bxmm = _mm_mul_epu32( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); hash32Bxmm = _mm_mullo_epi16( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); // 709607,709607,709607,709607 // 1,1,1,1 // 709607,0,709607,0 // 54247,54247,54247,54247 hash32xmm = _mm_set1_epi32(3); printf("%lu,%lu,%lu,%lu\n",PRIMExmm.m128i_u32[0],PRIMExmm.m128i_u32[1],PRIMExmm.m128i_u32[2],PRIMExmm.m128i_u32[3]); printf("%lu,%lu,%lu,%lu\n",hash32xmm.m128i_u32[0],hash32xmm.m128i_u32[1],hash32xmm.m128i_u32[2],hash32xmm.m128i_u32[3]); hash32Bxmm = _mm_mul_epu32( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); hash32Bxmm = _mm_mullo_epi16( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); // 709607,709607,709607,709607 // 3,3,3,3 // 2128821,0,2128821,0 // 31669,31669,31669,31669 hash32xmm = _mm_set1_epi32(3000000); printf("%lu,%lu,%lu,%lu\n",PRIMExmm.m128i_u32[0],PRIMExmm.m128i_u32[1],PRIMExmm.m128i_u32[2],PRIMExmm.m128i_u32[3]); printf("%lu,%lu,%lu,%lu\n",hash32xmm.m128i_u32[0],hash32xmm.m128i_u32[1],hash32xmm.m128i_u32[2],hash32xmm.m128i_u32[3]); hash32Bxmm = _mm_mul_epu32( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); hash32Bxmm = _mm_mullo_epi16( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); // 709607,709607,709607,709607 // 3000000,3000000,3000000,3000000 // 2812188480,495,2812188480,495 !!! 495 *(1<<32)+2812188480=2128821000000 = 709607*3000000 !!! // 29529920,29529920,29529920,29529920 hash32xmm = _mm_set1_epi32(65536); printf("%lu,%lu,%lu,%lu\n",PRIMExmm.m128i_u32[0],PRIMExmm.m128i_u32[1],PRIMExmm.m128i_u32[2],PRIMExmm.m128i_u32[3]); printf("%lu,%lu,%lu,%lu\n",hash32xmm.m128i_u32[0],hash32xmm.m128i_u32[1],hash32xmm.m128i_u32[2],hash32xmm.m128i_u32[3]); hash32Bxmm = _mm_mul_epu32( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); hash32Bxmm = _mm_mullo_epi16( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); // 709607,709607,709607,709607 // 65536,65536,65536,65536 // 3555131392,10,3555131392,10 // 655360,655360,655360,655360 hash32xmm = _mm_set1_epi32(65535); printf("%lu,%lu,%lu,%lu\n",PRIMExmm.m128i_u32[0],PRIMExmm.m128i_u32[1],PRIMExmm.m128i_u32[2],PRIMExmm.m128i_u32[3]); printf("%lu,%lu,%lu,%lu\n",hash32xmm.m128i_u32[0],hash32xmm.m128i_u32[1],hash32xmm.m128i_u32[2],hash32xmm.m128i_u32[3]); hash32Bxmm = _mm_mul_epu32( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); hash32Bxmm = _mm_mullo_epi16( hash32xmm, PRIMExmm); printf("%lu,%lu,%lu,%lu\n",hash32Bxmm.m128i_u32[0],hash32Bxmm.m128i_u32[1],hash32Bxmm.m128i_u32[2],hash32Bxmm.m128i_u32[3]); // 709607,709607,709607,709607 // 65535,65535,65535,65535 // 3554421785,10,3554421785,10 // 11289,11289,11289,11289 */ /* !!! The results *unaligned* on my T7500 2200MHz as 32bit Intel 12.1 /Ox compile: !!! Memory pool starting address: 006E0041 ... NOT 64 byte aligned, FAILURE Info1: One second seems to have 998 clocks. Info2: This CPU seems to be working at 2,191 MHz. Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 16521 clocks or 3.967MB per clock BURST_Read_8DWORDSi: (64MB block); 65536MB fetched in 15787 clocks or 4.151MB per clock FNV1A_YoshimitsuTRIADiiXMM: (64MB block); 65536MB hashed in 15958 clocks or 4.107MB per clock !!! BRUTALICIOUS: 4GB/s as 32bit XMM code and *unaligned data* !!! FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 17738 clocks or 3.695MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 18003 clocks or 3.640MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 19593 clocks or 3.345MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 19235 clocks or 3.407MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71745 clocks or 0.913MB per clock Fetching/Hashing a 2MB block 32*1024 times ... BURST_Read_4DWORDS: (2MB block); 65536MB fetched in 12277 clocks or 5.338MB per clock BURST_Read_8DWORDSi: (2MB block); 65536MB fetched in 12839 clocks or 5.104MB per clock FNV1A_YoshimitsuTRIADiiXMM: (2MB block); 65536MB hashed in 13370 clocks or 4.902MB per clock FNV1A_YoshimitsuTRIADii: (2MB block); 65536MB hashed in 15741 clocks or 4.163MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 15803 clocks or 4.147MB per clock FNV1A_Yorikke: (2MB block); 65536MB hashed in 17581 clocks or 3.728MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 17644 clocks or 3.714MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 69888 clocks or 0.938MB per clock Fetching/Hashing a 128KB block 512*1024 times ... BURST_Read_4DWORDS: (128KB block); 65536MB fetched in 12183 clocks or 5.379MB per clock BURST_Read_8DWORDSi: (128KB block); 65536MB fetched in 13479 clocks or 4.862MB per clock FNV1A_YoshimitsuTRIADiiXMM: (128KB block); 65536MB hashed in 13291 clocks or 4.931MB per clock FNV1A_YoshimitsuTRIADii: (128KB block); 65536MB hashed in 15959 clocks or 4.107MB per clock FNV1A_YoshimitsuTRIAD: (128KB block); 65536MB hashed in 15803 clocks or 4.147MB per clock FNV1A_Yorikke: (128KB block); 65536MB hashed in 17597 clocks or 3.724MB per clock FNV1A_Yoshimura: (128KB block); 65536MB hashed in 17675 clocks or 3.708MB per clock CRC32_SlicingBy8K2: (128KB block); 65536MB hashed in 69841 clocks or 0.938MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 11606 clocks or 5.647MB per clock BURST_Read_8DWORDSi: (16KB block); 65536MB fetched in 12106 clocks or 5.414MB per clock FNV1A_YoshimitsuTRIADiiXMM: (16KB block); 65536MB hashed in 13135 clocks or 4.989MB per clock FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 15522 clocks or 4.222MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 15803 clocks or 4.147MB per clock FNV1A_Yorikke: (16KB block); 65536MB hashed in 17643 clocks or 3.715MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 17738 clocks or 3.695MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 69841 clocks or 0.938MB per clock !!! The results *aligned* on my T7500 2200MHz as 32bit Intel 12.1 /Ox compile: !!! Memory pool starting address: 00DF0040 ... 64 byte aligned, OK Info1: One second seems to have 998 clocks. Info2: This CPU seems to be working at 2,191 MHz. Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 15132 clocks or 4.331MB per clock BURST_Read_8DWORDSi: (64MB block); 65536MB fetched in 13946 clocks or 4.699MB per clock FNV1A_YoshimitsuTRIADiiXMM: (64MB block); 65536MB hashed in 13572 clocks or 4.829MB per clock !!! FLASHY-SLASHY: OUTSPEEDS THE INTERLEAVED 8x4 READ !!! FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 14399 clocks or 4.551MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 15912 clocks or 4.119MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 16427 clocks or 3.990MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 14555 clocks or 4.503MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71588 clocks or 0.915MB per clock Fetching/Hashing a 2MB block 32*1024 times ... BURST_Read_4DWORDS: (2MB block); 65536MB fetched in 9532 clocks or 6.875MB per clock BURST_Read_8DWORDSi: (2MB block); 65536MB fetched in 9844 clocks or 6.657MB per clock FNV1A_YoshimitsuTRIADiiXMM: (2MB block); 65536MB hashed in 7332 clocks or 8.938MB per clock !!! COMMENTLESS !!! FNV1A_YoshimitsuTRIADii: (2MB block); 65536MB hashed in 10155 clocks or 6.454MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 9766 clocks or 6.711MB per clock FNV1A_Yorikke: (2MB block); 65536MB hashed in 10171 clocks or 6.443MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 10717 clocks or 6.115MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 69764 clocks or 0.939MB per clock Fetching/Hashing a 128KB block 512*1024 times ... BURST_Read_4DWORDS: (128KB block); 65536MB fetched in 9235 clocks or 7.096MB per clock BURST_Read_8DWORDSi: (128KB block); 65536MB fetched in 8876 clocks or 7.384MB per clock FNV1A_YoshimitsuTRIADiiXMM: (128KB block); 65536MB hashed in 7254 clocks or 9.034MB per clock FNV1A_YoshimitsuTRIADii: (128KB block); 65536MB hashed in 9360 clocks or 7.002MB per clock FNV1A_YoshimitsuTRIAD: (128KB block); 65536MB hashed in 9672 clocks or 6.776MB per clock FNV1A_Yorikke: (128KB block); 65536MB hashed in 10109 clocks or 6.483MB per clock FNV1A_Yoshimura: (128KB block); 65536MB hashed in 9937 clocks or 6.595MB per clock CRC32_SlicingBy8K2: (128KB block); 65536MB hashed in 69888 clocks or 0.938MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 7863 clocks or 8.335MB per clock BURST_Read_8DWORDSi: (16KB block); 65536MB fetched in 7894 clocks or 8.302MB per clock FNV1A_YoshimitsuTRIADiiXMM: (16KB block); 65536MB hashed in 6973 clocks or 9.399MB per clock !!! WIGGING-OUT: 894% faster than CRC32_SlicingBy8 !!! FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 8892 clocks or 7.370MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 9110 clocks or 7.194MB per clock FNV1A_Yorikke: (16KB block); 65536MB hashed in 9657 clocks or 6.786MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 9734 clocks or 6.733MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 69342 clocks or 0.945MB per clock */ /* !!! The Knight-Tours results: !!! YoYo - [CR]LF lines hasher, r.2 copyleft Kaze. Note1: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Note2: FNV1A_YoshimitsuTRIADiiXMM needs SSE4.1, so if not present YoYo will crash. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 20 Allocating KEY memory 1024KB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Hashing all the LF ending lines encountered in 136,314,880 bytes long file ... Keys vs Slots ratio: 1:1 or 1,048,576:1,048,576 FNV1A_YoshimitsuTRIADiiXMM : Keys = 00,000,000,000,001,048,576; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,009; HASHfreeSLOTS = 0,000,386,039; HashUtilization = 063%; Collisions = 0,000,386,039 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,001,048,576; 000,000,002 x MAXcollisionsAtSomeSlots = 0,000,000,009; HASHfreeSLOTS = 0,000,385,367; HashUtilization = 063%; Collisions = 0,000,385,367 CRC32C2_8slice : Keys = 00,000,000,000,001,048,576; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,009; HASHfreeSLOTS = 0,000,385,451; HashUtilization = 063%; Collisions = 0,000,385,451 Physical Lines: 1,048,576 Shortest Line : 128 Longest Line : 128 YoYo - [CR]LF lines hasher, r.2 copyleft Kaze. Note1: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Note2: FNV1A_YoshimitsuTRIADiiXMM needs SSE4.1, so if not present YoYo will crash. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 20 Allocating KEY memory 1024KB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Hashing all the LF ending lines encountered in 272,629,760 bytes long file ... Keys vs Slots ratio: 2:1 or 2,097,152:1,048,576 FNV1A_YoshimitsuTRIADiiXMM : Keys = 00,000,000,000,002,097,152; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,013; HASHfreeSLOTS = 0,000,142,022; HashUtilization = 086%; Collisions = 0,001,190,598 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,002,097,152; 000,000,007 x MAXcollisionsAtSomeSlots = 0,000,000,011; HASHfreeSLOTS = 0,000,141,227; HashUtilization = 086%; Collisions = 0,001,189,803 CRC32C2_8slice : Keys = 00,000,000,000,002,097,152; 000,000,008 x MAXcollisionsAtSomeSlots = 0,000,000,011; HASHfreeSLOTS = 0,000,141,267; HashUtilization = 086%; Collisions = 0,001,189,843 Physical Lines: 2,097,152 Shortest Line : 128 Longest Line : 128 YoYo - [CR]LF lines hasher, r.2 copyleft Kaze. Note1: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Note2: FNV1A_YoshimitsuTRIADiiXMM needs SSE4.1, so if not present YoYo will crash. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 20 Allocating KEY memory 1024KB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Hashing all the LF ending lines encountered in 408,944,640 bytes long file ... Keys vs Slots ratio: 3:1 or 3,145,728:1,048,576 FNV1A_YoshimitsuTRIADiiXMM : Keys = 00,000,000,000,003,145,728; 000,000,005 x MAXcollisionsAtSomeSlots = 0,000,000,014; HASHfreeSLOTS = 0,000,051,972; HashUtilization = 095%; Collisions = 0,002,149,124 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,003,145,728; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,015; HASHfreeSLOTS = 0,000,051,812; HashUtilization = 095%; Collisions = 0,002,148,964 CRC32C2_8slice : Keys = 00,000,000,000,003,145,728; 000,000,002 x MAXcollisionsAtSomeSlots = 0,000,000,014; HASHfreeSLOTS = 0,000,051,926; HashUtilization = 095%; Collisions = 0,002,149,078 Physical Lines: 3,145,728 Shortest Line : 128 Longest Line : 128 YoYo - [CR]LF lines hasher, r.2 copyleft Kaze. Note1: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Note2: FNV1A_YoshimitsuTRIADiiXMM needs SSE4.1, so if not present YoYo will crash. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 20 Allocating KEY memory 1024KB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Hashing all the LF ending lines encountered in 4,362,076,160 bytes long file ... Keys vs Slots ratio: 32:1 or 33,554,432:1,048,576 FNV1A_YoshimitsuTRIADiiXMM : Keys = 00,000,000,000,033,554,432; 000,000,002 x MAXcollisionsAtSomeSlots = 0,000,000,061; HASHfreeSLOTS = 0,000,000,000; HashUtilization = 100%; Collisions = 0,032,505,856 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,033,554,432; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,064; HASHfreeSLOTS = 0,000,000,000; HashUtilization = 100%; Collisions = 0,032,505,856 CRC32C2_8slice : Keys = 00,000,000,000,033,554,432; 000,000,002 x MAXcollisionsAtSomeSlots = 0,000,000,062; HASHfreeSLOTS = 0,000,000,000; HashUtilization = 100%; Collisions = 0,032,505,856 Physical Lines: 33,554,432 Shortest Line : 128 Longest Line : 128 */ /* E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>dir "Thus Spake Zarathustra by Friedrich Nietzsche, revision 4.txt"/b>z.lst E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>Leprechaun_BB048hex_32p_32bit_Intel z.lst z.txt 1222333 y Leprechaun_BBhex (Fast-In-Future Greedy Building-Block-Ripper), subrev. B, BB = 48. ... E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>dir "MASAKARI_General-Purpose_Grade_English_Wordlist_r3_316423_words.wrd"/b>m.lst E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>Leprechaun_BB048hex_32p_32bit_Intel m.lst m.txt 1222333 y Leprechaun_BBhex (Fast-In-Future Greedy Building-Block-Ripper), subrev. B, BB = 48. ... E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>dir ?.txt Volume in drive E is SSD_Sanmayce Volume Serial Number is 9CF6-FEA3 04/26/2013 06:30 AM 379,209,236 m.txt 04/26/2013 06:30 AM 50,897,084 z.txt E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>type m.txt 7465726E6572730D0A6D696477657374776172640D0A6D69647769636B65740D0A6D6964776966650D0A6D6964776966 6B0D0A636861636B6C650D0A636861636B6C696E670D0A636861636D610D0A636861636F6E6E650D0A636861636F6E6E 0D0A616E7461676F6E697A61626C650D0A616E7461676F6E697A6174696F6E0D0A616E7461676F6E697A650D0A616E74 706F736572730D0A7472616E73706F7365730D0A7472616E73706F73696E670D0A7472616E73706F736974696F6E0D0A 62696C6974790D0A646973726570757461626C650D0A646973726570757461626C656E6573730D0A6469737265707574 ... E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>type z.txt 6F75722074686F7567687473210D0A416E6420696620796F75722074686F75676874732073756363756D622C20796F75 2C206E65772062656C696576657221940D0A9349742069732073616420656E6F7567682C9420616E7377657265642074 6D666F727461626C65206F6E65732C20746861742049542054414B45544820544F20495453454C462C20616E64207769 656C6C206D652C20796520627265746872656E2C206973206E6F742074686520737472616E67657374206F6620616C6C 72656420616E64207661696E20616E6420657374696D61626C652C206173209374686520676F6F6420616E64206A7573 ... E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>YoYo_r2.exe z.txt 20 YoYo - [CR]LF lines hasher, r.2 copyleft Kaze. Note1: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Note2: FNV1A_YoshimitsuTRIADiiXMM needs SSE4.1, so if not present YoYo will crash. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 20 Allocating KEY memory 1024KB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Hashing all the LF ending lines encountered in 50,897,084 bytes long file ... Keys vs Slots ratio: 0:1 or 519,358:1,048,576 FNV1A_YoshimitsuTRIADiiXMM : Keys = 00,000,000,000,000,519,358; 000,000,004 x MAXcollisionsAtSomeSlots = 0,000,000,007; HASHfreeSLOTS = 0,000,639,021; HashUtilization = 039%; Collisions = 0,000,109,803 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,000,519,358; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,007; HASHfreeSLOTS = 0,000,639,060; HashUtilization = 039%; Collisions = 0,000,109,842 CRC32C2_8slice : Keys = 00,000,000,000,000,519,358; 000,000,003 x MAXcollisionsAtSomeSlots = 0,000,000,007; HASHfreeSLOTS = 0,000,639,002; HashUtilization = 039%; Collisions = 0,000,109,784 Physical Lines: 519,358 Shortest Line : 96 Longest Line : 96 E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2>YoYo_r2.exe m.txt 20 YoYo - [CR]LF lines hasher, r.2 copyleft Kaze. Note1: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Note2: FNV1A_YoshimitsuTRIADiiXMM needs SSE4.1, so if not present YoYo will crash. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 20 Allocating KEY memory 1024KB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Allocating HASH memory 4MB ... OK Hashing all the LF ending lines encountered in 379,209,236 bytes long file ... Keys vs Slots ratio: 3:1 or 3,869,482:1,048,576 FNV1A_YoshimitsuTRIADiiXMM : Keys = 00,000,000,000,003,869,482; 000,000,002 x MAXcollisionsAtSomeSlots = 0,000,000,015; HASHfreeSLOTS = 0,000,026,167; HashUtilization = 097%; Collisions = 0,002,847,073 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,003,869,482; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,017; HASHfreeSLOTS = 0,000,026,207; HashUtilization = 097%; Collisions = 0,002,847,113 CRC32C2_8slice : Keys = 00,000,000,000,003,869,482; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,016; HASHfreeSLOTS = 0,000,026,305; HashUtilization = 097%; Collisions = 0,002,847,211 Physical Lines: 3,869,482 Shortest Line : 96 Longest Line : 96 E:\Benchmark_LuckyLight_r1\YoshimitsuTRIADiiXMM_r1\YoYo_r2> */
E:\YoYo_r1>dir Volume in drive E is SSD_Sanmayce Volume Serial Number is 9CF6-FEA3 03/31/2013 05:14 AM 42,153,646,707 enwiki-20121201-pages-articles.xml 03/31/2013 05:14 PM 1,395,608,680 enwiki-20121201-pages-articles.xml_03of32_3-grams.txt 03/31/2013 05:14 PM 9,305,584,848 enwiki-20121201-pages-articles.xml_20of32_3-grams.txt 03/31/2013 05:14 AM 143,360 Leprechaun_x-leton_64bit_Intel_03_32p.exe 03/31/2013 05:14 AM 210 RIP_3-grams.bat 03/31/2013 05:14 AM 1,590 Yorikke prompt.lnk 03/31/2013 05:14 AM 56,361 YoYo_r1.c 03/31/2013 05:14 AM 96,256 YoYo_r1_32bit.exe 03/31/2013 05:14 AM 108,032 YoYo_r1_64bit.exe E:\YoYo_r1>YoYo_r1_64bit.exe enwiki-20121201-pages-articles.xml_20of32_3-grams.txt 26 YoYo - [CR]LF lines hasher, r.1 copyleft Kaze. Note: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 26 Allocating KEY memory 1024KB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Hashing all the LF ending lines encountered in 9,305,584,848 bytes long file ... Keys vs Slots ratio: 6:1 or 452,823,515:67,108,864 FNV1A_Yoshimura : Keys = 00,000,000,000,452,823,515; 000,000,003 x MAXcollisionsAtSomeSlots = 0,000,000,026; HASHfreeSLOTS = 0,000,078,051; HashUtilization = 099%; Collisions = 0,385,792,702 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,452,823,515; 000,000,004 x MAXcollisionsAtSomeSlots = 0,000,000,025; HASHfreeSLOTS = 0,000,078,963; HashUtilization = 099%; Collisions = 0,385,793,614 CRC32C2_8slice : Keys = 00,000,000,000,452,823,515; 000,000,003 x MAXcollisionsAtSomeSlots = 0,000,000,025; HASHfreeSLOTS = 0,000,079,269; HashUtilization = 099%; Collisions = 0,385,793,920 Physical Lines: 452,823,515 Shortest Line : 9 Longest Line : 41 Performance: 33485.613 bytes per clock E:\YoYo_r1>YoYo_r1_64bit.exe enwiki-20121201-pages-articles.xml_20of32_3-grams.txt 27 YoYo - [CR]LF lines hasher, r.1 copyleft Kaze. Note: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 27 Allocating KEY memory 1024KB ... OK Allocating HASH memory 512MB ... OK Allocating HASH memory 512MB ... OK Allocating HASH memory 512MB ... OK Hashing all the LF ending lines encountered in 9,305,584,848 bytes long file ... Keys vs Slots ratio: 3:1 or 452,823,515:134,217,728 FNV1A_Yoshimura : Keys = 00,000,000,000,452,823,515; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,019; HASHfreeSLOTS = 0,004,598,493; HashUtilization = 096%; Collisions = 0,323,204,280 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,452,823,515; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,020; HASHfreeSLOTS = 0,004,598,778; HashUtilization = 096%; Collisions = 0,323,204,565 CRC32C2_8slice : Keys = 00,000,000,000,452,823,515; 000,000,005 x MAXcollisionsAtSomeSlots = 0,000,000,018; HASHfreeSLOTS = 0,004,601,800; HashUtilization = 096%; Collisions = 0,323,207,587 Physical Lines: 452,823,515 Shortest Line : 9 Longest Line : 41 Performance: 29954.242 bytes per clock E:\YoYo_r1>YoYo_r1_64bit.exe enwiki-20121201-pages-articles.xml_20of32_3-grams.txt 28 YoYo - [CR]LF lines hasher, r.1 copyleft Kaze. Note: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 28 Allocating KEY memory 1024KB ... OK Allocating HASH memory 1024MB ... OK Allocating HASH memory 1024MB ... OK Allocating HASH memory 1024MB ... OK Hashing all the LF ending lines encountered in 9,305,584,848 bytes long file ... Keys vs Slots ratio: 1:1 or 452,823,515:268,435,456 FNV1A_Yoshimura : Keys = 00,000,000,000,452,823,515; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,017; HASHfreeSLOTS = 0,049,688,056; HashUtilization = 081%; Collisions = 0,234,076,115 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,452,823,515; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,014; HASHfreeSLOTS = 0,049,692,281; HashUtilization = 081%; Collisions = 0,234,080,340 CRC32C2_8slice : Keys = 00,000,000,000,452,823,515; 000,000,007 x MAXcollisionsAtSomeSlots = 0,000,000,013; HASHfreeSLOTS = 0,049,694,945; HashUtilization = 081%; Collisions = 0,234,083,004 Physical Lines: 452,823,515 Shortest Line : 9 Longest Line : 41 Performance: 27130.143 bytes per clock E:\YoYo_r1>type enwiki-20121201-pages-articles.xml_20of32_3-grams.txt|more z_otoryjski_war volcano_osorno_chile ybgvvcu_bnwm_z support_bridging_or text_sha_mfkzwy rangers_and_auburn sha_frtc_xosccivqrn tictock_studios_which of_parish_founders phonologique_du_loron nascimento_oporto_european mps_superintendent_gregory muluzi_denied_any nir_twolegresult_pfc lawmakers_think_transit more_puffy_stuff l_robert_hamilton k_bjajhv_f krulak_s_ttl lai_meters_require moth_en_route group_oebb_technische further_infanticide_zoology featuring_dj_sak file_self_made flames_attacking_railtrack gauteng_military_museum cornell_capa_ja chuck_which_features bruce_payne_actor castle_guard_being citizen_james_title aronson_s_pictures benjamin_conley_r and_billy_doctrove and_histochemical_staining between_kumagawa_and done_discouraged_most histogram_cells_frequency preserve_redirect_shearson without_providing_casualty political_manoeuvrings_despite reel_detective_larue unseen_asset_that mise_or_mean of_tzotzil_de havins_will_return karateka_xhavit_bajrami locates_the_entity pc_patch_information franz_beckenbauer_dot enjoyed_modest_box et_le_sol dodgers_hit_home dwight_delivers_his film_trade_dts croix_s_direction continued_instruction_more county_winiary_zag dir_north_loop comedian_television_personality checkpoints_and_other citizens_federation_of architecture_international_property The process tried to write to a nonexistent pipe. ^C E:\YoYo_r1>YoYo_r1_64bit.exe enwiki-20121201-pages-articles.xml_03of32_3-grams.txt 25 YoYo - [CR]LF lines hasher, r.1 copyleft Kaze. Note: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 25 Allocating KEY memory 1024KB ... OK Allocating HASH memory 128MB ... OK Allocating HASH memory 128MB ... OK Allocating HASH memory 128MB ... OK Hashing all the LF ending lines encountered in 1,395,608,680 bytes long file ... Keys vs Slots ratio: 2:1 or 67,916,422:33,554,432 FNV1A_Yoshimura : Keys = 00,000,000,000,067,916,422; 000,000,009 x MAXcollisionsAtSomeSlots = 0,000,000,013; HASHfreeSLOTS = 0,004,432,986; HashUtilization = 086%; Collisions = 0,038,794,976 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,067,916,422; 000,000,011 x MAXcollisionsAtSomeSlots = 0,000,000,013; HASHfreeSLOTS = 0,004,433,879; HashUtilization = 086%; Collisions = 0,038,795,869 CRC32C2_8slice : Keys = 00,000,000,000,067,916,422; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,014; HASHfreeSLOTS = 0,004,433,459; HashUtilization = 086%; Collisions = 0,038,795,449 Physical Lines: 67,916,422 Shortest Line : 9 Longest Line : 41 Performance: 35585.014 bytes per clock E:\YoYo_r1>YoYo_r1_64bit.exe enwiki-20121201-pages-articles.xml_03of32_3-grams.txt 26 YoYo - [CR]LF lines hasher, r.1 copyleft Kaze. Note: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 26 Allocating KEY memory 1024KB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Hashing all the LF ending lines encountered in 1,395,608,680 bytes long file ... Keys vs Slots ratio: 1:1 or 67,916,422:67,108,864 FNV1A_Yoshimura : Keys = 00,000,000,000,067,916,422; 000,000,008 x MAXcollisionsAtSomeSlots = 0,000,000,010; HASHfreeSLOTS = 0,024,390,554; HashUtilization = 063%; Collisions = 0,025,198,112 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,067,916,422; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,011; HASHfreeSLOTS = 0,024,396,584; HashUtilization = 063%; Collisions = 0,025,204,142 CRC32C2_8slice : Keys = 00,000,000,000,067,916,422; 000,000,004 x MAXcollisionsAtSomeSlots = 0,000,000,011; HASHfreeSLOTS = 0,024,394,376; HashUtilization = 063%; Collisions = 0,025,201,934 Physical Lines: 67,916,422 Shortest Line : 9 Longest Line : 41 Performance: 31138.773 bytes per clock E:\YoYo_r1>YoYo_r1_64bit.exe enwiki-20121201-pages-articles.xml_03of32_3-grams.txt 27 YoYo - [CR]LF lines hasher, r.1 copyleft Kaze. Note: Incoming textual file can exceed 4GB and lines can be up to 1048576 chars long. Polynomial(s) used: CRC32C2_8slice: 0x8F6E37A0 HashSizeInBits = 27 Allocating KEY memory 1024KB ... OK Allocating HASH memory 512MB ... OK Allocating HASH memory 512MB ... OK Allocating HASH memory 512MB ... OK Hashing all the LF ending lines encountered in 1,395,608,680 bytes long file ... Keys vs Slots ratio: 0:1 or 67,916,422:134,217,728 FNV1A_Yoshimura : Keys = 00,000,000,000,067,916,422; 000,000,011 x MAXcollisionsAtSomeSlots = 0,000,000,008; HASHfreeSLOTS = 0,080,915,727; HashUtilization = 039%; Collisions = 0,014,614,421 FNV1A_YoshimitsuTRIADii : Keys = 00,000,000,000,067,916,422; 000,000,014 x MAXcollisionsAtSomeSlots = 0,000,000,008; HASHfreeSLOTS = 0,080,922,174; HashUtilization = 039%; Collisions = 0,014,620,868 CRC32C2_8slice : Keys = 00,000,000,000,067,916,422; 000,000,001 x MAXcollisionsAtSomeSlots = 0,000,000,009; HASHfreeSLOTS = 0,080,922,279; HashUtilization = 039%; Collisions = 0,014,620,973 Physical Lines: 67,916,422 Shortest Line : 9 Longest Line : 41 Performance: 27233.514 bytes per clock E:\YoYo_r1>
BURST_Read_4XMM128bit: (64MB block); 524288MB fetched in 107765 clocks or 4.865MB per clock BURST_Read_8XMM128bit: (64MB block); 524288MB fetched in 113085 clocks or 4.636MB per clock BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 15148 clocks or 4.326MB per clock BURST_Read_8DWORDSi: (64MB block); 65536MB fetched in 14087 clocks or 4.652MB per clock FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 14539 clocks or 4.508MB per clock !!! Fastest of all 4 Yo* !!! CRC32_SlicingBy8: (64MB block); 65536MB hashed in 71557 clocks or 0.916MB per clock BURST_Read_4XMM128bit: (128KB block); 524288MB fetched in 37580 clocks or 13.951MB per clock BURST_Read_8XMM128bit: (128KB block); 524288MB fetched in 36380 clocks or 14.411MB per clock BURST_Read_4DWORDS: (128KB block); 65536MB fetched in 9220 clocks or 7.108MB per clock ??? 128KB block size suggests some setback for Interleaved approach ??? BURST_Read_8DWORDSi: (128KB block); 65536MB fetched in 10577 clocks or 6.196MB per clock !!! Both Reading&Hashing suffer, thanks to Fantasy I saw that on i7 this drawback is no more !!! FNV1A_YoshimitsuTRIADii: (128KB block); 65536MB hashed in 10686 clocks or 6.133MB per clock !!! Both Reading&Hashing suffer, thanks to Fantasy I saw that on i7 this drawback is no more !!! CRC32_SlicingBy8: (128KB block); 65536MB hashed in 69795 clocks or 0.939MB per clock BURST_Read_4XMM128bit: (16KB block); 524288MB fetched in 20436 clocks or 25.655MB per clock BURST_Read_8XMM128bit: (16KB block); 524288MB fetched in 17456 clocks or 30.035MB per clock BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 7878 clocks or 8.319MB per clock BURST_Read_8DWORDSi: (16KB block); 65536MB fetched in 7909 clocks or 8.286MB per clock FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 8923 clocks or 7.345MB per clock !!! Fastest of all 4 Yo* !!! CRC32_SlicingBy8: (16KB block); 65536MB hashed in 69732 clocks or 0.940MB per clock // 'BURST_Read_4XMM128bit' Main Loop: .B1.182: 009d0 8b f1 mov esi, ecx 009d2 41 inc ecx 009d3 c1 e6 06 shl esi, 6 009d6 81 f9 00 00 80 00 cmp ecx, 8388608 009dc 66 0f 6f 04 32 movdqa xmm0, XMMWORD PTR [edx+esi] 009e1 66 0f 7f 05 00 00 00 00 movdqa XMMWORD PTR [_xmm0], xmm0 ;;; xmm1 = xmmload(pointerflush+(KT+1)*16); 009e9 66 0f 6f 4c 32 10 movdqa xmm1, XMMWORD PTR [16+edx+esi] 009ef 66 0f 7f 0d 00 00 00 00 movdqa XMMWORD PTR [_xmm1], xmm1 ;;; xmm2 = xmmload(pointerflush+(KT+2)*16); 009f7 66 0f 6f 54 32 20 movdqa xmm2, XMMWORD PTR [32+edx+esi] 009fd 66 0f 7f 15 00 00 00 00 movdqa XMMWORD PTR [_xmm2], xmm2 ;;; xmm3 = xmmload(pointerflush+(KT+3)*16); 00a05 66 0f 6f 5c 32 30 movdqa xmm3, XMMWORD PTR [48+edx+esi] 00a0b 66 0f 7f 1d 00 00 00 00 movdqa XMMWORD PTR [_xmm3], xmm3 00a13 72 bb jb .B1.182 // 'BURST_Read_8XMM128bit' Main Loop: .B1.194: 00b00 8b d9 mov ebx, ecx 00b02 41 inc ecx 00b03 c1 e3 07 shl ebx, 7 00b06 81 f9 00 00 40 00 cmp ecx, 4194304 00b0c 66 0f 6f 04 1a movdqa xmm0, XMMWORD PTR [edx+ebx] 00b11 66 0f 7f 05 00 00 00 00 movdqa XMMWORD PTR [_xmm0], xmm0 ;;; xmm1 = xmmload(pointerflush+(KT+1)*16); 00b19 66 0f 6f 4c 1a 10 movdqa xmm1, XMMWORD PTR [16+edx+ebx] 00b1f 66 0f 7f 0d 00 00 00 00 movdqa XMMWORD PTR [_xmm1], xmm1 ;;; xmm2 = xmmload(pointerflush+(KT+2)*16); 00b27 66 0f 6f 54 1a 20 movdqa xmm2, XMMWORD PTR [32+edx+ebx] 00b2d 66 0f 7f 15 00 00 00 00 movdqa XMMWORD PTR [_xmm2], xmm2 ;;; xmm3 = xmmload(pointerflush+(KT+3)*16); 00b35 66 0f 6f 5c 1a 30 movdqa xmm3, XMMWORD PTR [48+edx+ebx] 00b3b 66 0f 7f 1d 00 00 00 00 movdqa XMMWORD PTR [_xmm3], xmm3 ;;; xmm4 = xmmload(pointerflush+(KT+4)*16); 00b43 66 0f 6f 64 1a 40 movdqa xmm4, XMMWORD PTR [64+edx+ebx] 00b49 66 0f 7f 25 00 00 00 00 movdqa XMMWORD PTR [_xmm4], xmm4 ;;; xmm5 = xmmload(pointerflush+(KT+5)*16); 00b51 66 0f 6f 6c 1a 50 movdqa xmm5, XMMWORD PTR [80+edx+ebx] 00b57 66 0f 7f 2d 00 00 00 00 movdqa XMMWORD PTR [_xmm5], xmm5 ;;; xmm6 = xmmload(pointerflush+(KT+6)*16); 00b5f 66 0f 6f 74 1a 60 movdqa xmm6, XMMWORD PTR [96+edx+ebx] 00b65 66 0f 7f 35 00 00 00 00 movdqa XMMWORD PTR [_xmm6], xmm6 ;;; xmm7 = xmmload(pointerflush+(KT+7)*16); 00b6d 66 0f 6f 7c 1a 70 movdqa xmm7, XMMWORD PTR [112+edx+ebx] 00b73 66 0f 7f 3d 00 00 00 00 movdqa XMMWORD PTR [_xmm7], xmm7 00b7b 72 83 jb .B1.194 // 'BURST_Read_4DWORDS' Main Loop: .B2.3: 02e4c 83 c3 f0 add ebx, -16 ;;; hash32 = *(uint32_t *)(p+0); 02e4f 8b 07 mov eax, DWORD PTR [edi] ;;; hash32B = *(uint32_t *)(p+4); 02e51 8b 77 04 mov esi, DWORD PTR [4+edi] ;;; hash32C = *(uint32_t *)(p+8); 02e54 8b 57 08 mov edx, DWORD PTR [8+edi] ;;; hash32D = *(uint32_t *)(p+12); 02e57 8b 4f 0c mov ecx, DWORD PTR [12+edi] 02e5a 83 c7 10 add edi, 16 02e5d 83 fb 10 cmp ebx, 16 02e60 73 ea jae .B2.3 // 'BURST_Read_8DWORDSi' Main Loop: .B3.3: ;;; for(; Loop_Counter; Loop_Counter--, p += 4*sizeof(uint32_t)) { ;;; hash32 = *(uint32_t *)(p+0) ^ *(uint32_t *)(p+0+Second_Line_Offset); 02ebc 8b 07 mov eax, DWORD PTR [edi] ;;; hash32B = *(uint32_t *)(p+4) ^ *(uint32_t *)(p+4+Second_Line_Offset); 02ebe 8b 77 04 mov esi, DWORD PTR [4+edi] ;;; hash32C = *(uint32_t *)(p+8) ^ *(uint32_t *)(p+8+Second_Line_Offset); 02ec1 8b 57 08 mov edx, DWORD PTR [8+edi] ;;; hash32D = *(uint32_t *)(p+12) ^ *(uint32_t *)(p+12+Second_Line_Offset); 02ec4 8b 4f 0c mov ecx, DWORD PTR [12+edi] 02ec7 33 04 1f xor eax, DWORD PTR [edi+ebx] 02eca 33 74 1f 04 xor esi, DWORD PTR [4+edi+ebx] 02ece 33 54 1f 08 xor edx, DWORD PTR [8+edi+ebx] 02ed2 33 4c 1f 0c xor ecx, DWORD PTR [12+edi+ebx] 02ed6 83 c7 10 add edi, 16 02ed9 4d dec ebp 02eda 75 e0 jne .B3.3 // 'FNV1A_YoshimitsuTRIADii' Main Loop: .B4.4: ;;; hash32 = (hash32 ^ (_rotl_KAZE(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+0+Second_Line_Offset))) * PRIME; 02f4c 8b 2b mov ebp, DWORD PTR [ebx] 02f4e c1 c5 05 rol ebp, 5 02f51 33 2c 33 xor ebp, DWORD PTR [ebx+esi] 02f54 33 fd xor edi, ebp ;;; hash32B = (hash32B ^ (_rotl_KAZE(*(uint32_t *)(p+4+Second_Line_Offset),5) ^ *(uint32_t *)(p+4))) * PRIME; 02f56 8b 6c 33 04 mov ebp, DWORD PTR [4+ebx+esi] 02f5a c1 c5 05 rol ebp, 5 02f5d 33 6b 04 xor ebp, DWORD PTR [4+ebx] 02f60 33 cd xor ecx, ebp ;;; hash32C = (hash32C ^ (_rotl_KAZE(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+8+Second_Line_Offset))) * PRIME; 02f62 8b 6b 08 mov ebp, DWORD PTR [8+ebx] 02f65 c1 c5 05 rol ebp, 5 02f68 33 6c 33 08 xor ebp, DWORD PTR [8+ebx+esi] 02f6c 83 c3 0c add ebx, 12 02f6f 33 c5 xor eax, ebp 02f71 69 ff e7 d3 0a 00 imul edi, edi, 709607 02f77 69 c9 e7 d3 0a 00 imul ecx, ecx, 709607 02f7d 69 c0 e7 d3 0a 00 imul eax, eax, 709607 02f83 4a dec edx 02f84 75 c6 jne .B4.4 ; mark_description "Intel(R) C++ Compiler XE for applications running on IA-32, Version 12.1.1.258 Build 20111011"; ; mark_description "-Ox -TcHASH_linearspeed_FURY.c -FaHASH_linearspeed_FURY_Intel_IA-32_12 -FAcs";And the full dump:
Copying a 256MB block 1024 times i.e. 256GB READ + 256GB WRITTEN ... memcpy(): (256MB block); 262144MB copied in 141321 clocks or 1.855MB per clock Fetching a 512MB block 1024 times i.e. 512GB ... BURST_Read_4XMM128bit: (512MB block); 524288MB fetched in 107812 clocks or 4.863MB per clock Fetching a 512MB block 1024 times i.e. 512GB ... BURST_Read_8XMM128bit: (512MB block); 524288MB fetched in 113162 clocks or 4.633MB per clock Fetching a 64MB block 8*1024 times i.e. 512GB ... BURST_Read_4XMM128bit: (64MB block); 524288MB fetched in 107765 clocks or 4.865MB per clock Fetching a 64MB block 8*1024 times i.e. 512GB ... BURST_Read_8XMM128bit: (64MB block); 524288MB fetched in 113085 clocks or 4.636MB per clock Fetching a 128KB block 4*1024*1024 times i.e. 512GB ... BURST_Read_4XMM128bit: (128KB block); 524288MB fetched in 37580 clocks or 13.951MB per clock Fetching a 128KB block 4*1024*1024 times i.e. 512GB ... BURST_Read_8XMM128bit: (128KB block); 524288MB fetched in 36380 clocks or 14.411MB per clock Fetching a 16KB block 8*4*1024*1024 times i.e. 512GB ... BURST_Read_4XMM128bit: (16KB block); 524288MB fetched in 20436 clocks or 25.655MB per clock Fetching a 16KB block 8*4*1024*1024 times i.e. 512GB ... BURST_Read_8XMM128bit: (16KB block); 524288MB fetched in 17456 clocks or 30.035MB per clock Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 15148 clocks or 4.326MB per clock BURST_Read_8DWORDSi: (64MB block); 65536MB fetched in 14087 clocks or 4.652MB per clock FNV1A_YoshimitsuTRIADii: (64MB block); 65536MB hashed in 14539 clocks or 4.508MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 15912 clocks or 4.119MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 16427 clocks or 3.990MB per clock FNV1A_Yoshimura: (64MB block); 65536MB hashed in 14695 clocks or 4.460MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71557 clocks or 0.916MB per clock Fetching/Hashing a 2MB block 32*1024 times ... BURST_Read_4DWORDS: (2MB block); 65536MB fetched in 9532 clocks or 6.875MB per clock BURST_Read_8DWORDSi: (2MB block); 65536MB fetched in 8907 clocks or 7.358MB per clock FNV1A_YoshimitsuTRIADii: (2MB block); 65536MB hashed in 9407 clocks or 6.967MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 9750 clocks or 6.722MB per clock FNV1A_Yorikke: (2MB block); 65536MB hashed in 10187 clocks or 6.433MB per clock FNV1A_Yoshimura: (2MB block); 65536MB hashed in 9984 clocks or 6.564MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 69763 clocks or 0.939MB per clock Fetching/Hashing a 128KB block 512*1024 times ... BURST_Read_4DWORDS: (128KB block); 65536MB fetched in 9220 clocks or 7.108MB per clock BURST_Read_8DWORDSi: (128KB block); 65536MB fetched in 10577 clocks or 6.196MB per clock FNV1A_YoshimitsuTRIADii: (128KB block); 65536MB hashed in 10686 clocks or 6.133MB per clock FNV1A_YoshimitsuTRIAD: (128KB block); 65536MB hashed in 9656 clocks or 6.787MB per clock FNV1A_Yorikke: (128KB block); 65536MB hashed in 10094 clocks or 6.493MB per clock FNV1A_Yoshimura: (128KB block); 65536MB hashed in 11278 clocks or 5.811MB per clock CRC32_SlicingBy8K2: (128KB block); 65536MB hashed in 69795 clocks or 0.939MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 7878 clocks or 8.319MB per clock BURST_Read_8DWORDSi: (16KB block); 65536MB fetched in 7909 clocks or 8.286MB per clock FNV1A_YoshimitsuTRIADii: (16KB block); 65536MB hashed in 8923 clocks or 7.345MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 8955 clocks or 7.318MB per clock FNV1A_Yorikke: (16KB block); 65536MB hashed in 9719 clocks or 6.743MB per clock FNV1A_Yoshimura: (16KB block); 65536MB hashed in 9734 clocks or 6.733MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 69732 clocks or 0.940MB per clockBelow, the results after running 64bit code:
E:\Benchmark_LuckyLight_r1>benchmark_Intel_12.1_O2.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteress fnv1a-yoshimura fnv1a-YoshimitsuTRIADii fnv1a-tesla fnv1a-tesla3 xxhash-fast xxhash-strong xxhash256 -i77 200MB_as_one_line.TXT memcpy: 108 ms, 209715202 bytes = 1851 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 209715218 (x 1.000) 3389 MB/s 3389 MB/s 277e15 277e15 CityHash64 1.0.3 209715210 (x 1.000) 3389 MB/s 3448 MB/s 277e15 282e15 SpookyHash 2012-03-30 209715218 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 fnv1a-jesteress v2 209715206 (x 1.000) 3333 MB/s 3333 MB/s 273e15 273e15 fnv1a-yoshimura v2 209715206 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 fnv1a-YoshimitsuTRIADii v2 209715206 (x 1.000) 4347 MB/s 4347 MB/s 356e15 356e15 fnv1a-tesla v2 209715210 (x 1.000) 4651 MB/s 4651 MB/s 381e15 381e15 fnv1a-tesla3 v2 209715210 (x 1.000) 4347 MB/s 4347 MB/s 356e15 356e15 xxhash-fast r3 209715206 (x 1.000) 4081 MB/s 4081 MB/s 334e15 334e15 xxhash-strong r3 209715206 (x 1.000) 2816 MB/s 2816 MB/s 230e15 230e15 xxhash256 r3 209715234 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (77x1 iteration(s)). E:\Benchmark_LuckyLight_r1>benchmark_Intel_12.1_O3.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteress fnv1a-yoshimura fnv1a-YoshimitsuTRIADii fnv1a-tesla fnv1a-tesla3 xxhash-fast xxhash-strong xxhash256 -i77 200MB_as_one_line.TXT memcpy: 108 ms, 209715202 bytes = 1851 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 209715218 (x 1.000) 3389 MB/s 3278 MB/s 277e15 268e15 CityHash64 1.0.3 209715210 (x 1.000) 3389 MB/s 3448 MB/s 277e15 282e15 SpookyHash 2012-03-30 209715218 (x 1.000) 3703 MB/s 3703 MB/s 303e15 303e15 fnv1a-jesteress v2 209715206 (x 1.000) 3389 MB/s 3389 MB/s 277e15 277e15 fnv1a-yoshimura v2 209715206 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 fnv1a-YoshimitsuTRIADii v2 209715206 (x 1.000) 3846 MB/s 3846 MB/s 315e15 315e15 fnv1a-tesla v2 209715210 (x 1.000) 4651 MB/s 4651 MB/s 381e15 381e15 fnv1a-tesla3 v2 209715210 (x 1.000) 4347 MB/s 4347 MB/s 356e15 356e15 xxhash-fast r3 209715206 (x 1.000) 4081 MB/s 4081 MB/s 334e15 334e15 xxhash-strong r3 209715206 (x 1.000) 2816 MB/s 2816 MB/s 230e15 230e15 xxhash256 r3 209715234 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (77x1 iteration(s)). E:\Benchmark_LuckyLight_r1>benchmark_Intel_12.1_fast.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteress fnv1a-yoshimura fnv1a-YoshimitsuTRIADii fnv1a-tesla fnv1a-tesla3 xxhash-fast xxhash-strong xxhash256 -i77 200MB_as_one_line.TXT memcpy: 109 ms, 209715202 bytes = 1834 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 209715218 (x 1.000) 2380 MB/s 2380 MB/s 195e15 195e15 CityHash64 1.0.3 209715210 (x 1.000) 2127 MB/s 2173 MB/s 174e15 178e15 SpookyHash 2012-03-30 209715218 (x 1.000) 3703 MB/s 3703 MB/s 303e15 303e15 fnv1a-jesteress v2 209715206 (x 1.000) 3389 MB/s 3389 MB/s 277e15 277e15 fnv1a-yoshimura v2 209715206 (x 1.000) 4081 MB/s 4081 MB/s 334e15 334e15 fnv1a-YoshimitsuTRIADii v2 209715206 (x 1.000) 3846 MB/s 3846 MB/s 315e15 315e15 fnv1a-tesla v2 209715210 (x 1.000) 4651 MB/s 4651 MB/s 381e15 381e15 fnv1a-tesla3 v2 209715210 (x 1.000) 4444 MB/s 4444 MB/s 364e15 364e15 xxhash-fast r3 209715206 (x 1.000) 4081 MB/s 4081 MB/s 334e15 334e15 xxhash-strong r3 209715206 (x 1.000) 2816 MB/s 2816 MB/s 230e15 230e15 xxhash256 r3 209715234 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (77x1 iteration(s)). E:\Benchmark_LuckyLight_r1>benchmark_Microsoft_VS2010_Ox.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteress fnv1a-yoshimura fnv1a-YoshimitsuTRIADii fnv1a-tesla fnv1a-tesla3 xxhash-fast xxhash-strong xxhash256 -i77 200MB_as_one_line.TXT memcpy: 114 ms, 209715202 bytes = 1754 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 209715218 (x 1.000) 4444 MB/s 4444 MB/s 364e15 364e15 CityHash64 1.0.3 209715210 (x 1.000) 4255 MB/s 4255 MB/s 348e15 348e15 SpookyHash 2012-03-30 209715218 (x 1.000) 4081 MB/s 4081 MB/s 334e15 334e15 fnv1a-jesteress v2 209715206 (x 1.000) 3333 MB/s 3333 MB/s 273e15 273e15 fnv1a-yoshimura v2 209715206 (x 1.000) 4166 MB/s 4166 MB/s 341e15 341e15 fnv1a-YoshimitsuTRIADii v2 209715206 (x 1.000) 4255 MB/s 4255 MB/s 348e15 348e15 fnv1a-tesla v2 209715210 (x 1.000) 4651 MB/s 4651 MB/s 381e15 381e15 fnv1a-tesla3 v2 209715210 (x 1.000) 4347 MB/s 4347 MB/s 356e15 356e15 xxhash-fast r3 209715206 (x 1.000) 4255 MB/s 4255 MB/s 348e15 348e15 xxhash-strong r3 209715206 (x 1.000) 2857 MB/s 2857 MB/s 234e15 234e15 xxhash256 r3 209715234 (x 1.000) 4255 MB/s 4255 MB/s 348e15 348e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (77x1 iteration(s)).The above dumpS were made with Benchmark_LuckyLight_r1.zip package.
// [North Star One-Sword School] // - My name is Kanichiro Yoshimura. // I'm a new man. Just so you'll know who I am... // Saito-sensei. // What land are you from? // - 'Land'? // Yes. // I was born in Morioka, in Nanbu, Oshu. // It's a beautiful place. // Please... // Away to the south is Mt Hayachine... // with Mt Nansho and Mt Azumane to the west. // In the north are Mt Iwate and Mt Himekami. // Out of the high mountains flows the Nakatsu River... // through the castle town into the Kitakami below Sakuranobaba. // Ah, it's pretty as a picture! // There's nowhere like it in all Japan! // ... // - Hijikata-sensei... as you're aware, the circumstances... made the task quite difficult. // It caused a chip in the blade of my sword. // Could I perhaps ask for... the cost of a new sword? // - That should do, Your blade doesn't bear its maker's name. // - You're too kind. My humble thanks! // - What kind of a samurai is that? // - He's really something! // ... // - Where's it chipped? // - My sword's as worn down as I am. // ... // The Shinsengumi was... the sterile flower of the Shoguns' end. // /Paragon Kiichi Nakai in the paragon piece-of-art 'The Wolves of Mibu' aka 'WHEN THE LAST SWORD IS DRAWN'/ // As I said on one Japanese forum, Kiichi Nakai deserves an award worth his weight in gold, nah-nah, in DIAMONDS! uint32_t FNV1A_Hash_Yoshimura(const char *str, uint32_t wrdlen) { const uint32_t PRIME = 709607; uint32_t hash32 = 2166136261; uint32_t hash32B = 2166136261; const char *p = str; uint32_t Loop_Counter; uint32_t Second_Line_Offset; if (wrdlen >= 2*2*sizeof(uint32_t)) { Second_Line_Offset = wrdlen-((wrdlen>>4)+1)*(2*4); // ((wrdlen>>1)>>3) Loop_Counter = (wrdlen>>4); //if (wrdlen%16) Loop_Counter++; Loop_Counter++; for(; Loop_Counter; Loop_Counter--, p += 2*sizeof(uint32_t)) { // revision 1: //hash32 = (hash32 ^ (_rotl(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+4))) * PRIME; //hash32B = (hash32B ^ (_rotl(*(uint32_t *)(p+0+Second_Line_Offset),5) ^ *(uint32_t *)(p+4+Second_Line_Offset))) * PRIME; // revision 2: hash32 = (hash32 ^ (_rotl(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+0+Second_Line_Offset))) * PRIME; hash32B = (hash32B ^ (_rotl(*(uint32_t *)(p+4+Second_Line_Offset),5) ^ *(uint32_t *)(p+4))) * PRIME; } } else { // Cases: 0,1,2,3,4,5,6,7,...,15 if (wrdlen & 2*sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint32_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint32_t*)(p+4)) * PRIME; p += 4*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint16_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint16_t*)(p+2)) * PRIME; p += 2*sizeof(uint16_t); } if (wrdlen & sizeof(uint16_t)) { hash32 = (hash32 ^ *(uint16_t*)p) * PRIME; p += sizeof(uint16_t); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; } hash32 = (hash32 ^ _rotl(hash32B,5) ) * PRIME; return hash32 ^ (hash32 >> 16); }
E:\Night_Light_Sky_hash_package_r1+\DOUBLOON_hash_micro-package_r2>RUNME.BAT E:\Night_Light_Sky_hash_package_r1+\DOUBLOON_hash_micro-package_r2>type Results.txt Intel 12.1: 3333 lines read 8192 elements in the table (13 bits) Jesteress: 493 [ 576] Meiyan: 515 [ 583] Yorikke: 458 [ 579] Yoshimura: 379 [ 593] !!! SIGNIFICANTLY fastEST !!! Yoshimitsu: 497 [ 609] YoshimitsuTRIAD: 489 [ 615] FNV-1a: 969 [ 604] Larson: 947 [ 581] CRC-32: 894 [ 613] Murmur2: 656 [ 600] Murmur3: 711 [ 583] XXHfast32: 504 [ 596] XXHstrong32: 528 [ 571] 1000 lines read 2048 elements in the table (11 bits) Jesteress: 268 [ 205] Meiyan: 268 [ 205] Yorikke: 224 [ 207] Yoshimura: 235 [ 187] ??? the slowest of all the four Yo*, something to ponder about ??? Yoshimitsu: 225 [ 225] YoshimitsuTRIAD: 221 [ 219] FNV-1a: 1125 [ 225] Larson: 1131 [ 212] CRC-32: 919 [ 230] Murmur2: 439 [ 222] Murmur3: 497 [ 223] XXHfast32: 250 [ 223] XXHstrong32: 309 [ 192] 32359 lines read 65536 elements in the table (16 bits) Jesteress: 12249 [ 6883] Meiyan: 12369 [ 6897] Yorikke: 11000 [ 6872] Yoshimura: 9876 [ 6908] !!! fastEST, yet with high collisions !!! Yoshimitsu: 11489 [ 6937] YoshimitsuTRIAD: 11094 [ 6843] FNV-1a: 39491 [ 6840] Larson: 39714 [ 6889] CRC-32: 34264 [ 6891] Murmur2: 17678 [ 6786] Murmur3: 19626 [ 6850] XXHfast32: 10383 [ 6859] XXHstrong32: 12708 [ 6887] Microsoft 16: 3333 lines read 8192 elements in the table (13 bits) Jesteress: 756 [ 576] Meiyan: 781 [ 583] Yorikke: 776 [ 579] Yoshimura: 740 [ 593] Yoshimitsu: 781 [ 609] YoshimitsuTRIAD: 803 [ 615] FNV-1a: 1306 [ 604] Larson: 1304 [ 581] CRC-32: 1204 [ 613] Murmur2: 983 [ 600] Murmur3: 1031 [ 583] XXHfast32: 859 [ 596] XXHstrong32: 883 [ 571] 1000 lines read 2048 elements in the table (11 bits) Jesteress: 463 [ 205] Meiyan: 464 [ 205] Yorikke: 422 [ 207] Yoshimura: 442 [ 187] Yoshimitsu: 431 [ 225] YoshimitsuTRIAD: 423 [ 219] FNV-1a: 1311 [ 225] Larson: 1319 [ 212] CRC-32: 1148 [ 230] Murmur2: 648 [ 222] Murmur3: 637 [ 223] XXHfast32: 451 [ 223] XXHstrong32: 496 [ 192] 32359 lines read 65536 elements in the table (16 bits) Jesteress: 20162 [ 6883] Meiyan: 20124 [ 6897] Yorikke: 19101 [ 6872] Yoshimura: 17801 [ 6908] Yoshimitsu: 19616 [ 6937] YoshimitsuTRIAD: 19370 [ 6843] FNV-1a: 47142 [ 6840] Larson: 48009 [ 6889] CRC-32: 42964 [ 6891] Murmur2: 25741 [ 6786] Murmur3: 25654 [ 6850] XXHfast32: 18179 [ 6859] XXHstrong32: 20557 [ 6887] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON_hash_micro-package_r2>
E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_common_words.txt 500 lines read 1024 elements in the table (10 bits) Jesteress: 55 [ 110] Meiyan: 55 [ 102] Yorikke: 57 [ 108] Yoshimura: 58 [ 109] Yoshimitsu: 62 [ 108] YoshimitsuTRIAD: 59 [ 108] FNV-1a: 73 [ 124] Larson: 67 [ 99] CRC-32: 63 [ 101] Murmur2: 62 [ 103] Murmur3: 70 [ 101] XXHfast32: 75 [ 110] XXHstrong32: 78 [ 109] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_fr.txt 13408 lines read 32768 elements in the table (15 bits) Jesteress: 1773 [ 2427] Meiyan: 1799 [ 2377] Yorikke: 1691 [ 2392] Yoshimura: 1762 [ 2392] Yoshimitsu: 1779 [ 2392] YoshimitsuTRIAD: 1719 [ 2392] FNV-1a: 2034 [ 2446] Larson: 1930 [ 2447] CRC-32: 1993 [ 2400] Murmur2: 2034 [ 2399] Murmur3: 2163 [ 2376] XXHfast32: 2302 [ 2494] XXHstrong32: 2325 [ 2496] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_ip.txt 3925 lines read 8192 elements in the table (13 bits) Jesteress: 435 [ 819] Meiyan: 450 [ 807] Yorikke: 416 [ 821] Yoshimura: 428 [ 821] Yoshimitsu: 438 [ 821] YoshimitsuTRIAD: 423 [ 821] FNV-1a: 632 [ 796] Larson: 602 [ 789] CRC-32: 597 [ 802] Murmur2: 528 [ 825] Murmur3: 569 [ 818] XXHfast32: 668 [ 829] XXHstrong32: 678 [ 829] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_numbers.txt 500 lines read 1024 elements in the table (10 bits) Jesteress: 42 [ 300] Meiyan: 35 [ 125] Yorikke: 33 [ 86] Yoshimura: 33 [ 86] Yoshimitsu: 37 [ 86] YoshimitsuTRIAD: 35 [ 86] FNV-1a: 35 [ 108] Larson: 25 [ 16] CRC-32: 34 [ 64] Murmur2: 39 [ 104] Murmur3: 44 [ 104] XXHfast32: 52 [ 102] XXHstrong32: 52 [ 102] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_postfix.txt 500 lines read 1024 elements in the table (10 bits) Jesteress: 73 [ 106] Meiyan: 77 [ 112] Yorikke: 68 [ 111] Yoshimura: 55 [ 112] Yoshimitsu: 71 [ 104] YoshimitsuTRIAD: 71 [ 103] FNV-1a: 158 [ 105] Larson: 155 [ 105] CRC-32: 139 [ 94] Murmur2: 99 [ 111] Murmur3: 108 [ 105] XXHfast32: 71 [ 106] XXHstrong32: 76 [ 112] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_prefix.txt 500 lines read 1024 elements in the table (10 bits) Jesteress: 77 [ 102] Meiyan: 79 [ 106] Yorikke: 70 [ 94] Yoshimura: 59 [ 109] Yoshimitsu: 75 [ 103] YoshimitsuTRIAD: 78 [ 101] FNV-1a: 157 [ 94] Larson: 151 [ 99] CRC-32: 143 [ 107] Murmur2: 101 [ 106] Murmur3: 108 [ 103] XXHfast32: 73 [ 103] XXHstrong32: 78 [ 102] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_Shakespeare.txt 3228 lines read 8192 elements in the table (13 bits) Jesteress: 363 [ 585] Meiyan: 369 [ 588] Yorikke: 360 [ 552] Yoshimura: 371 [ 552] Yoshimitsu: 380 [ 552] YoshimitsuTRIAD: 364 [ 552] FNV-1a: 407 [ 555] Larson: 387 [ 583] CRC-32: 409 [ 563] Murmur2: 422 [ 566] Murmur3: 446 [ 555] XXHfast32: 466 [ 491] XXHstrong32: 477 [ 491] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_variables.txt 1842 lines read 4096 elements in the table (12 bits) Jesteress: 253 [ 366] Meiyan: 253 [ 350] Yorikke: 237 [ 359] Yoshimura: 241 [ 356] Yoshimitsu: 249 [ 359] YoshimitsuTRIAD: 238 [ 361] FNV-1a: 300 [ 374] Larson: 289 [ 366] CRC-32: 300 [ 338] Murmur2: 288 [ 383] Murmur3: 307 [ 334] XXHfast32: 316 [ 347] XXHstrong32: 321 [ 355] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I dic_win32.txt 1992 lines read 4096 elements in the table (12 bits) Jesteress: 292 [ 397] Meiyan: 303 [ 409] Yorikke: 275 [ 431] Yoshimura: 254 [ 415] Yoshimitsu: 287 [ 431] YoshimitsuTRIAD: 278 [ 439] FNV-1a: 404 [ 428] Larson: 389 [ 416] CRC-32: 397 [ 426] Murmur2: 339 [ 415] Murmur3: 366 [ 380] XXHfast32: 348 [ 420] XXHstrong32: 360 [ 429] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I IPS.TXT 2995394 lines read 8388608 elements in the table (23 bits) Jesteress: 1127475 [691369] Meiyan: 1061782 [593723] Yorikke: 1021831 [476699] Yoshimura: 1031132 [476699] Yoshimitsu: 1048772 [476699] YoshimitsuTRIAD: 1038688 [476699] FNV-1a: 1370596 [477067] Larson: 1353744 [475575] CRC-32: 1313587 [472854] Murmur2: 1309879 [476330] Murmur3: 1215611 [476845] XXHfast32: 1378884 [476358] XXHstrong32: 1395106 [476358] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I "Word-list_00,105,982_English_Spell-Check_High-Quality.wrd" 105982 lines read 262144 elements in the table (18 bits) Jesteress: 14362 [18664] Meiyan: 14934 [18738] Yorikke: 13907 [18742] Yoshimura: 14663 [18756] Yoshimitsu: 14842 [18742] YoshimitsuTRIAD: 14192 [18742] FNV-1a: 17874 [18743] Larson: 16880 [18872] CRC-32: 16845 [18834] Murmur2: 16316 [18762] Murmur3: 17861 [18751] XXHfast32: 18942 [18787] XXHstrong32: 19269 [18800] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I MASAKARI_General-Purpose_Grade_English_Wordlist_r3_316423_words.wrd 316423 lines read 1048576 elements in the table (20 bits) Jesteress: 87537 [43357] Meiyan: 86900 [43581] Yorikke: 83906 [43161] Yoshimura: 85387 [43256] Yoshimitsu: 86927 [43161] YoshimitsuTRIAD: 84907 [43154] FNV-1a: 97634 [43490] Larson: 94391 [43654] CRC-32: 96486 [43478] Murmur2: 94975 [43072] Murmur3: 97717 [43600] XXHfast32: 101965 [43243] XXHstrong32: 104116 [43132] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I "Word-list_00,584,879_Russian_Spell-Check_Unknown-Quality.slv" 584879 lines read 2097152 elements in the table (21 bits) Jesteress: 185028 [75404] Meiyan: 186430 [75377] Yorikke: 182219 [74661] Yoshimura: 183194 [74718] Yoshimitsu: 187853 [74661] YoshimitsuTRIAD: 184053 [74661] FNV-1a: 213275 [74184] Larson: 186589 [74389] CRC-32: 207731 [74307] Murmur2: 206086 [74234] Murmur3: 205561 [74612] XXHfast32: 222088 [74572] XXHstrong32: 225351 [74603] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I "Sentence-list_00,032,359_English_The_Holy_Bible.txt" 32359 lines read 65536 elements in the table (16 bits) Jesteress: 12278 [ 6883] Meiyan: 12354 [ 6897] Yorikke: 11006 [ 6872] Yoshimura: 9874 [ 6908] Yoshimitsu: 11472 [ 6937] YoshimitsuTRIAD: 11141 [ 6843] FNV-1a: 39459 [ 6840] Larson: 39537 [ 6889] CRC-32: 34087 [ 6891] Murmur2: 17701 [ 6786] Murmur3: 19616 [ 6850] XXHfast32: 10451 [ 6859] XXHstrong32: 12687 [ 6887] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I KT1million.txt 1000000 lines read 2097152 elements in the table (21 bits) Jesteress: 660178 [205069] Meiyan: 659993 [205069] Yorikke: 612629 [204390] Yoshimura: 643650 [204625] Yoshimitsu: 607810 [204576] YoshimitsuTRIAD: 630081 [204315] FNV-1a: 2035632 [553555] Larson: 6044004 [934464] CRC-32: 1327146 [204106] Murmur2: 824164 [203798] Murmur3: 882044 [204105] XXHfast32: 650894 [204659] XXHstrong32: 727868 [204421] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I LP3.TXT 3333 lines read 8192 elements in the table (13 bits) Jesteress: 499 [ 576] Meiyan: 519 [ 583] Yorikke: 462 [ 579] Yoshimura: 382 [ 593] Yoshimitsu: 499 [ 609] YoshimitsuTRIAD: 494 [ 615] FNV-1a: 975 [ 604] Larson: 953 [ 581] CRC-32: 898 [ 613] Murmur2: 661 [ 600] Murmur3: 712 [ 583] XXHfast32: 508 [ 596] XXHstrong32: 529 [ 571] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I Word-list_12,561,874_wikipedia-en-html.tar.wrd 12561874 lines read 33554432 elements in the table (25 bits) Jesteress: 6099742 [2121868] Meiyan: 6121323 [2111271] Yorikke: 5996789 [2084954] Yoshimura: 6023222 [2086155] Yoshimitsu: 6106939 [2084954] YoshimitsuTRIAD: 6029975 [2084931] FNV-1a: 6547941 [2081195] Larson: 6049967 [2080111] CRC-32: 6495821 [2075088] Murmur2: 6493169 [2081476] Murmur3: 6571000 [2082084] XXHfast32: 6787475 [2084164] XXHstrong32: 6867432 [2084514] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.01bb.txt 81 lines read 256 elements in the table (8 bits) Jesteress: 5 [ 9] Meiyan: 5 [ 9] Yorikke: 5 [ 12] Yoshimura: 5 [ 12] Yoshimitsu: 6 [ 12] YoshimitsuTRIAD: 6 [ 12] FNV-1a: 5 [ 11] Larson: 4 [ 2] CRC-32: 5 [ 11] Murmur2: 5 [ 14] Murmur3: 6 [ 7] XXHfast32: 7 [ 14] XXHstrong32: 7 [ 14] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.02bb.txt 1575 lines read 4096 elements in the table (12 bits) Jesteress: 111 [ 391] Meiyan: 104 [ 259] Yorikke: 104 [ 271] Yoshimura: 103 [ 271] Yoshimitsu: 118 [ 271] YoshimitsuTRIAD: 112 [ 271] FNV-1a: 108 [ 282] Larson: 97 [ 253] CRC-32: 108 [ 236] Murmur2: 122 [ 247] Murmur3: 136 [ 273] XXHfast32: 156 [ 297] XXHstrong32: 162 [ 297] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.03bb.txt 9986 lines read 32768 elements in the table (15 bits) Jesteress: 674 [ 1360] Meiyan: 709 [ 1439] Yorikke: 677 [ 1318] Yoshimura: 695 [ 1318] Yoshimitsu: 764 [ 1318] YoshimitsuTRIAD: 715 [ 1318] FNV-1a: 832 [ 1395] Larson: 811 [ 1364] CRC-32: 914 [ 1714] Murmur2: 863 [ 1380] Murmur3: 930 [ 1360] XXHfast32: 1039 [ 1397] XXHstrong32: 1064 [ 1397] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.04bb.txt 33165 lines read 131072 elements in the table (17 bits) Jesteress: 2562 [ 4631] Meiyan: 2566 [ 4631] Yorikke: 2331 [ 3937] Yoshimura: 2413 [ 3937] Yoshimitsu: 2632 [ 3937] YoshimitsuTRIAD: 2450 [ 3937] FNV-1a: 3577 [ 3979] Larson: 3034 [ 3899] CRC-32: 3293 [ 4135] Murmur2: 3098 [ 3837] Murmur3: 3365 [ 3845] XXHfast32: 4032 [ 3952] XXHstrong32: 4112 [ 3952] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.05bb.txt 78205 lines read 262144 elements in the table (18 bits) Jesteress: 6798 [11187] Meiyan: 6801 [11187] Yorikke: 6159 [10636] Yoshimura: 6477 [10636] Yoshimitsu: 6865 [10636] YoshimitsuTRIAD: 6456 [10636] FNV-1a: 9770 [10678] Larson: 9895 [10825] CRC-32: 9628 [10842] Murmur2: 8362 [10649] Murmur3: 10010 [10518] XXHfast32: 10700 [10483] XXHstrong32: 10555 [10483] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.06bb.txt 142365 lines read 524288 elements in the table (19 bits) Jesteress: 18133 [19448] Meiyan: 20496 [18861] Yorikke: 18434 [17816] Yoshimura: 18823 [17816] Yoshimitsu: 19489 [17816] YoshimitsuTRIAD: 18845 [17816] FNV-1a: 26151 [17781] Larson: 24976 [17688] CRC-32: 25915 [17848] Murmur2: 23100 [17633] Murmur3: 24090 [17821] XXHfast32: 29012 [17670] XXHstrong32: 29330 [17670] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.07bb.txt 211652 lines read 524288 elements in the table (19 bits) Jesteress: 36364 [39257] Meiyan: 40120 [38398] Yorikke: 38248 [37823] Yoshimura: 38533 [37823] Yoshimitsu: 38683 [37823] YoshimitsuTRIAD: 37893 [37823] FNV-1a: 52364 [37298] Larson: 51681 [37714] CRC-32: 52028 [37321] Murmur2: 46047 [37627] Murmur3: 47583 [37631] XXHfast32: 54039 [37534] XXHstrong32: 54002 [37534] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.08bb.txt 278395 lines read 1048576 elements in the table (20 bits) Jesteress: 64074 [51565] Meiyan: 63110 [51565] Yorikke: 58291 [33838] Yoshimura: 65054 [33850] Yoshimitsu: 60619 [33838] YoshimitsuTRIAD: 59467 [33838] FNV-1a: 85397 [33809] Larson: 82014 [33913] CRC-32: 84042 [34028] Murmur2: 75295 [34051] Murmur3: 76845 [34004] XXHfast32: 77532 [33796] XXHstrong32: 78292 [33796] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.09bb.txt 337224 lines read 1048576 elements in the table (20 bits) Jesteress: 83042 [66182] Meiyan: 83380 [66182] Yorikke: 79470 [48801] Yoshimura: 86656 [48558] Yoshimitsu: 80643 [48801] YoshimitsuTRIAD: 79380 [48801] FNV-1a: 115921 [48858] Larson: 114228 [49052] CRC-32: 116016 [48517] Murmur2: 101855 [48841] Murmur3: 104097 [48797] XXHfast32: 106367 [48621] XXHstrong32: 112922 [48758] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.10bb.txt 383814 lines read 1048576 elements in the table (20 bits) Jesteress: 101379 [84612] Meiyan: 112461 [76863] Yorikke: 99034 [62510] Yoshimura: 104967 [62297] Yoshimitsu: 99793 [62510] YoshimitsuTRIAD: 98484 [62510] FNV-1a: 144477 [62851] Larson: 141790 [62557] CRC-32: 142470 [62577] Murmur2: 124509 [62557] Murmur3: 126540 [62212] XXHfast32: 129911 [62230] XXHstrong32: 135430 [62268] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.11bb.txt 418451 lines read 1048576 elements in the table (20 bits) Jesteress: 113387 [88420] Meiyan: 125721 [82083] Yorikke: 115809 [73433] Yoshimura: 121722 [73572] Yoshimitsu: 117557 [73433] YoshimitsuTRIAD: 114879 [73433] FNV-1a: 171661 [73457] Larson: 171210 [73608] CRC-32: 170209 [73523] Murmur2: 145802 [73524] Murmur3: 148902 [73515] XXHfast32: 148852 [73255] XXHstrong32: 154390 [73329] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.12bb.txt 443258 lines read 1048576 elements in the table (20 bits) Jesteress: 126069 [106593] Meiyan: 125656 [106593] Yorikke: 125610 [81595] Yoshimura: 132747 [81647] Yoshimitsu: 127560 [81595] YoshimitsuTRIAD: 129446 [81765] FNV-1a: 191457 [81923] Larson: 190087 [81574] CRC-32: 188646 [81889] Murmur2: 161249 [81623] Murmur3: 163593 [81745] XXHfast32: 160971 [81331] XXHstrong32: 167431 [81644] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.13bb.txt 460996 lines read 1048576 elements in the table (20 bits) Jesteress: 131587 [106565] Meiyan: 131861 [106565] Yorikke: 136431 [88333] Yoshimura: 142853 [87775] Yoshimitsu: 138272 [88333] YoshimitsuTRIAD: 139798 [87917] FNV-1a: 209116 [88079] Larson: 208263 [87914] CRC-32: 208563 [88315] Murmur2: 174421 [87982] Murmur3: 178281 [87955] XXHfast32: 170483 [87607] XXHstrong32: 178399 [87976] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.14bb.txt 473724 lines read 1048576 elements in the table (20 bits) Jesteress: 138655 [112340] Meiyan: 171959 [104891] Yorikke: 144765 [92770] Yoshimura: 149572 [92273] Yoshimitsu: 146566 [92770] YoshimitsuTRIAD: 147353 [92535] FNV-1a: 225508 [92759] Larson: 223607 [92421] CRC-32: 221749 [92822] Murmur2: 183675 [92539] Murmur3: 186294 [92394] XXHfast32: 178004 [92557] XXHstrong32: 186232 [92716] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.15bb.txt 482999 lines read 1048576 elements in the table (20 bits) Jesteress: 141625 [107836] Meiyan: 175493 [102413] Yorikke: 152255 [95834] Yoshimura: 155068 [95714] Yoshimitsu: 154219 [95834] YoshimitsuTRIAD: 159750 [95832] FNV-1a: 242705 [95739] Larson: 240987 [96154] CRC-32: 236391 [96147] Murmur2: 193721 [96155] Murmur3: 197035 [96240] XXHfast32: 184955 [95834] XXHstrong32: 191449 [96300] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.16bb.txt 489867 lines read 1048576 elements in the table (20 bits) Jesteress: 151871 [116276] Meiyan: 151857 [116276] Yorikke: 156678 [98591] Yoshimura: 179577 [98385] Yoshimitsu: 162056 [98457] YoshimitsuTRIAD: 159472 [98657] FNV-1a: 257903 [98529] Larson: 254964 [98403] CRC-32: 248872 [98576] Murmur2: 200497 [98328] Murmur3: 206742 [98456] XXHfast32: 189946 [98364] XXHstrong32: 196451 [98497] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.17bb.txt 495017 lines read 1048576 elements in the table (20 bits) Jesteress: 153804 [114065] Meiyan: 153906 [114065] Yorikke: 160727 [100385] Yoshimura: 182862 [100607] Yoshimitsu: 180308 [100489] YoshimitsuTRIAD: 164985 [100062] FNV-1a: 268691 [100188] Larson: 266070 [100300] CRC-32: 260190 [100364] Murmur2: 208132 [100541] Murmur3: 212486 [100218] XXHfast32: 200719 [100485] XXHstrong32: 214306 [100317] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.18bb.txt 498915 lines read 1048576 elements in the table (20 bits) Jesteress: 156404 [115572] Meiyan: 190809 [110194] Yorikke: 166007 [101763] Yoshimura: 185765 [101844] Yoshimitsu: 185718 [102057] YoshimitsuTRIAD: 182371 [101879] FNV-1a: 280750 [102199] Larson: 278301 [102176] CRC-32: 268174 [102377] Murmur2: 212090 [101680] Murmur3: 225183 [101845] XXHfast32: 204030 [101981] XXHstrong32: 218161 [102179] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.19bb.txt 501899 lines read 1048576 elements in the table (20 bits) Jesteress: 159026 [110428] Meiyan: 196639 [107405] Yorikke: 173452 [103325] Yoshimura: 191176 [103244] Yoshimitsu: 191115 [102652] YoshimitsuTRIAD: 189161 [102965] FNV-1a: 296455 [103195] Larson: 294768 [103198] CRC-32: 282116 [103036] Murmur2: 220884 [103031] Murmur3: 233989 [102852] XXHfast32: 207972 [103032] XXHstrong32: 221425 [102896] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.20bb.txt 504217 lines read 1048576 elements in the table (20 bits) Jesteress: 161172 [115506] Meiyan: 161663 [115506] Yorikke: 173492 [104070] Yoshimura: 191931 [104151] Yoshimitsu: 191474 [103646] YoshimitsuTRIAD: 175745 [103628] FNV-1a: 305018 [103864] Larson: 304062 [103821] CRC-32: 291488 [103608] Murmur2: 230172 [103919] Murmur3: 233920 [104087] XXHfast32: 210066 [103782] XXHstrong32: 223473 [104013] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.21bb.txt 506066 lines read 1048576 elements in the table (20 bits) Jesteress: 163318 [113012] Meiyan: 164062 [113012] Yorikke: 176658 [104316] Yoshimura: 192358 [104623] Yoshimitsu: 194369 [104705] YoshimitsuTRIAD: 192559 [104679] FNV-1a: 313108 [104835] Larson: 311513 [104532] CRC-32: 301653 [104742] Murmur2: 235547 [104888] Murmur3: 240273 [104387] XXHfast32: 210428 [104662] XXHstrong32: 224504 [104573] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.22bb.txt 507583 lines read 1048576 elements in the table (20 bits) Jesteress: 166682 [114105] Meiyan: 205921 [110571] Yorikke: 184650 [105351] Yoshimura: 195961 [104762] Yoshimitsu: 202397 [105729] YoshimitsuTRIAD: 195758 [104978] FNV-1a: 328961 [104935] Larson: 328365 [105175] CRC-32: 311029 [104998] Murmur2: 236242 [104749] Murmur3: 245762 [105199] XXHfast32: 214233 [104940] XXHstrong32: 229139 [105016] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.23bb.txt 508877 lines read 1048576 elements in the table (20 bits) Jesteress: 167349 [110050] Meiyan: 207525 [108624] Yorikke: 187440 [106022] Yoshimura: 198855 [106036] Yoshimitsu: 204153 [105431] YoshimitsuTRIAD: 199917 [105832] FNV-1a: 336048 [105400] Larson: 335573 [105396] CRC-32: 319559 [105419] Murmur2: 242107 [105805] Murmur3: 250438 [105502] XXHfast32: 216041 [105902] XXHstrong32: 229143 [106024] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.24bb.txt 510014 lines read 1048576 elements in the table (20 bits) Jesteress: 168266 [113461] Meiyan: 169324 [113461] Yorikke: 188888 [106407] Yoshimura: 208678 [106092] Yoshimitsu: 203283 [105923] YoshimitsuTRIAD: 200920 [106208] FNV-1a: 346185 [106203] Larson: 346712 [106059] CRC-32: 328348 [106558] Murmur2: 244831 [106382] Murmur3: 253848 [106158] XXHfast32: 216613 [106017] XXHstrong32: 230960 [106302] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.25bb.txt 510996 lines read 1048576 elements in the table (20 bits) Jesteress: 172669 [112020] Meiyan: 173511 [112020] Yorikke: 200925 [106324] Yoshimura: 212188 [106446] Yoshimitsu: 207218 [106773] YoshimitsuTRIAD: 205126 [106416] FNV-1a: 360200 [106601] Larson: 359532 [106146] CRC-32: 338281 [106727] Murmur2: 251226 [106283] Murmur3: 261043 [106673] XXHfast32: 226457 [106431] XXHstrong32: 245434 [106816] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.26bb.txt 511873 lines read 1048576 elements in the table (20 bits) Jesteress: 173598 [112029] Meiyan: 217533 [110117] Yorikke: 203487 [106809] Yoshimura: 213089 [107001] Yoshimitsu: 211990 [107101] YoshimitsuTRIAD: 207596 [106390] FNV-1a: 370280 [106616] Larson: 370022 [106834] CRC-32: 346640 [107142] Murmur2: 252874 [106937] Murmur3: 263816 [106915] XXHfast32: 228462 [106803] XXHstrong32: 246408 [106789] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.27bb.txt 512674 lines read 1048576 elements in the table (20 bits) Jesteress: 176807 [110664] Meiyan: 221206 [108734] Yorikke: 208243 [107081] Yoshimura: 214907 [107166] Yoshimitsu: 215742 [107065] YoshimitsuTRIAD: 211483 [107459] FNV-1a: 380380 [107304] Larson: 378562 [107253] CRC-32: 354381 [106804] Murmur2: 259651 [107228] Murmur3: 270652 [107518] XXHfast32: 229246 [107129] XXHstrong32: 247913 [107180] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.28bb.txt 513405 lines read 1048576 elements in the table (20 bits) Jesteress: 175816 [111704] Meiyan: 177814 [111704] Yorikke: 207895 [107525] Yoshimura: 215297 [107462] Yoshimitsu: 215132 [107441] YoshimitsuTRIAD: 210777 [107536] FNV-1a: 388494 [107505] Larson: 388573 [107204] CRC-32: 361609 [107235] Murmur2: 261509 [107103] Murmur3: 272911 [107594] XXHfast32: 230113 [107423] XXHstrong32: 248546 [107503] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.29bb.txt 514083 lines read 1048576 elements in the table (20 bits) Jesteress: 180358 [110581] Meiyan: 182232 [110581] Yorikke: 212621 [107784] Yoshimura: 218391 [107827] Yoshimitsu: 218819 [107548] YoshimitsuTRIAD: 216672 [107458] FNV-1a: 401997 [107694] Larson: 401161 [107831] CRC-32: 371794 [107796] Murmur2: 269080 [107782] Murmur3: 280765 [107727] XXHfast32: 232986 [107060] XXHstrong32: 250699 [107740] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.30bb.txt 514765 lines read 1048576 elements in the table (20 bits) Jesteress: 183349 [111111] Meiyan: 229579 [109944] Yorikke: 215865 [108033] Yoshimura: 219502 [108131] Yoshimitsu: 222663 [108111] YoshimitsuTRIAD: 219585 [107908] FNV-1a: 412679 [108377] Larson: 413549 [108133] CRC-32: 379710 [107596] Murmur2: 271034 [108015] Murmur3: 283672 [107985] XXHfast32: 234314 [108096] XXHstrong32: 252193 [107658] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.31bb.txt 515352 lines read 1048576 elements in the table (20 bits) Jesteress: 184448 [110505] Meiyan: 231231 [108715] Yorikke: 218663 [108335] Yoshimura: 219951 [108236] Yoshimitsu: 224578 [107736] YoshimitsuTRIAD: 220280 [108361] FNV-1a: 417238 [108608] Larson: 417215 [108199] CRC-32: 387301 [108324] Murmur2: 275743 [108399] Murmur3: 287720 [108381] XXHfast32: 233248 [107998] XXHstrong32: 252134 [108267] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.32bb.txt 515858 lines read 1048576 elements in the table (20 bits) Jesteress: 184986 [111346] Meiyan: 186648 [111346] Yorikke: 216203 [108144] Yoshimura: 230350 [108966] Yoshimitsu: 223644 [108467] YoshimitsuTRIAD: 220120 [108605] FNV-1a: 426309 [108269] Larson: 426238 [108719] CRC-32: 396697 [107992] Murmur2: 278863 [108191] Murmur3: 290665 [108233] XXHfast32: 235971 [108792] XXHstrong32: 253879 [108703] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>hash_I TreeToRip.64bb.txt 520609 lines read 1048576 elements in the table (20 bits) Jesteress: 245433 [110190] Meiyan: 247636 [110190] Yorikke: 278324 [109926] Yoshimura: 290826 [109977] Yoshimitsu: 276923 [110169] YoshimitsuTRIAD: 287458 [110354] FNV-1a: 759015 [109761] Larson: 764585 [110226] CRC-32: 651704 [110499] Murmur2: 390672 [110482] Murmur3: 417431 [110343] XXHfast32: 299072 [110172] XXHstrong32: 338054 [110020] E:\Night_Light_Sky_hash_package_r1+\DOUBLOON>As I see things, FNV1A_Yoshimura complements FNV1A_Yorikke, as always more torture is needed.
Note1: The results are obtained on i7-3930K, 4500MHz, CPU bus: 125MHz, RAM bus: 2400MHz (DDR3, Quad Channel). Note2: Microsoft v16 compiler was used. Note3: First number is time, in brackets collisions. Note4: All 'Night-Light Sky' hash package 38 sub-tests were used i.e. 38 different types of keys. ~3 million IPs (dot format): 2995394 lines read 8388608 elements in the table (23 bits) Yorikke: 1238372 [476699] YoshimitsuTRIAD: 1285032 [476699] iSCSI CRC: 1150351 [479542] 3333 Latin Powers: 3333 lines read 8192 elements in the table (13 bits) Yorikke: 466 [ 579] YoshimitsuTRIAD: 482 [ 615] iSCSI CRC: 500 [ 594] 100MB as one line (Microsoft_16): 1 lines read 4 elements in the table (2 bits) Yorikke: 129557 [ 0] YoshimitsuTRIAD: 128540 [ 0] iSCSI CRC: 207864 [ 0] 5,000,000 Knight Tours: 5000000 lines read 16777216 elements in the table (24 bits) Yorikke: 4458158 [677478] YoshimitsuTRIAD: 4601132 [676878] iSCSI CRC: 4695385 [676111] enwiki's 20,718,196 8bytes long (order 4) HEX BBs: 20718196 lines read 67108864 elements in the table (26 bits) Yorikke: 8808986 [2980029] YoshimitsuTRIAD: 9361807 [2980029] iSCSI CRC: 7143019 [3013629] Zarathustra's BBs orders 1: 81 lines read 256 elements in the table (8 bits) Yorikke: 5 [ 12] YoshimitsuTRIAD: 5 [ 12] iSCSI CRC: 4 [ 0] Zarathustra's BBs orders 2: 1575 lines read 4096 elements in the table (12 bits) Yorikke: 115 [ 271] YoshimitsuTRIAD: 120 [ 271] iSCSI CRC: 101 [ 289] Zarathustra's BBs orders 3: 9986 lines read 32768 elements in the table (15 bits) Yorikke: 847 [ 1318] YoshimitsuTRIAD: 878 [ 1318] iSCSI CRC: 774 [ 1476] Zarathustra's BBs orders 4: 33165 lines read 131072 elements in the table (17 bits) Yorikke: 3341 [ 3937] YoshimitsuTRIAD: 3497 [ 3937] iSCSI CRC: 3212 [ 4078] Zarathustra's BBs orders 5: 78205 lines read 262144 elements in the table (18 bits) Yorikke: 9131 [10636] YoshimitsuTRIAD: 9468 [10636] iSCSI CRC: 8694 [10745] Zarathustra's BBs orders 6: 142365 lines read 524288 elements in the table (19 bits) Yorikke: 17766 [17816] YoshimitsuTRIAD: 18633 [17816] iSCSI CRC: 16454 [17643] Zarathustra's BBs orders 7: 211652 lines read 524288 elements in the table (19 bits) Yorikke: 32123 [37823] YoshimitsuTRIAD: 33208 [37823] iSCSI CRC: 29847 [37684] Zarathustra's BBs orders 8: 278395 lines read 1048576 elements in the table (20 bits) Yorikke: 45328 [33838] YoshimitsuTRIAD: 49608 [33838] iSCSI CRC: 42203 [34034] Zarathustra's BBs orders 9: 337224 lines read 1048576 elements in the table (20 bits) Yorikke: 65153 [48801] YoshimitsuTRIAD: 69068 [48801] iSCSI CRC: 62578 [49125] Zarathustra's BBs orders 10: 383814 lines read 1048576 elements in the table (20 bits) Yorikke: 83422 [62510] YoshimitsuTRIAD: 86229 [62510] iSCSI CRC: 80464 [62258] Zarathustra's BBs orders 11: 418451 lines read 1048576 elements in the table (20 bits) Yorikke: 104349 [73433] YoshimitsuTRIAD: 106416 [73433] iSCSI CRC: 97351 [73705] Zarathustra's BBs orders 12: 443258 lines read 1048576 elements in the table (20 bits) Yorikke: 112222 [81595] YoshimitsuTRIAD: 127145 [81765] iSCSI CRC: 108535 [81383] Zarathustra's BBs orders 13: 460996 lines read 1048576 elements in the table (20 bits) Yorikke: 131190 [88333] YoshimitsuTRIAD: 148895 [87917] iSCSI CRC: 122748 [88088] Zarathustra's BBs orders 14: 473724 lines read 1048576 elements in the table (20 bits) Yorikke: 151528 [92770] YoshimitsuTRIAD: 159421 [92535] iSCSI CRC: 133972 [92174] Zarathustra's BBs orders 15: 482999 lines read 1048576 elements in the table (20 bits) Yorikke: 160552 [95834] YoshimitsuTRIAD: 174178 [95832] iSCSI CRC: 148266 [96088] Zarathustra's BBs orders 16: 489867 lines read 1048576 elements in the table (20 bits) Yorikke: 175229 [98591] YoshimitsuTRIAD: 174904 [98657] iSCSI CRC: 155505 [98144] Zarathustra's BBs orders 17: 495017 lines read 1048576 elements in the table (20 bits) Yorikke: 172648 [100385] YoshimitsuTRIAD: 186161 [100062] iSCSI CRC: 170334 [100435] Zarathustra's BBs orders 18: 498915 lines read 1048576 elements in the table (20 bits) Yorikke: 179911 [101763] YoshimitsuTRIAD: 191807 [101879] iSCSI CRC: 174525 [102065] Zarathustra's BBs orders 19: 501899 lines read 1048576 elements in the table (20 bits) Yorikke: 188780 [103325] YoshimitsuTRIAD: 201367 [102965] iSCSI CRC: 182703 [103007] Zarathustra's BBs orders 20: 504217 lines read 1048576 elements in the table (20 bits) Yorikke: 190273 [104070] YoshimitsuTRIAD: 200744 [103628] iSCSI CRC: 187587 [104112] Zarathustra's BBs orders 21: 506066 lines read 1048576 elements in the table (20 bits) Yorikke: 196739 [104316] YoshimitsuTRIAD: 208856 [104679] iSCSI CRC: 195118 [104678] Zarathustra's BBs orders 22: 507583 lines read 1048576 elements in the table (20 bits) Yorikke: 202304 [105351] YoshimitsuTRIAD: 216023 [104978] iSCSI CRC: 197859 [104859] Zarathustra's BBs orders 23: 508877 lines read 1048576 elements in the table (20 bits) Yorikke: 210491 [106022] YoshimitsuTRIAD: 227550 [105832] iSCSI CRC: 207331 [105659] Zarathustra's BBs orders 24: 510014 lines read 1048576 elements in the table (20 bits) Yorikke: 211333 [106407] YoshimitsuTRIAD: 230566 [106208] iSCSI CRC: 208658 [105928] Zarathustra's BBs orders 25: 510996 lines read 1048576 elements in the table (20 bits) Yorikke: 214700 [106324] YoshimitsuTRIAD: 236008 [106416] iSCSI CRC: 218439 [106014] Zarathustra's BBs orders 26: 511873 lines read 1048576 elements in the table (20 bits) Yorikke: 219929 [106809] YoshimitsuTRIAD: 241897 [106390] iSCSI CRC: 220148 [106719] Zarathustra's BBs orders 27: 512674 lines read 1048576 elements in the table (20 bits) Yorikke: 231864 [107081] YoshimitsuTRIAD: 252580 [107459] iSCSI CRC: 229759 [107097] Zarathustra's BBs orders 28: 513405 lines read 1048576 elements in the table (20 bits) Yorikke: 227824 [107525] YoshimitsuTRIAD: 246079 [107536] iSCSI CRC: 229897 [107386] Zarathustra's BBs orders 29: 514083 lines read 1048576 elements in the table (20 bits) Yorikke: 236937 [107784] YoshimitsuTRIAD: 260059 [107458] iSCSI CRC: 239683 [107226] Zarathustra's BBs orders 30: 514765 lines read 1048576 elements in the table (20 bits) Yorikke: 241621 [108033] YoshimitsuTRIAD: 261804 [107908] iSCSI CRC: 239854 [108091] Zarathustra's BBs orders 31: 515352 lines read 1048576 elements in the table (20 bits) Yorikke: 255610 [108335] YoshimitsuTRIAD: 270565 [108361] iSCSI CRC: 247967 [108088] Zarathustra's BBs orders 32: 515858 lines read 1048576 elements in the table (20 bits) Yorikke: 252470 [108144] YoshimitsuTRIAD: 268524 [108605] iSCSI CRC: 250346 [108197] Zarathustra's BBs orders 64: 520609 lines read 1048576 elements in the table (20 bits) Yorikke: 343299 [109926] YoshimitsuTRIAD: 356380 [110354] iSCSI CRC: 368246 [110170] Note5: Zarathustra's (order 1..32,64) HEX BBs (Building Blocks) i.e. strings 2..64,128 bytes long derived from the file below. E:\Night_Light_Sky_hash_package_r1\Leprechaun_BBhex_rev15fixfix_subrevA_32bit_64bit>dir 00,522,911 bytes Thus Spake Zarathustra by Friedrich Nietzsche, revision 4.txt ... 00,000,324 bytes TreeToRip.01bb.txt; Zarathustra's BBs order 01: 000,081 keys 00,009,450 bytes TreeToRip.02bb.txt; Zarathustra's BBs order 02: 001,575 keys 00,079,888 bytes TreeToRip.03bb.txt; Zarathustra's BBs order 03: 009,986 keys 00,331,650 bytes TreeToRip.04bb.txt; Zarathustra's BBs order 04: 033,165 keys 00,938,460 bytes TreeToRip.05bb.txt; Zarathustra's BBs order 05: 078,205 keys 01,993,110 bytes TreeToRip.06bb.txt; Zarathustra's BBs order 06: 142,365 keys 03,386,432 bytes TreeToRip.07bb.txt; Zarathustra's BBs order 07: 211,652 keys 05,011,110 bytes TreeToRip.08bb.txt; Zarathustra's BBs order 08: 278,395 keys 06,744,480 bytes TreeToRip.09bb.txt; Zarathustra's BBs order 09: 337,224 keys 08,443,908 bytes TreeToRip.10bb.txt; Zarathustra's BBs order 10: 383,814 keys 10,042,824 bytes TreeToRip.11bb.txt; Zarathustra's BBs order 11: 418,451 keys 11,524,708 bytes TreeToRip.12bb.txt; Zarathustra's BBs order 12: 443,258 keys 12,907,888 bytes TreeToRip.13bb.txt; Zarathustra's BBs order 13: 460,996 keys 14,211,720 bytes TreeToRip.14bb.txt; Zarathustra's BBs order 14: 473,724 keys 15,455,968 bytes TreeToRip.15bb.txt; Zarathustra's BBs order 15: 482,999 keys 16,655,478 bytes TreeToRip.16bb.txt; Zarathustra's BBs order 16: 489,867 keys 17,820,612 bytes TreeToRip.17bb.txt; Zarathustra's BBs order 17: 495,017 keys 18,958,770 bytes TreeToRip.18bb.txt; Zarathustra's BBs order 18: 498,915 keys 20,075,960 bytes TreeToRip.19bb.txt; Zarathustra's BBs order 19: 501,899 keys 21,177,114 bytes TreeToRip.20bb.txt; Zarathustra's BBs order 20: 504,217 keys 22,266,904 bytes TreeToRip.21bb.txt; Zarathustra's BBs order 21: 506,066 keys 23,348,818 bytes TreeToRip.22bb.txt; Zarathustra's BBs order 22: 507,583 keys 24,426,096 bytes TreeToRip.23bb.txt; Zarathustra's BBs order 23: 508,877 keys 25,500,700 bytes TreeToRip.24bb.txt; Zarathustra's BBs order 24: 510,014 keys 26,571,792 bytes TreeToRip.25bb.txt; Zarathustra's BBs order 25: 510,996 keys 27,641,142 bytes TreeToRip.26bb.txt; Zarathustra's BBs order 26: 511,873 keys 28,709,744 bytes TreeToRip.27bb.txt; Zarathustra's BBs order 27: 512,674 keys 29,777,490 bytes TreeToRip.28bb.txt; Zarathustra's BBs order 28: 513,405 keys 30,844,980 bytes TreeToRip.29bb.txt; Zarathustra's BBs order 29: 514,083 keys 31,915,430 bytes TreeToRip.30bb.txt; Zarathustra's BBs order 30: 514,765 keys 32,982,528 bytes TreeToRip.31bb.txt; Zarathustra's BBs order 31: 515,352 keys 34,046,628 bytes TreeToRip.32bb.txt; Zarathustra's BBs order 32: 515,858 keys 67,679,170 bytes TreeToRip.64bb.txt; Zarathustra's BBs order 64: 520,609 keys E:\Night_Light_Sky_hash_package_r1\Leprechaun_BBhex_rev15fixfix_subrevA_32bit_64bit>type TreeToRip.01bb.txt 46 48 31 76 4B 4D 78 21 ... E:\Night_Light_Sky_hash_package_r1\Leprechaun_BBhex_rev15fixfix_subrevA_32bit_64bit>type TreeToRip.32bb.txt 206C61737420666F72206120706C656173616E742064656174682E0D0A4F6E65 6574682065766572792063617573652E0D0A57617220616E6420636F75726167 652061626F75742077697468206D65210D0A4173207965742068617665204920 65732E0D0A5768656E2C20686F77657665722C2068652068616420616C726561 696C6C206272696E67206974206F757420616761696E3F0D0A47756172642061 65627265772077686F6D2074686520707265616368657273206F6620736C6F77 2061206F6E652C20616C736F2C2077617865746820746F6F206F6C6420666F72 616E6765210D0A486F7720646F74682074686973206861726D6F6E6973653F0D ...Many thanks go to Fantasy.
E:\Night_Light_Sky_hash_package_r1>dir/og/on Volume in drive E is SSD_Sanmayce Volume Serial Number is 9CF6-FEA3 Directory of E:\Night_Light_Sky_hash_package_r1 10/31/2012 03:57 AM <DIR> . 10/31/2012 03:57 AM <DIR> .. 10/30/2012 08:14 PM <DIR> Final_Fantasy_Versus_XIII 10/31/2012 03:58 AM <DIR> Leprechaun_BBhex_rev15fixfix_subrevA_32bit_64bit 10/31/2012 02:33 AM <DIR> strchr.com 10/31/2012 03:59 AM 104,857,601 100MB_as_one_line.TXT 10/31/2012 03:59 AM 3,263 4bb.BAT 10/31/2012 03:59 AM 21 7z_shrink.bat 10/31/2012 03:59 AM 587,776 7za.exe 10/31/2012 03:59 AM 2 ENTER 10/31/2012 03:59 AM 12,761,480 enwiki-20120403-pages-articles.xml.sorted.4BB.txt.7z 10/31/2012 03:59 AM 208,515 EVEREST_cachemem_Core 2 Duo T7500.png 10/31/2012 03:59 AM 210,501 EVEREST_cpuid_Core 2 Duo T7500.png 10/31/2012 03:59 AM 88,116 HASH_linearspeed_FURY.c 10/31/2012 03:59 AM 1,416,029 HASH_linearspeed_FURY_Intel_IA-32_12.cod 10/31/2012 03:59 AM 112,640 HASH_linearspeed_FURY_Intel_IA-32_12.exe 10/31/2012 03:59 AM 309,257 HASH_linearspeed_FURY_Microsoft_32bit_16.cod 10/31/2012 03:59 AM 96,256 HASH_linearspeed_FURY_Microsoft_32bit_16.exe 10/31/2012 03:59 AM 42,892,307 IPS.TXT 10/31/2012 03:59 AM 314 KAZE_compile_Intel.bat 10/31/2012 03:59 AM 329 KAZE_compile_Microsoft.bat 10/31/2012 03:59 AM 24,490 Knight-tour_r8dump.c 10/31/2012 03:59 AM 73,728 Knight-tour_r8dump_Microsoft_V16_32bit_Ox.exe 10/31/2012 03:59 AM 110,592 Leprechaun_BB004hex_32bit.exe 10/31/2012 03:59 AM 5,438,551 Leprechaun_BBhex_rev15fixfix_subrevA_32bit_64bit.zip 10/31/2012 03:59 AM 57,527 Linereporter_r1+FIX.zip 10/31/2012 03:59 AM 98,848 LP3.TXT 10/31/2012 03:59 AM 114,089 Results_Core 2 Duo T7500.txt 10/31/2012 03:59 AM 7,900 RUNME.BAT 10/31/2012 03:59 AM 1,590 Yorikke prompt.lnk 25 File(s) 169,471,722 bytes 5 Dir(s) 11,746,996,224 bytes free E:\Night_Light_Sky_hash_package_r1>The resultant file on Fantasy's Black-and-Red Rig: Results_Fantasy's_Black_and_Red_Rig.txt (118 KB).
~3 million IPs (dot format): Yorikke: 1929823 [476699] CRC-32: 2243287 [472854] 3333 Latin Powers: Jesteress: 764 [ 576] Yorikke: 779 [ 579] XXHstrong32: 868 [ 571] 100MB as one line (Microsoft_16): Yorikke: 177748 [ 0] XXHfast32: 169328 [ 0] 100MB as one line (Intel_12.1): Yorikke: 110066 [ 0] Yoshimitsu: 102759 [ 0] 5,000,000 Knight Tours: Yorikke: 5756076 [677478] Yoshimitsu: 5792165 [675312] enwiki's 20,718,196 8bytes long (order 4) HEX BBs: Yorikke: 12526678 [2980029] Larson: 7445145 [2808080] Zarathustra's BBs orders 1: Yorikke: 7 [ 12] Larson: 6 [ 2] Zarathustra's BBs orders 2: Meiyan: 142 [ 259] Yorikke: 151 [ 271] CRC-32: 159 [ 236] Zarathustra's BBs orders 3: Jesteress: 1038 [ 1360] Yorikke: 1106 [ 1318] Zarathustra's BBs orders 4: Jesteress: 3566 [ 4631] Yorikke: 3674 [ 3937] Murmur2: 4399 [ 3837] Zarathustra's BBs orders 5: Jesteress: 9831 [11187] Yorikke: 10252 [10636] XXHstrong32: 13840 [10483] Zarathustra's BBs orders 6: Jesteress: 29090 [19448] Yorikke: 33936 [17816] Murmur2: 39260 [17633] Zarathustra's BBs orders 7: Jesteress: 62009 [39257] Yorikke: 72354 [37823] FNV-1a: 87332 [37298] Zarathustra's BBs orders 8: Meiyan: 112677 [51565] Yorikke: 119871 [33838] XXHstrong32: 137969 [33796] Zarathustra's BBs orders 9: Meiyan: 154164 [66182] Yorikke: 167979 [48801] CRC-32: 194730 [48517] Zarathustra's BBs orders 10: Jesteress: 183935 [84612] Yorikke: 206103 [62510] Murmur3: 222766 [62212] Zarathustra's BBs orders 11: Jesteress: 202625 [88420] Yorikke: 237460 [73433] XXHfast32: 259755 [73255] Zarathustra's BBs orders 12: Meiyan: 226592 [106593] Yorikke: 261011 [81595] XXHfast32: 285122 [81331] Zarathustra's BBs orders 13: Jesteress: 236068 [106565] Yorikke: 282264 [88333] XXHfast32: 304434 [87607] Zarathustra's BBs orders 14: Jesteress: 247478 [112340] Yorikke: 299452 [92770] Murmur3: 324331 [92394] Zarathustra's BBs orders 15: Jesteress: 253684 [107836] Yorikke: 316418 [95834] FNV-1a: 393621 [95739] Zarathustra's BBs orders 16: Jesteress: 262287 [116276] Yorikke: 323860 [98591] Murmur2: 350863 [98328] Zarathustra's BBs orders 17: Jesteress: 269008 [114065] Yorikke: 338088 [100385] YoshimitsuTRIAD: 341565 [100062] Zarathustra's BBs orders 18: Jesteress: 276992 [115572] Yorikke: 345724 [101763] Murmur2: 369852 [101680] Zarathustra's BBs orders 19: Jesteress: 280495 [110428] Yorikke: 357741 [103325] Yoshimitsu: 357932 [102652] Zarathustra's BBs orders 20: Meiyan: 282241 [115506] Yorikke: 356700 [104070] CRC-32: 453849 [103608] Zarathustra's BBs orders 21: Jesteress: 286074 [113012] Yorikke: 363999 [104316] Zarathustra's BBs orders 22: Jesteress: 288424 [114105] Yorikke: 368120 [105351] Murmur2: 407732 [104749] Zarathustra's BBs orders 23: Jesteress: 291246 [110050] Yorikke: 375459 [106022] Larson: 511592 [105396] Zarathustra's BBs orders 24: Meiyan: 290199 [113461] Yorikke: 370664 [106407] Yoshimitsu: 377295 [105923] Zarathustra's BBs orders 25: Jesteress: 295450 [112020] Yorikke: 376854 [106324] Larson: 529622 [106146] Zarathustra's BBs orders 26: Jesteress: 296614 [112029] Yorikke: 379799 [106809] YoshimitsuTRIAD: 386801 [106390] Zarathustra's BBs orders 27: Jesteress: 303360 [110664] Yorikke: 389356 [107081] CRC-32: 529007 [106804] Zarathustra's BBs orders 28: Meiyan: 305208 [111704] Yorikke: 395415 [107525] Murmur2: 443726 [107103] Zarathustra's BBs orders 29: Meiyan: 311679 [110581] Yorikke: 401127 [107784] XXHfast32: 414682 [107060] Zarathustra's BBs orders 30: Jesteress: 311361 [111111] Yorikke: 402086 [108033] CRC-32: 555274 [107596] Zarathustra's BBs orders 31: Jesteress: 318056 [110505] Yorikke: 409991 [108335] Yoshimitsu: 414714 [107736] Zarathustra's BBs orders 32: Jesteress: 324663 [111346] Yorikke: 414944 [108144] CRC-32: 586168 [107992] Zarathustra's BBs orders 64: Meiyan: 417768 [110190] Yorikke: 523365 [109926] FNV-1a: 962254 [109761]Okay, for above 39 tests a dummy ranklist follows:
Top speed hashers, # of 1st places: [ Larson: Larson: Meiyan: Meiyan: Meiyan: Meiyan: Meiyan: Meiyan: Meiyan: Meiyan: Meiyan: Yorikke: Yorikke: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: Jesteress: XXHfast32: Yoshimitsu: ] Top dispersers, # of 1st places: [ CRC-32: CRC-32: CRC-32: CRC-32: CRC-32: CRC-32: CRC-32: FNV-1a: FNV-1a: FNV-1a: Larson: Larson: Larson: Larson: Murmur2: Murmur2: Murmur2: Murmur2: Murmur2: Murmur2: Murmur3: Murmur3: Yorikke: Yorikke: XXHfast32: XXHfast32: XXHfast32: XXHfast32: Yoshimitsu: Yoshimitsu: Yoshimitsu: Yoshimitsu: XXHstrong32: XXHstrong32: XXHstrong32: YoshimitsuTRIAD: YoshimitsuTRIAD: ]Some notes on hashing short (<=128) strings, here it is 'Tiny Hash Booklet' rev.1:
E:\HASH_linearspeed_YoshimitsuTRIAD_vs_CRC32_FURY>dir 10/29/2012 06:47 AM 208,515 cachemem_Core 2 Duo T7500.png 10/29/2012 06:47 AM 210,501 cpuid_Core 2 Duo T7500.png 10/29/2012 06:47 AM 88,116 HASH_linearspeed_FURY.c 10/29/2012 06:47 AM 1,416,029 HASH_linearspeed_FURY_Intel_IA-32_12.cod 10/29/2012 06:47 AM 112,640 HASH_linearspeed_FURY_Intel_IA-32_12.exe 10/29/2012 06:47 AM 309,257 HASH_linearspeed_FURY_Microsoft_32bit_16.cod 10/29/2012 06:47 AM 96,256 HASH_linearspeed_FURY_Microsoft_32bit_16.exe 10/29/2012 06:47 AM 314 KAZE_compile_Intel.bat 10/29/2012 06:47 AM 329 KAZE_compile_Microsoft.bat 10/29/2012 06:47 AM 117 RUNME.bat 10/29/2012 06:47 AM 1,590 Yorikke prompt.lnkFor convenience I created 'RUNME.bat' which can be executed directly from Windows Explorer, it takes some 4-10 minutes to complete and loads automatically the results into NOTEPAD, thus the resultant file easily can be shared.
;;; for(; wrdlen >= 3*2*sizeof(uint32_t); wrdlen -= 3*2*sizeof(uint32_t), p += 3*2*sizeof(uint32_t)) { 028d7 83 fa 18 cmp edx, 24 028da 72 43 jb .B4.5 ; Prob 10% ; LOE eax edx ecx ebx ebp esi edi .B4.2: ; Preds .B4.1 028dc 89 34 24 mov DWORD PTR [esp], esi ; ; LOE eax edx ecx ebx ebp edi .B4.3: ; Preds .B4.2 .B4.3 ;;; hash32 = (hash32 ^ (_rotl(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+4))) * PRIME; 028df 8b 31 mov esi, DWORD PTR [ecx] 028e1 83 c2 e8 add edx, -24 028e4 c1 c6 05 rol esi, 5 028e7 33 71 04 xor esi, DWORD PTR [4+ecx] 028ea 33 de xor ebx, esi ;;; hash32B = (hash32B ^ (_rotl(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+12))) * PRIME; 028ec 8b 71 08 mov esi, DWORD PTR [8+ecx] 028ef c1 c6 05 rol esi, 5 028f2 33 71 0c xor esi, DWORD PTR [12+ecx] 028f5 33 fe xor edi, esi ;;; hash32C = (hash32C ^ (_rotl(*(uint32_t *)(p+16),5) ^ *(uint32_t *)(p+20))) * PRIME; 028f7 8b 71 10 mov esi, DWORD PTR [16+ecx] 028fa c1 c6 05 rol esi, 5 028fd 33 71 14 xor esi, DWORD PTR [20+ecx] 02900 83 c1 18 add ecx, 24 02903 33 ee xor ebp, esi 02905 69 db e7 d3 0a 00 imul ebx, ebx, 709607 0290b 69 ff e7 d3 0a 00 imul edi, edi, 709607 02911 69 ed e7 d3 0a 00 imul ebp, ebp, 709607 02917 83 fa 18 cmp edx, 24 0291a 73 c3 jae .B4.3 ; Prob 82%The result on my laptop:
Fetching/Hashing a 64MB block 1024 times i.e. 64GB ... BURST_Read_4DWORDS: (64MB block); 65536MB fetched in 15351 clocks or 4.269MB per clock BURST_Read_3DWORDS: (64MB block); 65536MB fetched in 15600 clocks or 4.201MB per clock FNV1A_YoshimitsuTRIAD: (64MB block); 65536MB hashed in 16021 clocks or 4.091MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 16442 clocks or 3.986MB per clock CRC32_SlicingBy8K2: (64MB block); 65536MB hashed in 71651 clocks or 0.915MB per clock Fetching/Hashing a 10MB block 8*1024 times ... BURST_Read_4DWORDS: (10MB block); 81920MB fetched in 18907 clocks or 4.333MB per clock BURST_Read_3DWORDS: (10MB block); 81920MB fetched in 18767 clocks or 4.365MB per clock FNV1A_YoshimitsuTRIAD: (10MB block); 81920MB hashed in 19812 clocks or 4.135MB per clock FNV1A_Yorikke: (10MB block); 81920MB hashed in 20186 clocks or 4.058MB per clock CRC32_SlicingBy8K2: (10MB block); 81920MB hashed in 89685 clocks or 0.913MB per clock Fetching/Hashing a 5MB block 8*1024 times ... BURST_Read_4DWORDS: (5MB block); 40960MB fetched in 8752 clocks or 4.680MB per clock BURST_Read_3DWORDS: (5MB block); 40960MB fetched in 8876 clocks or 4.615MB per clock FNV1A_YoshimitsuTRIAD: (5MB block); 40960MB hashed in 9438 clocks or 4.340MB per clock FNV1A_Yorikke: (5MB block); 40960MB hashed in 9563 clocks or 4.283MB per clock CRC32_SlicingBy8K2: (5MB block); 40960MB hashed in 44507 clocks or 0.920MB per clock Fetching/Hashing a 2MB block 32*1024 times ... BURST_Read_4DWORDS: (2MB block); 65536MB fetched in 9547 clocks or 6.865MB per clock BURST_Read_3DWORDS: (2MB block); 65536MB fetched in 9688 clocks or 6.765MB per clock FNV1A_YoshimitsuTRIAD: (2MB block); 65536MB hashed in 9750 clocks or 6.722MB per clock FNV1A_Yorikke: (2MB block); 65536MB hashed in 10171 clocks or 6.443MB per clock CRC32_SlicingBy8K2: (2MB block); 65536MB hashed in 69217 clocks or 0.947MB per clock Fetching/Hashing a 128KB block 512*1024 times ... BURST_Read_4DWORDS: (128KB block); 65536MB fetched in 9235 clocks or 7.096MB per clock BURST_Read_3DWORDS: (128KB block); 65536MB fetched in 9594 clocks or 6.831MB per clock FNV1A_YoshimitsuTRIAD: (128KB block); 65536MB hashed in 9687 clocks or 6.765MB per clock FNV1A_Yorikke: (128KB block); 65536MB hashed in 10078 clocks or 6.503MB per clock CRC32_SlicingBy8K2: (128KB block); 65536MB hashed in 68967 clocks or 0.950MB per clock Fetching/Hashing a 16KB block 4*1024*1024 times ... BURST_Read_4DWORDS: (16KB block); 65536MB fetched in 7878 clocks or 8.319MB per clock BURST_Read_3DWORDS: (16KB block); 65536MB fetched in 7862 clocks or 8.336MB per clock FNV1A_YoshimitsuTRIAD: (16KB block); 65536MB hashed in 9048 clocks or 7.243MB per clock FNV1A_Yorikke: (16KB block); 65536MB hashed in 9626 clocks or 6.808MB per clock CRC32_SlicingBy8K2: (16KB block); 65536MB hashed in 69779 clocks or 0.939MB per clockAs you can see there is a tiny function 'BURST_Read_3DWORDS' with following code:
.B3.3: ; Preds .B3.3 .B3.2 028db 83 c6 f4 add esi, -12 ;;; hash32 = *(uint32_t *)(p+0); 028de 8b 07 mov eax, DWORD PTR [edi] ;;; hash32B = *(uint32_t *)(p+4); 028e0 8b 4f 04 mov ecx, DWORD PTR [4+edi] ;;; hash32C = *(uint32_t *)(p+8); 028e3 8b 57 08 mov edx, DWORD PTR [8+edi] 028e6 83 c7 0c add edi, 12 028e9 83 fe 0c cmp esi, 12 028ec 73 ed jae .B3.3 ; Prob 82%This mini burst loader reads 3x4bytes per cycle, it gives some clue what are the upper limits for hasher with similar stride.
#define _rotl_KAZE(x, n) (((x) << (n)) | ((x) >> (32-(n)))) //E:\Knight-tour_r8dump_Yorikke_CRC8_BRUTUS+\HASH_linearspeed_Yorikke_vs_CRC32_FURY>HASH_linearspeed_FURY.exe //HASH_linearspeed_FURY: FNV1A_Yorikke vs CRC32_8slice, rev.3 written by Kaze. //Note1: The size-and-speed of L1/L2/L3 cache affects FNV1A_Yorikke and mostly FNV1A_Yoshimitsu a lot! //Note2: Executable was compiled with Microsoft 32bit VS2010 /Ox. //Note3: Results on my laptop: // //OS: Windows XP 32bit //Motherboard Name: Toshiba Satellite L305 //CPU Type: Mobile DualCore Intel Core 2 Duo T7500 //CPU Alias: Merom //CPU Clock: 2194.7 MHz (original: 2200 MHz) //CPU Multiplier: 11x //CPU FSB: 199.5 MHz (original: 200 MHz) //Memory Bus: 332.5 MHz //L1 Code Cache: 32 KB per core //L1 Data Cache: 32 KB per core //L2 Cache: 4 MB (On-Die, ECC, ASC, Full-Speed) //Memory Timings: 5-5-5-13 (CL-RCD-RP-RAS) //Instruction Set: x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3 //Transistors: 291 million //Process Technology: 8M, 65 nm, CMOS, Cu, Low-K Inter-Layer, 2nd Gen Strained Si //Front Side Bus Properties: // Bus Type: Intel AGTL+ // Bus Width: 64-bit // Real Clock: 200 MHz (QDR) // Effective Clock: 800 MHz // Bandwidth: 6400 MB/s //Memory Bus Properties: // Bus Type: Dual DDR2 SDRAM // Bus Width: 128-bit // DRAM:FSB Ratio: 10:6 // Real Clock: 333 MHz (DDR) // Effective Clock: 667 MHz // Bandwidth: 10667 MB/s // //And the results: // //Hashing a 64MB block 1024 times i.e. 64GB ... //FNV1A_Yoshimitsu: (64MB block); 65536MB hashed in 16875 clocks or 3.884MB per clock //FNV1A_Yorikke: (64MB block); 65536MB hashed in 16782 clocks or 3.905MB per clock //CRC_SlicingBy8K2: (64MB block); 65536MB hashed in 66390 clocks or 0.987MB per clock // //Hashing a 10MB block 8*1024 times ... //FNV1A_Yoshimitsu: (10MB block); 81920MB hashed in 20610 clocks or 3.975MB per clock //FNV1A_Yorikke: (10MB block); 81920MB hashed in 20546 clocks or 3.987MB per clock //CRC_SlicingBy8K2: (10MB block); 81920MB hashed in 82938 clocks or 0.988MB per clock // //Hashing a 5MB block 8*1024 times ... //FNV1A_Yoshimitsu: (5MB block); 40960MB hashed in 9562 clocks or 4.284MB per clock //FNV1A_Yorikke: (5MB block); 40960MB hashed in 9531 clocks or 4.298MB per clock //CRC_SlicingBy8K2: (5MB block); 40960MB hashed in 41110 clocks or 0.996MB per clock // //Hashing a 2MB block 8*1024 times ... //FNV1A_Yoshimitsu: (2MB block); 16384MB hashed in 2578 clocks or 6.355MB per clock //FNV1A_Yorikke: (2MB block); 16384MB hashed in 2657 clocks or 6.166MB per clock //CRC_SlicingBy8K2: (2MB block); 16384MB hashed in 16156 clocks or 1.014MB per clock // //Hashing a 16KB block 1024*1024 times ... //FNV1A_Yoshimitsu: (16KB block); 16384MB hashed in 2437 clocks or 6.723MB per clock //FNV1A_Yorikke: (16KB block); 16384MB hashed in 2547 clocks or 6.433MB per clock //CRC_SlicingBy8K2: (16KB block); 16384MB hashed in 16078 clocks or 1.019MB per clock // //Yoshimitsu is beyond hope - he fights as a true underdog - nothing to lose everything to gain, sharing with those in need - a true copylefter. uint32_t FNV1A_Hash_Yoshimitsu(const char *str, uint32_t wrdlen) { const uint32_t PRIME = 709607; uint32_t hash32 = 2166136261; uint32_t hash32B = 2166136261; uint32_t hash32C = 2166136261; uint32_t hash32D = 2166136261; const char *p = str; for(; wrdlen >= 4*2*sizeof(uint32_t); wrdlen -= 4*2*sizeof(uint32_t), p += 4*2*sizeof(uint32_t)) { //hash32 = (hash32 ^ (_rotl_KAZE(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) * PRIME; //hash32B = (hash32B ^ (_rotl_KAZE(*(DWORD *)(p+8),5) ^ *(DWORD *)(p+12))) * PRIME; // hash32 = _rotl_KAZE( (hash32 ^ (_rotl_KAZE(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) , 19); // 1<<19 = 524288 ~ 709607; * -> <<'s // hash32B = _rotl_KAZE( (hash32B ^ (_rotl_KAZE(*(DWORD *)(p+8),5) ^ *(DWORD *)(p+12))) , 19); /* $LL7@FNV1A_Hash@2: ; Line 159 mov ebx, DWORD PTR [eax] rol ebx, 5 xor ebx, DWORD PTR [eax+4] sub edx, 16 xor esi, ebx ; Line 160 mov ebx, DWORD PTR [eax+8] ror esi, 13 rol ebx, 5 xor ebx, DWORD PTR [eax+12] add eax, 16 xor ecx, ebx ror ecx, 13 dec edi jne SHORT $LL7@FNV1A_Hash@2 */ //3*2*sizeof(DWORD) //hash32 = ( (hash32 ^ (_rotl(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) * PRIME ) ^ ( *(DWORD *)(p+8) * PRIME ); //hash32B = ( (hash32B ^ (_rotl(*(DWORD *)(p+12),5) ^ *(DWORD *)(p+16))) * PRIME ) ^ ( *(DWORD *)(p+20) * PRIME ); //4*2*sizeof(DWORD) hash32 = (hash32 ^ (_rotl(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+4))) * PRIME; hash32B = (hash32B ^ (_rotl(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+12))) * PRIME; hash32C = (hash32C ^ (_rotl(*(uint32_t *)(p+16),5) ^ *(uint32_t *)(p+20))) * PRIME; hash32D = (hash32D ^ (_rotl(*(uint32_t *)(p+24),5) ^ *(uint32_t *)(p+28))) * PRIME; // 442-3f5+2= 79 bytes, CARAMBA: there is no free register to house the counter: 'dec DWORD PTR tv170[esp+12]' instead of 'dec edi' as in "ROL 13" lines below. /* $LL9@Hash_Yoshi: ; 1498 : hash32 = (hash32 ^ (_rotl(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) * PRIME; 003f5 8b 18 mov ebx, DWORD PTR [eax] 003f7 c1 c3 05 rol ebx, 5 003fa 33 58 04 xor ebx, DWORD PTR [eax+4] 003fd 83 ea 20 sub edx, 32 00400 33 f3 xor esi, ebx ; 1499 : hash32B = (hash32B ^ (_rotl(*(DWORD *)(p+8),5) ^ *(DWORD *)(p+12))) * PRIME; 00402 8b 58 08 mov ebx, DWORD PTR [eax+8] 00405 69 f6 e7 d3 0a 00 imul esi, 709607 0040b c1 c3 05 rol ebx, 5 0040e 33 58 0c xor ebx, DWORD PTR [eax+12] 00411 83 c0 20 add eax, 32 00414 33 cb xor ecx, ebx ; 1500 : hash32C = (hash32C ^ (_rotl(*(DWORD *)(p+16),5) ^ *(DWORD *)(p+20))) * PRIME; 00416 8b 58 f0 mov ebx, DWORD PTR [eax-16] 00419 69 c9 e7 d3 0a 00 imul ecx, 709607 0041f c1 c3 05 rol ebx, 5 00422 33 58 f4 xor ebx, DWORD PTR [eax-12] 00425 33 fb xor edi, ebx ; 1501 : hash32D = (hash32D ^ (_rotl(*(DWORD *)(p+24),5) ^ *(DWORD *)(p+28))) * PRIME; 00427 8b 58 f8 mov ebx, DWORD PTR [eax-8] 0042a 69 ff e7 d3 0a 00 imul edi, 709607 00430 c1 c3 05 rol ebx, 5 00433 33 58 fc xor ebx, DWORD PTR [eax-4] 00436 33 eb xor ebp, ebx 00438 69 ed e7 d3 0a 00 imul ebp, 709607 0043e ff 4c 24 18 dec DWORD PTR tv170[esp+12] 00442 75 b1 jne SHORT $LL9@Hash_Yoshi */ /* E:\_KAZE_hash_Yoshimitsu>hash KT5million.txt 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 5927892 5892203 5891877 5885865 5895333 5892451 5886949 5891559 5895370 5888990| 5885865 [676877] Meiyan: 5850738 5855457 5847735 5849722 5847868 5845189 5850087 5846843 5847820 5845907| 5845189 [676877] Yorikke: 5680415 5679205 5684177 5680280 5686396 5680565 5681035 5679829 5682245 5681052| 5679205 [677478] Yoshimitsu: 5680400 5680252 5684833 5688414 5680524 5678596 5677554 5678393 5680015 5680396| 5677554 [675312] x17 unrolled: ^C E:\_KAZE_hash_Yoshimitsu>hash KTR5million.txt 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 5772704 5742091 5736934 5738746 5742657 5741104 5741102 5737908 5738002 5742116| 5736934 [676000] Meiyan: 5700057 5695889 5700702 5694799 5699576 5697662 5693863 5697606 5696133 5695485| 5693863 [676000] Yorikke: 5523796 5527643 5528195 5530897 5523567 5526035 5521989 5527258 5531218 5524544| 5521989 [676570] Yoshimitsu: 5520833 5521105 5518502 5517657 5519659 5520483 5517938 5521405 5519923 5518780| 5517657 [676009] x17 unrolled: ^C E:\_KAZE_hash_Yoshimitsu>hash "Word-list_12,561,874_wikipedia-en-html.tar.wrd" 12561874 lines read 33554432 elements in the table (25 bits) Jesteress: 10749318 10649149 10646657 10635909 10657954 10645701 10656154 10656770 10672870 10637745| 10635909 [2121868] Meiyan: 10632817 10635278 10610784 10636058 10615126 10637501 10633724 10638480 10633424 10632864| 10610784 [2111271] Yorikke: 10656032 10672142 10673068 10673462 10671225 10673482 10670054 10672436 10677540 10670661| 10656032 [2084954] Yoshimitsu: 10828843 10846370 10843574 10808386 10809707 10807612 10810108 10794792 10808601 10808285| 10794792 [2084954] x17 unrolled: ^C E:\_KAZE_hash_Yoshimitsu>hash 100MB_as_one_line.TXT 1 lines read 4 elements in the table (2 bits) Jesteress: 204418 204277 204025 203698 203971 204613 204024 204038 204817 203649 203986 204830 20 3903 204275 203998 203979 206157 203964 204222 204992 203941 204735 203936 203846 204139 204006 204257 204852 204054 204637 204754 203782 204939 203756 204229 203863 203781 204314 203805 204040| 203649 [ 0] Meiyan: 207161 203931 204162 204427 204259 204067 204779 203789 204676 204227 204166 204609 20 3947 204061 204948 204129 205497 203990 204197 204580 204167 204019 207285 203850 204626 204024 204115 203722 204069 203956 204686 203754 204179 204763 204100 204783 204213 205179 203876 203880| 203722 [ 0] Yorikke: 182415 182293 181865 182346 185258 181676 182305 181862 182163 181989 181598 181416 18 2537 182109 181896 181729 182853 181463 183008 181789 181859 182113 182420 181404 182609 182124 181972 181936 184815 181467 182594 182138 182085 181910 181963 181442 182487 183794 181833 182204| 181404 [ 0] Yoshimitsu: 180939 179829 181113 180314 180039 180551 179739 180056 180797 180264 180280 180123 18 3607 180034 180784 180136 180662 180274 180357 180014 180351 180705 180533 180294 180898 180164 180208 180767 179852 180580 180098 180465 180397 180738 180057 180502 216061 180029 180124 180669| 179739 [ 0] x17 unrolled: 957197^C E:\_KAZE_hash_Yoshimitsu> */ //hash32 = ( ( ( (hash32 ^ (_rotl(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) * ((1<<13)-1)) ^ (_rotl(*(DWORD *)(p+8),5)^*(DWORD *)(p+12)) ) * ((1<<13)-1)); //hash32B = ( ( ( (hash32B ^ (_rotl(*(DWORD *)(p+16),5) ^ *(DWORD *)(p+20))) * ((1<<13)-1)) ^ (_rotl(*(DWORD *)(p+24),5) ^ *(DWORD *)(p+28)) ) * ((1<<13)-1)); // ((1<<13)-1)=8191 prime //hash32 = _rotl( ( _rotl( (hash32 ^ (_rotl(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) , 13) ^ (_rotl(*(DWORD *)(p+8),5)^*(DWORD *)(p+12)) ) , 13); //hash32B = _rotl( ( _rotl( (hash32B ^ (_rotl(*(DWORD *)(p+16),5) ^ *(DWORD *)(p+20))) , 13) ^ (_rotl(*(DWORD *)(p+24),5) ^ *(DWORD *)(p+28)) ) , 13); // !!! 62e-5f0+2= 64 bytes !!! /* $LL8@Hash_Yoshi: ; 1384 : hash32 = _rotl( ( _rotl( (hash32 ^ (_rotl(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) , 13) ^ (_rotl(*(DWORD *)(p+8),5)^*(DWORD *)(p+12)) ) , 13); 005f0 8b 18 mov ebx, DWORD PTR [eax] 005f2 c1 c3 05 rol ebx, 5 005f5 33 58 04 xor ebx, DWORD PTR [eax+4] 005f8 83 ea 20 sub edx, 32 005fb 33 de xor ebx, esi 005fd 8b 70 08 mov esi, DWORD PTR [eax+8] 00600 c1 c3 0d rol ebx, 13 00603 c1 c6 05 rol esi, 5 00606 33 f3 xor esi, ebx 00608 33 70 0c xor esi, DWORD PTR [eax+12] ; 1385 : hash32B = _rotl( ( _rotl( (hash32B ^ (_rotl(*(DWORD *)(p+16),5) ^ *(DWORD *)(p+20))) , 13) ^ (_rotl(*(DWORD *)(p+24),5) ^ *(DWORD *)(p+28)) ) , 13); 0060b 8b 58 10 mov ebx, DWORD PTR [eax+16] 0060e c1 c6 0d rol esi, 13 00611 c1 c3 05 rol ebx, 5 00614 33 58 14 xor ebx, DWORD PTR [eax+20] 00617 83 c0 20 add eax, 32 0061a 33 d9 xor ebx, ecx 0061c 8b 48 f8 mov ecx, DWORD PTR [eax-8] 0061f c1 c3 0d rol ebx, 13 00622 c1 c1 05 rol ecx, 5 00625 33 cb xor ecx, ebx 00627 33 48 fc xor ecx, DWORD PTR [eax-4] 0062a c1 c1 0d rol ecx, 13 0062d 4f dec edi 0062e 75 c0 jne SHORT $LL8@Hash_Yoshi 00630 5b pop ebx $LN6@Hash_Yoshi: */ } if (p != str) { hash32 = (hash32 ^ _rotl(hash32C,5) ) * PRIME; hash32B = (hash32B ^ _rotl(hash32D,5) ) * PRIME; } // 1111=15; 10111=23 if (wrdlen & 4*sizeof(uint32_t)) { hash32 = (hash32 ^ (_rotl(*(uint32_t *)(p+0),5) ^ *(uint32_t *)(p+4))) * PRIME; hash32B = (hash32B ^ (_rotl(*(uint32_t *)(p+8),5) ^ *(uint32_t *)(p+12))) * PRIME; p += 8*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7,...,15 if (wrdlen & 2*sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint32_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint32_t*)(p+4)) * PRIME; p += 4*sizeof(uint16_t); } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(uint32_t)) { hash32 = (hash32 ^ *(uint16_t*)(p+0)) * PRIME; hash32B = (hash32B ^ *(uint16_t*)(p+2)) * PRIME; p += 2*sizeof(uint16_t); } if (wrdlen & sizeof(uint16_t)) { hash32 = (hash32 ^ *(uint16_t*)p) * PRIME; p += sizeof(uint16_t); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; hash32 = (hash32 ^ _rotl(hash32B,5) ) * PRIME; return hash32 ^ (hash32 >> 16); }
Hashing a 64MB block 1024 times i.e. 64GB ... FNV1A_Yoshimitsu: (64MB block); 65536MB hashed in 6330 clocks or 10.353MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 6004 clocks or 10.915MB per clock CRC_SlicingBy8K2: (64MB block); 65536MB hashed in 33915 clocks or 1.932MB per clock Hashing a 10MB block 8*1024 times ... FNV1A_Yoshimitsu: (10MB block); 81920MB hashed in 7155 clocks or 11.449MB per clock FNV1A_Yorikke: (10MB block); 81920MB hashed in 6670 clocks or 12.282MB per clock CRC_SlicingBy8K2: (10MB block); 81920MB hashed in 41800 clocks or 1.960MB per clock Hashing a 5MB block 8*1024 times ... FNV1A_Yoshimitsu: (5MB block); 40960MB hashed in 3384 clocks or 12.104MB per clock FNV1A_Yorikke: (5MB block); 40960MB hashed in 3106 clocks or 13.187MB per clock CRC_SlicingBy8K2: (5MB block); 40960MB hashed in 20724 clocks or 1.976MB per clock Hashing a 2MB block 8*1024 times ... FNV1A_Yoshimitsu: (2MB block); 16384MB hashed in 1341 clocks or 12.218MB per clock FNV1A_Yorikke: (2MB block); 16384MB hashed in 1230 clocks or 13.320MB per clock CRC_SlicingBy8K2: (2MB block); 16384MB hashed in 8279 clocks or 1.979MB per clock Hashing a 16KB block 1024*1024 times ... FNV1A_Yoshimitsu: (16KB block); 16384MB hashed in 1323 clocks or 12.384MB per clock FNV1A_Yorikke: (16KB block); 16384MB hashed in 1203 clocks or 13.619MB per clock CRC_SlicingBy8K2: (16KB block); 16384MB hashed in 8258 clocks or 1.984MB per clockAgain (as Core 2 did): on i7 FNV1A_Yorikke outspeeds CRC32_SlicingBy8 by 400-500%.
Hashing a 64MB block 1024 times i.e. 64GB ... FNV1A_Yoshimitsu: (64MB block); 65536MB hashed in 57359 clocks or 1.143MB per clock FNV1A_Yorikke: (64MB block); 65536MB hashed in 53562 clocks or 1.224MB per clock CRC_SlicingBy8K2: (64MB block); 65536MB hashed in 263828 clocks or 0.248MB per clock Hashing a 10MB block 8*1024 times ... FNV1A_Yoshimitsu: (10MB block); 81920MB hashed in 71719 clocks or 1.142MB per clock FNV1A_Yorikke: (10MB block); 81920MB hashed in 67171 clocks or 1.220MB per clock CRC_SlicingBy8K2: (10MB block); 81920MB hashed in 329000 clocks or 0.249MB per clock Hashing a 5MB block 8*1024 times ... FNV1A_Yoshimitsu: (5MB block); 40960MB hashed in 35907 clocks or 1.141MB per clock FNV1A_Yorikke: (5MB block); 40960MB hashed in 33500 clocks or 1.223MB per clock CRC_SlicingBy8K2: (5MB block); 40960MB hashed in 164594 clocks or 0.249MB per clock Hashing a 2MB block 8*1024 times ... FNV1A_Yoshimitsu: (2MB block); 16384MB hashed in 14344 clocks or 1.142MB per clock FNV1A_Yorikke: (2MB block); 16384MB hashed in 13469 clocks or 1.216MB per clock CRC_SlicingBy8K2: (2MB block); 16384MB hashed in 65859 clocks or 0.249MB per clock Hashing a 16KB block 1024*1024 times ... FNV1A_Yoshimitsu: (16KB block); 16384MB hashed in 12766 clocks or 1.283MB per clock FNV1A_Yorikke: (16KB block); 16384MB hashed in 11719 clocks or 1.398MB per clock CRC_SlicingBy8K2: (16KB block); 16384MB hashed in 64719 clocks or 0.253MB per clockFirst thing that hits me: on Atom FNV1A_Yorikke outspeeds CRC32_SlicingBy8 only by 400%.
3333 Latin Powers 3333 lines read 8192 elements in the table (13 bits) Jesteress: 430 [ 576] Meiyan: 441 [ 583] Yorikke: 424 [ 579] x17 unrolled: 1112 [ 564] FNV-1a: 821 [ 604] Larson: 805 [ 581] CRC-32: 868 [ 613] Murmur2: 541 [ 600] SBox: 759 [ 576] Murmur2A: 575 [ 576] Murmur3: 607 [ 583] XXHfast32: 544 [ 596] XXHstrong32: 564 [ 571] iSCSI CRC: 464 [ 594]The 3333 keys in LP3.TXT are in range 7..43 bytes and look like:
thousand million billion trillion quadrillion quintillion sextillion septillion octillion nonillion decillion undecillion dodecillion tredecillion quattuordecillion quindecillion sexdecillion septendecillion octodecillion novemdecillion ... domilliaquadringentrequinquagintillion domilliaquadringenquattuorquinquagintillion domilliaquadringenquinquinquagintillion ... tremilliatrecenoctovigintillion tremilliatrecennovemvigintillion tremilliatrecentrigintillion tremilliatrecenuntrigintillion tremilliatrecendotrigintillionFor these important keys (they resemble 2-grams, 3-grams lengths) FNV1A_Yorikke outspeeds even FNV1A_Jesteress.
Test on my machine using m^2's testbed - The batch file you need to run Windows executables - Sanmayce's machine - Microsoft & Intel compilers partial m^2 test 1] The batch file you need to run Windows executables: RUNME_VS2010x64_Intel12.1x64.BAT 2] Sanmayce's machine: OS: Windows 7 64bit Motherboard Name: Toshiba Satellite L305 CPU Type: Mobile DualCore Intel Core 2 Duo T7500 CPU Alias: Merom CPU Clock: 2194.7 MHz (original: 2200 MHz) CPU Multiplier: 11x CPU FSB: 199.5 MHz (original: 200 MHz) Memory Bus: 332.5 MHz L1 Code Cache: 32 KB per core L1 Data Cache: 32 KB per core L2 Cache: 4 MB (On-Die, ECC, ASC, Full-Speed) Memory Timings: 5-5-5-13 (CL-RCD-RP-RAS) Instruction Set: x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3 Transistors: 291 million Process Technology: 8M, 65 nm, CMOS, Cu, Low-K Inter-Layer, 2nd Gen Strained Si Front Side Bus Properties: Bus Type: Intel AGTL+ Bus Width: 64-bit Real Clock: 200 MHz (QDR) Effective Clock: 800 MHz Bandwidth: 6400 MB/s Memory Bus Properties: Bus Type: Dual DDR2 SDRAM Bus Width: 128-bit DRAM:FSB Ratio: 10:6 Real Clock: 333 MHz (DDR) Effective Clock: 667 MHz Bandwidth: 10667 MB/s 3] Microsoft & Intel compilers partial m^2 test: D:\benchmark-0.11_NOT-ORIGINAL\src>RUNME_VS2010x64_Intel12.1x64.BAT D:\benchmark-0.11_NOT-ORIGINAL\src>benchmark_Microsoft_VS2010_Ox.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteressDUAL fnv1a-jesteress fnv1a-mantis fnv1a-meiyan fnv1a-tesla xxhash-fast xxhash-fast256 xxhash-strong xxhash-strong256 -i7 OSHO.TXT memcpy: 114 ms, 206908949 bytes = 1730 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 206908965 (x 1.000) 4289 MB/s 4289 MB/s 356e15 356e15 CityHash64 1.0.3 206908957 (x 1.000) 4198 MB/s 4198 MB/s 348e15 348e15 SpookyHash 2012-03-30 206908965 (x 1.000) 4027 MB/s 4027 MB/s 334e15 334e15 fnv1a-jesteressDUAL 2012-06-09 206908953 (x 1.000) 3946 MB/s 3946 MB/s 327e15 327e15 fnv1a-jesteress 2012-06-09 206908953 (x 1.000) 3288 MB/s 3288 MB/s 273e15 273e15 fnv1a-mantis 2012-06-09 206908953 (x 1.000) 2466 MB/s 2466 MB/s 204e15 204e15 fnv1a-meiyan 2012-06-09 206908953 (x 1.000) 3288 MB/s 3288 MB/s 273e15 273e15 fnv1a-tesla 2012-06-09 206908957 (x 1.000) 4588 MB/s 4588 MB/s 381e15 381e15 xxhash-fast r3 206908953 (x 1.000) 4110 MB/s 4110 MB/s 341e15 341e15 xxhash-fast256 r3 206908981 (x 1.000) 4588 MB/s 4588 MB/s 381e15 381e15 xxhash-strong r3 206908953 (x 1.000) 2859 MB/s 2859 MB/s 237e15 237e15 xxhash-strong256 r3 206908981 (x 1.000) 3946 MB/s 3946 MB/s 327e15 327e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (7x1 iteration(s)). D:\benchmark-0.11_NOT-ORIGINAL\src>benchmark_Intel_12.1_O2.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteressDUAL fnv1a-jesteress fnv1a-mantis fnv1a-meiyan fnv1a-tesla xxhash-fast xxhash-fast256 xxhash-strong xxhash-strong256 -i7 OSHO.TXT memcpy: 106 ms, 206908949 bytes = 1861 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 206908965 (x 1.000) 3344 MB/s 3402 MB/s 277e15 282e15 CityHash64 1.0.3 206908957 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 SpookyHash 2012-03-30 206908965 (x 1.000) 4027 MB/s 4027 MB/s 334e15 334e15 fnv1a-jesteressDUAL 2012-06-09 206908953 (x 1.000) 3946 MB/s 3946 MB/s 327e15 327e15 fnv1a-jesteress 2012-06-09 206908953 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 fnv1a-mantis 2012-06-09 206908953 (x 1.000) 2436 MB/s 2436 MB/s 202e15 202e15 fnv1a-meiyan 2012-06-09 206908953 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 fnv1a-tesla 2012-06-09 206908957 (x 1.000) 4588 MB/s 4484 MB/s 381e15 372e15 xxhash-fast r3 206908953 (x 1.000) 3946 MB/s 3946 MB/s 327e15 327e15 xxhash-fast256 r3 206908981 (x 1.000) 4484 MB/s 4484 MB/s 372e15 372e15 xxhash-strong r3 206908953 (x 1.000) 2818 MB/s 2818 MB/s 234e15 234e15 xxhash-strong256 r3 206908981 (x 1.000) 3869 MB/s 3869 MB/s 321e15 321e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (7x1 iteration(s)). D:\benchmark-0.11_NOT-ORIGINAL\src>benchmark_Intel_12.1_O3.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteressDUAL fnv1a-jesteress fnv1a-mantis fnv1a-meiyan fnv1a-tesla xxhash-fast xxhash-fast256 xxhash-strong xxhash-strong256 -i7 OSHO.TXT memcpy: 106 ms, 206908949 bytes = 1861 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 206908965 (x 1.000) 3288 MB/s 3288 MB/s 273e15 273e15 CityHash64 1.0.3 206908957 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 SpookyHash 2012-03-30 206908965 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 fnv1a-jesteressDUAL 2012-06-09 206908953 (x 1.000) 3654 MB/s 3654 MB/s 303e15 303e15 fnv1a-jesteress 2012-06-09 206908953 (x 1.000) 3288 MB/s 3288 MB/s 273e15 273e15 fnv1a-mantis 2012-06-09 206908953 (x 1.000) 2497 MB/s 2497 MB/s 207e15 207e15 fnv1a-meiyan 2012-06-09 206908953 (x 1.000) 3288 MB/s 3288 MB/s 273e15 273e15 fnv1a-tesla 2012-06-09 206908957 (x 1.000) 4289 MB/s 4289 MB/s 356e15 356e15 xxhash-fast r3 206908953 (x 1.000) 3723 MB/s 3723 MB/s 309e15 309e15 xxhash-fast256 r3 206908981 (x 1.000) 4198 MB/s 4198 MB/s 348e15 348e15 xxhash-strong r3 206908953 (x 1.000) 2779 MB/s 2779 MB/s 230e15 230e15 xxhash-strong256 r3 206908981 (x 1.000) 3654 MB/s 3654 MB/s 303e15 303e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (7x1 iteration(s)). D:\benchmark-0.11_NOT-ORIGINAL\src>benchmark_Intel_12.1_fast.exe CityHash128 CityHash64 SpookyHash fnv1a-jesteressDUAL fnv1a-jesteress fnv1a-mantis fnv1a-meiyan fnv1a-tesla xxhash-fast xxhash-fast256 xxhash-strong xxhash-strong256 -i7 OSHO.TXT memcpy: 106 ms, 206908949 bytes = 1861 MB/s Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. CityHash128 1.0.3 206908965 (x 1.000) 2349 MB/s 2406 MB/s 195e15 199e15 CityHash64 1.0.3 206908957 (x 1.000) 2217 MB/s 2192 MB/s 184e15 182e15 SpookyHash 2012-03-30 206908965 (x 1.000) 3461 MB/s 3461 MB/s 287e15 287e15 fnv1a-jesteressDUAL 2012-06-09 206908953 (x 1.000) 3794 MB/s 3794 MB/s 315e15 315e15 fnv1a-jesteress 2012-06-09 206908953 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 fnv1a-mantis 2012-06-09 206908953 (x 1.000) 2529 MB/s 2529 MB/s 210e15 210e15 fnv1a-meiyan 2012-06-09 206908953 (x 1.000) 3344 MB/s 3344 MB/s 277e15 277e15 fnv1a-tesla 2012-06-09 206908957 (x 1.000) 4384 MB/s 4484 MB/s 364e15 372e15 xxhash-fast r3 206908953 (x 1.000) 3794 MB/s 3794 MB/s 315e15 315e15 xxhash-fast256 r3 206908981 (x 1.000) 4289 MB/s 4289 MB/s 356e15 356e15 xxhash-strong r3 206908953 (x 1.000) 2779 MB/s 2779 MB/s 230e15 230e15 xxhash-strong256 r3 206908981 (x 1.000) 3794 MB/s 3794 MB/s 315e15 315e15 Codec version args C.Size (C.Ratio) C.Speed D.Speed C.Eff. D.Eff. done... (7x1 iteration(s)). D:\benchmark-0.11_NOT-ORIGINAL\src> 2012-Jun-16, KazeQuestion: What makes FNV1A_Tesla so fast?
; Listing generated by Microsoft (R) Optimizing Compiler Version 16.00.30319.01 ... ; 60 : for(; wrdlen >= 2*2*2*sizeof(uint32_t); wrdlen -= 2*2*2*sizeof(uint32_t), p += 2*2*2*sizeof(uint32_t)) { 00023 48 8b c1 mov rax, rcx 00026 48 6b c0 e0 imul rax, -32 0002a 48 03 d0 add rdx, rax 0002d 0f 1f 00 npad 3 $LL8@FNV1A_Hash: ; 61 : hash64 = (hash64 ^ (ROL64(*(unsigned long long *)(p+0),5-0)^*(unsigned long long *)(p+8))) * PRIME; 00030 49 8b 01 mov rax, QWORD PTR [r9] 00033 49 83 c1 20 add r9, 32 00037 48 c1 c0 05 rol rax, 5 0003b 49 33 41 e8 xor rax, QWORD PTR [r9-24] 0003f 4c 33 c0 xor r8, rax ; 62 : hash64B = (hash64B ^ (ROL64(*(unsigned long long *)(p+8+8),5-0)^*(unsigned long long *)(p+8+8+8))) * PRIME; 00042 49 8b 41 f0 mov rax, QWORD PTR [r9-16] 00046 4d 0f af c3 imul r8, r11 0004a 48 c1 c0 05 rol rax, 5 0004e 49 33 41 f8 xor rax, QWORD PTR [r9-8] 00052 4c 33 d0 xor r10, rax 00055 4d 0f af d3 imul r10, r11 00059 48 ff c9 dec rcx 0005c 75 d2 jne SHORT $LL8@FNV1A_Hash $LN6@FNV1A_Hash: ...
Just wanted to see how the fastest (regarding linear speed) hasher FNV1A_Tesla (64bit) rewritten down to 32bit would behave, so here comes my new favorite FNV1A_Yorikke - the fastest 32bit hasheress. She outspeeds both FNV1A_Jesteress and FNV1A_Meiyan featuring collisions comparable to CRC32. I wonder how the new approach (hashing two lines) behaves on i5/i7, my expectations are that FNV1A_Yorikke is gonna scream. I hate the fact that I still cannot play with an i7 machine, so the following results are obtained on my laptop T7500 2200MHz: Words 500 lines read 1024 elements in the table (10 bits) Jesteress: 76 [ 110] Meiyan: 76 [ 102] Yorikke: 76 [ 108] x17 unrolled: 88 [ 109] FNV-1a: 92 [ 124] Larson: 93 [ 99] CRC-32: 85 [ 101] Murmur2: 86 [ 103] SBox: 81 [ 91] Murmur2A: 95 [ 114] Murmur3: 100 [ 101] XXHfast32: 97 [ 110] XXHstrong32: 96 [ 109] Win32 1992 lines read 4096 elements in the table (12 bits) Jesteress: 401 [ 397] Meiyan: 405 [ 409] Yorikke: 403 [ 431] x17 unrolled: 577 [ 415] FNV-1a: 576 [ 428] Larson: 565 [ 416] CRC-32: 527 [ 426] Murmur2: 467 [ 415] SBox: 482 [ 431] Murmur2A: 515 [ 433] Murmur3: 517 [ 380] XXHfast32: 473 [ 420] XXHstrong32: 488 [ 429] Numbers 500 lines read 1024 elements in the table (10 bits) Jesteress: 51 [ 300] Meiyan: 47 [ 125] Yorikke: 46 [ 86] x17 unrolled: 45 [ 24] FNV-1a: 53 [ 108] Larson: 41 [ 16] CRC-32: 45 [ 64] Murmur2: 53 [ 104] SBox: 50 [ 116] Murmur2A: 62 [ 102] Murmur3: 67 [ 104] XXHfast32: 67 [ 102] XXHstrong32: 70 [ 102] Prefix 500 lines read 1024 elements in the table (10 bits) Jesteress: 110 [ 102] Meiyan: 111 [ 106] Yorikke: 107 [ 94] x17 unrolled: 206 [ 113] FNV-1a: 195 [ 94] Larson: 195 [ 99] CRC-32: 177 [ 107] Murmur2: 138 [ 106] SBox: 149 [ 108] Murmur2A: 149 [ 112] Murmur3: 148 [ 103] XXHfast32: 117 [ 103] XXHstrong32: 123 [ 102] Postfix 500 lines read 1024 elements in the table (10 bits) Jesteress: 108 [ 106] Meiyan: 108 [ 112] Yorikke: 106 [ 111] x17 unrolled: 201 [ 102] FNV-1a: 195 [ 105] Larson: 195 [ 105] CRC-32: 174 [ 94] Murmur2: 136 [ 111] SBox: 148 [ 91] Murmur2A: 146 [ 109] Murmur3: 148 [ 105] XXHfast32: 115 [ 106] XXHstrong32: 123 [ 112] Variables 1842 lines read 4096 elements in the table (12 bits) Jesteress: 337 [ 366] Meiyan: 341 [ 350] Yorikke: 338 [ 359] x17 unrolled: 418 [ 368] FNV-1a: 418 [ 374] Larson: 429 [ 366] CRC-32: 400 [ 338] Murmur2: 384 [ 383] SBox: 371 [ 347] Murmur2A: 424 [ 365] Murmur3: 433 [ 334] XXHfast32: 406 [ 347] XXHstrong32: 405 [ 355] Sonnets 3228 lines read 8192 elements in the table (13 bits) Jesteress: 494 [ 585] Meiyan: 501 [ 588] Yorikke: 496 [ 552] x17 unrolled: 565 [ 589] FNV-1a: 558 [ 555] Larson: 593 [ 583] CRC-32: 560 [ 563] Murmur2: 562 [ 566] SBox: 516 [ 526] Murmur2A: 627 [ 544] Murmur3: 651 [ 555] XXHfast32: 602 [ 491] XXHstrong32: 598 [ 491] UTF-8 13408 lines read 32768 elements in the table (15 bits) Jesteress: 2391 [ 2427] Meiyan: 2445 [ 2377] Yorikke: 2427 [ 2392] x17 unrolled: 2786 [ 2392] FNV-1a: 2860 [ 2446] Larson: 2979 [ 2447] CRC-32: 2770 [ 2400] Murmur2: 2724 [ 2399] SBox: 2640 [ 2442] Murmur2A: 3037 [ 2369] Murmur3: 3100 [ 2376] XXHfast32: 2946 [ 2494] XXHstrong32: 2936 [ 2496] IPv4 3925 lines read 8192 elements in the table (13 bits) Jesteress: 576 [ 819] Meiyan: 590 [ 807] Yorikke: 588 [ 821] x17 unrolled: 796 [ 804] FNV-1a: 855 [ 796] Larson: 817 [ 789] CRC-32: 787 [ 802] Murmur2: 698 [ 825] SBox: 722 [ 804] Murmur2A: 762 [ 804] Murmur3: 776 [ 818] XXHfast32: 789 [ 829] XXHstrong32: 809 [ 829] 3333 Latin Powers 3333 lines read 8192 elements in the table (13 bits) Jesteress: 763 [ 576] Meiyan: 770 [ 583] Yorikke: 779 [ 579] x17 unrolled: 1345 [ 564] FNV-1a: 1299 [ 604] Larson: 1301 [ 581] CRC-32: 1192 [ 613] Murmur2: 956 [ 600] SBox: 996 [ 576] Murmur2A: 1023 [ 576] Murmur3: 1032 [ 583] XXHfast32: 843 [ 596] XXHstrong32: 882 [ 571] ~3 million IPs (dot format) 2995394 lines read 8388608 elements in the table (23 bits) Jesteress: 2027663 [691369] Meiyan: 2033983 [593723] Yorikke: 1952199 [476699] x17 unrolled: 2357193 [475528] FNV-1a: 2410596 [477067] Larson: 2369252 [475575] CRC-32: 2298651 [472854] Murmur2: 2298675 [476330] SBox: 2412474 [476681] Murmur2A: 2376168 [475493] Murmur3: 2346091 [476845] XXHfast32: 2365397 [476358] XXHstrong32: 2372267 [476358] Russian ASCII 584879 lines read 2097152 elements in the table (21 bits) Jesteress: 322585 [75404] Meiyan: 325962 [75377] Yorikke: 324935 [74661] x17 unrolled: 311773 [75124] FNV-1a: 370532 [74184] Larson: 327605 [74389] CRC-32: 360723 [74307] Murmur2: 359362 [74234] SBox: 368927 [74645] Murmur2A: 375582 [74456] Murmur3: 371407 [74612] XXHfast32: 370156 [74572] XXHstrong32: 371014 [74603] Wikipedia en 12561874 lines read 33554432 elements in the table (25 bits) Jesteress: 10606801 [2121868] Meiyan: 10691456 [2111271] Yorikke: 10710077 [2084954] x17 unrolled: 10336797 [2410605] FNV-1a: 11551149 [2081195] Larson: 10837339 [2080111] CRC-32: 11464031 [2075088] Murmur2: 11379472 [2081476] SBox: 11530201 [2084018] Murmur2A: 11762919 [2081370] Murmur3: 11708730 [2082084] XXHfast32: 11576405 [2084164] XXHstrong32: 11570909 [2084514] Wikipedia de-en-es-fr-it-nl-pt-ro 22202980 lines read 67108864 elements in the table (26 bits) Jesteress: 19823910 [3355676] Meiyan: 19998537 [3345260] Yorikke: 20036224 [3300245] x17 unrolled: 19252660 [3830652] FNV-1a: 21626497 [3297552] Larson: 20162419 [3296692] CRC-32: 21396006 [3298998] Murmur2: 21249648 [3297709] SBox: 21487107 [3298021] Murmur2A: 21675364 [3300445] Murmur3: 21264598 [3299700] XXHfast32: 21028361 [3301160] XXHstrong32: 21033394 [3302256] 100MB as one line 1 lines read 4 elements in the table (2 bits) Jesteress: 198199 [ 0] Meiyan: 198333 [ 0] Yorikke: 176506 [ 0] x17 unrolled: 953166 [ 0] FNV-1a: 924509 [ 0] Larson: 950111 [ 0] CRC-32: 764957 [ 0] Murmur2: 339978 [ 0] SBox: 512374 [ 0] Murmur2A: 339648 [ 0] Murmur3: 303091 [ 0] XXHfast32: 168528 [ 0] XXHstrong32: 217354 [ 0] 5,000,000 Knight Tours 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 5912178 [676877] Meiyan: 5917649 [676877] Yorikke: 5762697 [677478] x17 unrolled: 136105460 [4868928] FNV-1a: 13574050 [2080003] Larson: 42509864 [4475748] CRC-32: 9373072 [676997] Murmur2: 6755138 [675965] SBox: 11414715 [2079523] Murmur2A: 6882708 [676417] Murmur3: 6673330 [676857] XXHfast32: 5864132 [675637] XXHstrong32: 6154955 [675834] In last test we hash 5 million 128bytes long lines (kind of super-heavy-prefix test). It resembles having very similar (sharing one long prefix) 5 million 128 chars long tweets. Obviously we need more versatile tests (like my 'Knight Tours') in order to find-and-fix possible weak points. Here x17 unrolled, FNV-1a, Larson, SBox fail to keep up with others. In this a la tweet test FNV1A_Yorikke outspeeds XXHfast32 with (5864132-5762697)/5762697*100% = 1.7%, how about on i5/i7 machines!? In pre-last (linear hash speed - 100MB as one line) test XXHfast32 outspeeds FNV1A_Yorikke with (176506-168528)/168528*100% = 4.7%, is this the case on i5/i7 machines!? In my view FNV1A_Yorikke has heart full of soul or "fine and clean like polished gold" (just as B.Traven describes her), yet, more torture is needed. If we have to hash some 5,000,000,000+ tweets, the things would rapidly go ugly. It would be useful to add more fault-finding tests, thus we can have/rely on some hasher for "real world" (i.e. heavy) loads. 2012-Sep-27, Kaze Quite naturally once having the super-heavy PREfix 'Knight Tours' test the POSTfix test must follow: By changing this line in Knight-tour_r8dump.c: printf( "%c%d", 'A'+( (moves[i]-1)%8+1 )-1, 9-( (moves[i]-1)/8+1 ) ); with: printf( "%c%d", 'A'+( (moves[(k-1)-i]-1)%8+1 )-1, 9-( (moves[(k-1)-i]-1)/8+1 ) ); // IN REVERSE ORDER we have Knight-tour_r8dump_reverse.c dumper. E:\_KAZE_hash_Yorikke>Knight-tour_r8dump.exe a8 5 A8C7E8G7H5G3H1F2H3G1E2C1A2B4A6B8D7F8H7G5F7H8G6H4G2E1C2A1B3A5B7D8C6A7C8E7G8H6G4H2F1D2B1A3B5D6F5D4F3E5C4B2D3F4E6C5A4B6D5F6E4C3D1E3 A8C7E8G7H5G3H1F2H3G1E2C1A2B4A6B8D7F8H7G5F7H8G6H4G2E1C2A1B3A5B7D8C6A7C8E7G8H6G4H2F1D2B1A3B5D6F5D4F3E5C4B2D3F4E6C5A4B6D5E3D1C3E4F6 A8C7E8G7H5G3H1F2H3G1E2C1A2B4A6B8D7F8H7G5F7H8G6H4G2E1C2A1B3A5B7D8C6A7C8E7G8H6G4H2F1D2B1A3B5D6F5D4F3E5C4B2D3F4E6C5E4F6D5B6A4C3D1E3 A8C7E8G7H5G3H1F2H3G1E2C1A2B4A6B8D7F8H7G5F7H8G6H4G2E1C2A1B3A5B7D8C6A7C8E7G8H6G4H2F1D2B1A3B5D6F5D4F3E5C4B2D3F4E6C5E4F6D5E3D1C3A4B6 A8C7E8G7H5G3H1F2H3G1E2C1A2B4A6B8D7F8H7G5F7H8G6H4G2E1C2A1B3A5B7D8C6A7C8E7G8H6G4H2F1D2B1A3B5D6F5D4F3E5C4B6A4B2D3C5E6F4D5F6E4C3D1E3 E:\_KAZE_hash_Yorikke>Knight-tour_r8dump_reverse.exe a8 5 E3D1C3E4F6D5B6A4C5E6F4D3B2C4E5F3D4F5D6B5A3B1D2F1H2G4H6G8E7C8A7C6D8B7A5B3A1C2E1G2H4G6H8F7G5H7F8D7B8A6B4A2C1E2G1H3F2H1G3H5G7E8C7A8 F6E4C3D1E3D5B6A4C5E6F4D3B2C4E5F3D4F5D6B5A3B1D2F1H2G4H6G8E7C8A7C6D8B7A5B3A1C2E1G2H4G6H8F7G5H7F8D7B8A6B4A2C1E2G1H3F2H1G3H5G7E8C7A8 E3D1C3A4B6D5F6E4C5E6F4D3B2C4E5F3D4F5D6B5A3B1D2F1H2G4H6G8E7C8A7C6D8B7A5B3A1C2E1G2H4G6H8F7G5H7F8D7B8A6B4A2C1E2G1H3F2H1G3H5G7E8C7A8 B6A4C3D1E3D5F6E4C5E6F4D3B2C4E5F3D4F5D6B5A3B1D2F1H2G4H6G8E7C8A7C6D8B7A5B3A1C2E1G2H4G6H8F7G5H7F8D7B8A6B4A2C1E2G1H3F2H1G3H5G7E8C7A8 E3D1C3E4F6D5F4E6C5D3B2A4B6C4E5F3D4F5D6B5A3B1D2F1H2G4H6G8E7C8A7C6D8B7A5B3A1C2E1G2H4G6H8F7G5H7F8D7B8A6B4A2C1E2G1H3F2H1G3H5G7E8C7A8 5,000,000 Knight Tours 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 5912178 [676877] Meiyan: 5917649 [676877] Yorikke: 5762697 [677478] x17 unrolled: 136105460 [4868928] FNV-1a: 13574050 [2080003] Larson: 42509864 [4475748] CRC-32: 9373072 [676997] Murmur2: 6755138 [675965] SBox: 11414715 [2079523] Murmur2A: 6882708 [676417] Murmur3: 6673330 [676857] XXHfast32: 5864132 [675637] XXHstrong32: 6154955 [675834] E:\_KAZE_hash_Yorikke>hash /q KT5million.txt 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 1.000 Meiyan: 1.000 Yorikke: 1.000 x17 unrolled: 17.468 ! FNV-1a: 1.389 ! Larson: 5.020 ! CRC-32: 1.000 Murmur2: 1.000 SBox: 1.389 ! Murmur2A: 1.000 Murmur3: 1.000 XXHfast32: 1.000 XXHstrong32: 1.000 5,000,000 Knight Tours, in reverse order, (POSTFIX) 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 6161546 [676000] Meiyan: 6172059 [676000] Yorikke: 5986428 [676570] x17 unrolled: 91159986 [4868928] FNV-1a: 13543205 [2078584] Larson: 33251699 [4475752] CRC-32: 9774609 [676723] Murmur2: 7026349 [676903] SBox: 11159664 [2078935] Murmur2A: 7150883 [675809] Murmur3: 6933391 [677667] XXHfast32: 6078054 [675729] XXHstrong32: 6388591 [675331] E:\_KAZE_hash_Yorikke>hash /q KTR5million.txt 5000000 lines read 16777216 elements in the table (24 bits) Jesteress: 1.000 Meiyan: 1.000 Yorikke: 1.000 x17 unrolled: 17.469 ! FNV-1a: 1.389 ! Larson: 5.019 ! CRC-32: 1.000 Murmur2: 1.000 SBox: 1.389 ! Murmur2A: 1.000 Murmur3: 1.000 XXHfast32: 1.000 XXHstrong32: 1.000 Also I checked all above functions against my BB test, that is, all Building-Blocks of OSHO.TXT (198MB in size English ASCII text) of order 3 up to 11. 'Building-Blocks' stand for all distinct sequences of fixed length, for example the string "All right, I cannot pass by you, Yorikke;" when chopped down to BBs of order 4 gives: "All " "ll r" "l ri" " rig" "righ" "ight" "ght," "ht, " "t, I" ", I " " I c" "I ca" " can" "cann" "anno" "nnot" "not " "ot p" "t pa" " pas" "pass" "ass " "ss b" "s by" " by " "by y" "y yo" " you" "you," "ou, " "u, Y" ", Yo" " Yor" "Yori" "orik" "rikk" "ikke" "kke;" In that way OSHO.TXT has 248,019 BBs of order 4 which is BB004.txt 1,240,095 bytes long or 248,019*(4+1) because each line is postfixed with a LF. D:\_KAZE\_KAZE_hash_Yorikke_BB>dir b* 12/03/2010 07:30 AM 185,944 BB003.txt 12/03/2010 07:30 AM 1,240,095 BB004.txt 12/03/2010 07:30 AM 5,134,092 BB005.txt 12/03/2010 07:30 AM 15,652,966 BB006.txt 12/03/2010 07:30 AM 38,425,216 BB007.txt 12/03/2010 07:30 AM 80,608,464 BB008.txt 12/03/2010 07:30 AM 150,061,720 BB009.txt 12/03/2010 07:30 AM 252,913,397 BB010.txt 12/03/2010 07:30 AM 392,490,228 BB011.txt 12/03/2010 07:30 AM 569,430,745 BB012.txt 12/03/2010 07:30 AM 45,501 Building-Blocks_DUMPER.c 12/03/2010 07:30 AM 79,360 Building-Blocks_DUMPER.exe D:\_KAZE\_KAZE_hash_Yorikke_BB>type BB004.txt ... d'$# d' ' d' ( d' - d' . d' B d' C d' H d' I d' W d' Y d' a d' b d' c d' d d' e ... var" var' var, var. var; var? vara varc vard vare varg vari vark varn varr vars vart varu vary vas$ ... D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB003.txt 46486 lines read 131072 elements in the table (17 bits) Jesteress: 4874 [ 7243] Meiyan: 4858 [ 7243] Yorikke: 5112 [ 7397] x17 unrolled: 6848 [26729] FNV-1a: 5308 [ 7485] Larson: 4443 [ 5988] CRC-32: 4878 [ 5649] Murmur2: 5207 [ 7336] SBox: 5181 [ 7368] Murmur2A: 6078 [ 7363] Murmur3: 6690 [ 7386] XXHfast32: 6454 [ 7356] XXHstrong32: 6730 [ 7356] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB004.txt 248019 lines read 524288 elements in the table (19 bits) Jesteress: 58312 [51387] Meiyan: 64706 [50262] Yorikke: 65086 [50467] x17 unrolled: 39302 [98933] FNV-1a: 67408 [50470] Larson: 46738 [47351] CRC-32: 61217 [51193] Murmur2: 73795 [50578] SBox: 70460 [50126] Murmur2A: 82005 [50408] Murmur3: 78639 [50438] XXHfast32: 83342 [50720] XXHstrong32: 84206 [50720] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB005.txt 855682 lines read 2097152 elements in the table (21 bits) Jesteress: 406271 [154078] Meiyan: 410860 [153663] Yorikke: 421928 [153008] x17 unrolled: 202006 [256154] FNV-1a: 475059 [153167] Larson: 304538 [151731] CRC-32: 483619 [147326] Murmur2: 474122 [153379] SBox: 539855 [152837] Murmur2A: 566358 [153081] Murmur3: 544553 [153068] XXHfast32: 558715 [153163] XXHstrong32: 560444 [153163] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB006.txt 2236138 lines read 8388608 elements in the table (23 bits) Jesteress: 1124228 [312565] Meiyan: 1121591 [279633] Yorikke: 1155453 [273706] x17 unrolled: 743698 [449590] FNV-1a: 1470609 [273357] Larson: 973776 [272316] CRC-32: 1507619 [276835] Murmur2: 1553156 [273116] SBox: 1556345 [272768] Murmur2A: 1621602 [273742] Murmur3: 1584959 [272916] XXHfast32: 1615700 [273392] XXHstrong32: 1620443 [273392] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB007.txt 4803152 lines read 16777216 elements in the table (24 bits) Jesteress: 2515600 [637682] Meiyan: 2882823 [627693] Yorikke: 2947983 [627020] x17 unrolled: 2090626 [841178] FNV-1a: 3444612 [625916] Larson: 2536957 [625113] CRC-32: 3539194 [627568] Murmur2: 3578611 [626560] SBox: 3622361 [625535] Murmur2A: 3737961 [626188] Murmur3: 3654863 [626273] XXHfast32: 3744049 [627187] XXHstrong32: 3743835 [627187] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB008.txt 8956496 lines read 33554432 elements in the table (25 bits) Jesteress: 5469010 [1665129] Meiyan: 5467777 [1665129] Yorikke: 5153872 [1104020] x17 unrolled: 4620024 [1356993] FNV-1a: 7008246 [1095401] Larson: 5309546 [1097682] CRC-32: 7171564 [1093966] Murmur2: 7293182 [1093934] SBox: 7471315 [1096181] Murmur2A: 7582698 [1095293] Murmur3: 7405152 [1094830] XXHfast32: 7533773 [1096122] XXHstrong32: 7558653 [1096122] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB009.txt 15006172 lines read 33554432 elements in the table (25 bits) Jesteress: 10632227 [2988193] Meiyan: 10614060 [2988193] Yorikke: 10675057 [2905550] x17 unrolled: 10284444 [3158629] FNV-1a: 14091731 [2906376] Larson: 12020960 [2906063] CRC-32: 14250582 [2903515] Murmur2: 14247871 [2905800] SBox: 14969117 [2906969] Murmur2A: 14722375 [2904790] Murmur3: 14525587 [2907251] XXHfast32: 14595831 [2908527] XXHstrong32: 14594640 [2908527] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB010.txt 22992127 lines read 67108864 elements in the table (26 bits) Jesteress: 18943753 [3611850] Meiyan: 18927904 [3611850] Yorikke: 18901435 [3526499] x17 unrolled: 16517739 [3832933] FNV-1a: 23377371 [3527537] Larson: 18451360 [3523757] CRC-32: 22510585 [3529021] Murmur2: 22645177 [3523751] SBox: 22840017 [3523461] Murmur2A: 23115258 [3525849] Murmur3: 22902076 [3523066] XXHfast32: 23202949 [3524120] XXHstrong32: 23244300 [3524120] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB011.txt 32707519 lines read 67108864 elements in the table (26 bits) Jesteress: 31279158 [6848898] Meiyan: 31260519 [6848898] Yorikke: 31331954 [6821463] x17 unrolled: 28799854 [7098408] FNV-1a: 36592860 [6820338] Larson: 31433023 [6817853] CRC-32: 36338792 [6818991] Murmur2: 36227441 [6817202] SBox: 37062942 [6821829] Murmur2A: 36867484 [6819598] Murmur3: 36712995 [6819178] XXHfast32: 36178213 [6822075] XXHstrong32: 36213315 [6822075] D:\_KAZE\_KAZE_hash_Yorikke_BB>hash BB012.txt 43802365 lines read 134217728 elements in the table (27 bits) Not enough memory Wanted to see what FNV1A_Yorikke offers as speed-and-collisions when compared to CRC-32, so dummy sums follow: Yorikke: 5112 [ 7397] CRC-32: 4878 [ 5649] Yorikke: 65086 [50467] CRC-32: 61217 [51193] Yorikke: 421928 [153008] CRC-32: 483619 [147326] Yorikke: 1155453 [273706] CRC-32: 1507619 [276835] Yorikke: 2947983 [627020] CRC-32: 3539194 [627568] Yorikke: 5153872 [1104020] CRC-32: 7171564 [1093966] Yorikke: 10675057 [2905550] CRC-32: 14250582 [2903515] Yorikke: 18901435 [3526499] CRC-32: 22510585 [3529021] Yorikke: 31331954 [6821463] CRC-32: 36338792 [6818991] FNV1A_Yorikke Speed performance (lesser-the-better): 5112+65086+421928+1155453+2947983+5153872+10675057+18901435+31331954 = 70,657,880 FNV1A_Yorikke Dispersion performance (lesser-the-better): 7397+50467+153008+273706+627020+1104020+2905550+3526499+6821463 = 15,469,130 CRC-32 Speed performance (lesser-the-better): 4878+61217+483619+1507619+3539194+7171564+14250582+22510585+36338792 = 85,868,050 CRC-32 Dispersion performance (lesser-the-better): 5649+51193+147326+276835+627568+1093966+2903515+3529021+6818991 = 15,454,064 Thus, FNV1A_Yorikke outspeeds monstrously (lines below) CRC-32 while maintaining similar collisions. In OSHO.TXT 'Building-Blocks' test with (85868050-70657880)/70657880*100% = 21% In '5,000,000 Knight Tours' test with (9774609-5986428)/5986428*100% = 63% In '100MB as one line' test with (764957-176506)/176506*100% = 333% Of course T7500 limits her, on new CPUs like i5/i7 FNV1A_Yorikke simply 'dances on the water'. 2012-Sep-29, Kaze For reference: www.sanmayce.com/Fastest_Hash/index.html#KT_torture Leprechaun taught me a collision-lesson: the most important thing after hashing speed is MAX_depthness i.e.
how many collisions a single slot holds - this affects collision chaining a lot even with b-trees used.
So I wrote Knight-tour_r8dump_Yorikke.c which hashes Knight-Tours on the fly in order to monitor the fattest slot(s). This torture-test uses 27bit hash table i.e. 134,217,728 slots. Source and executable are here: Knight-tour_r8dump_Yorikke.zip 47,204 bytes. For example the torture-test shows stats at 1,000,000 step: FNV1A_Yorikke: KT_DumpCounter = 0,134,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,049,456,363 CRC32 : KT_DumpCounter = 0,134,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,049,454,733 0134 million KT | FNV1A_Yorikke | 0,001 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0134 million KT | CRC32 | 0,003 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| FNV1A_Yorikke: KT_DumpCounter = 0,399,000,000; 000,000,013 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,006,865,593 CRC32 : KT_DumpCounter = 0,399,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,006,866,685 0399 million KT | FNV1A_Yorikke | 0,013 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0399 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| FNV1A_Yorikke: KT_DumpCounter = 0,555,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,145,975 CRC32 : KT_DumpCounter = 0,555,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,021; HASHfreeSLOTS = 0,002,148,539 0555 million KT | FNV1A_Yorikke | 0,005 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0555 million KT | CRC32 | 0,001 x | 0,021 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| The above bars describe the situation after hashing 134,000,000 KT (which is 1:1 i.e. 134,000,000:134,217,728 = 0.99): The above bars describe the situation after hashing 399,000,000 KT (which is 3:1 i.e. 399,000,000:134,217,728 = 2.97): The above bars describe the situation after hashing 555,000,000 KT (which is 4:1 i.e. 555,000,000:134,217,728 = 4.13): FNV1A_Yorikke has 005 slots with MAX_depthness 019 (number of x's). CRC32 has 001 slot with MAX_depthness 021 (number of x's). In other words MAX_depthness 019 means maximum 019 layers or maximum 019 keys sharing one slot. Notice also that FNV1A_Yorikke has HASH utilization (134,217,728-2,145,975)/134,217,728*100% = 98.401%, a mutsi dispersion, slightly better than CRC32's (134,217,728-2,148,539)/134,217,728*100% = 98.399%. Here comes FNV1A_Yorikke vs CRC32 juxtaposition: E:\_KAZE_hash_Yorikke>cl /Ox Knight-tour_r8dump_Yorikke.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. Knight-tour_r8dump_Yorikke.c Microsoft (R) Incremental Linker Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:Knight-tour_r8dump_Yorikke.exe Knight-tour_r8dump_Yorikke.obj E:\_KAZE_hash_Yorikke>Knight-tour_r8dump_Yorikke a8 5000000000 Knight-tour_r8dump_Yorikke, subrevision A, written by Kaze (based on Kurt White's code), downloadable at www.sanmayce.com/Fastest_Hash Purpose: to compare FNV1A_Yorikke and CRC32 by giving the highest number of collisions i.e. the deepest nest/layer, the-lesser-the-better. KT to be hashed = 5,000,000,000 HashSizeInBits = 27 ReportAtEvery = 1,000,000 Allocating HASH memory 512MB ... OK Allocating HASH memory 512MB ... OK FNV1A_Yorikke: KT_DumpCounter = 0,001,000,000; 000,000,007 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,133,221,361 CRC32 : KT_DumpCounter = 0,001,000,000; 000,000,012 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,133,221,529 ... FNV1A_Yorikke: KT_DumpCounter = 0,010,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,005; HASHfreeSLOTS = 0,124,582,012 CRC32 : KT_DumpCounter = 0,010,000,000; 000,000,007 x MAXcollisionsAtSomeSlots = 000,005; HASHfreeSLOTS = 0,124,581,111 ... FNV1A_Yorikke: KT_DumpCounter = 0,020,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,006; HASHfreeSLOTS = 0,115,637,595 CRC32 : KT_DumpCounter = 0,020,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,006; HASHfreeSLOTS = 0,115,637,199 ... FNV1A_Yorikke: KT_DumpCounter = 0,030,000,000; 000,000,020 x MAXcollisionsAtSomeSlots = 000,006; HASHfreeSLOTS = 0,107,337,108 CRC32 : KT_DumpCounter = 0,030,000,000; 000,000,016 x MAXcollisionsAtSomeSlots = 000,006; HASHfreeSLOTS = 0,107,334,493 ... FNV1A_Yorikke: KT_DumpCounter = 0,040,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,007; HASHfreeSLOTS = 0,099,632,075 CRC32 : KT_DumpCounter = 0,040,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,007; HASHfreeSLOTS = 0,099,628,503 ... FNV1A_Yorikke: KT_DumpCounter = 0,050,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,008; HASHfreeSLOTS = 0,092,480,214 CRC32 : KT_DumpCounter = 0,050,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,008; HASHfreeSLOTS = 0,092,475,419 ... FNV1A_Yorikke: KT_DumpCounter = 0,060,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,085,841,618 CRC32 : KT_DumpCounter = 0,060,000,000; 000,000,006 x MAXcollisionsAtSomeSlots = 000,008; HASHfreeSLOTS = 0,085,836,155 ... FNV1A_Yorikke: KT_DumpCounter = 0,070,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,079,679,457 CRC32 : KT_DumpCounter = 0,070,000,000; 000,000,011 x MAXcollisionsAtSomeSlots = 000,008; HASHfreeSLOTS = 0,079,670,365 ... FNV1A_Yorikke: KT_DumpCounter = 0,080,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,073,957,872 CRC32 : KT_DumpCounter = 0,080,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,073,949,172 ... FNV1A_Yorikke: KT_DumpCounter = 0,090,000,000; 000,000,007 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,068,647,703 CRC32 : KT_DumpCounter = 0,090,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,068,641,085 ... FNV1A_Yorikke: KT_DumpCounter = 0,100,000,000; 000,000,014 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,063,717,986 CRC32 : KT_DumpCounter = 0,100,000,000; 000,000,012 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,063,715,353 ... FNV1A_Yorikke: KT_DumpCounter = 0,110,000,000; 000,000,030 x MAXcollisionsAtSomeSlots = 000,009; HASHfreeSLOTS = 0,059,141,102 CRC32 : KT_DumpCounter = 0,110,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,010; HASHfreeSLOTS = 0,059,139,305 ... FNV1A_Yorikke: KT_DumpCounter = 0,120,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,010; HASHfreeSLOTS = 0,054,894,200 CRC32 : KT_DumpCounter = 0,120,000,000; 000,000,010 x MAXcollisionsAtSomeSlots = 000,010; HASHfreeSLOTS = 0,054,893,250 ... FNV1A_Yorikke: KT_DumpCounter = 0,130,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,050,952,923 CRC32 : KT_DumpCounter = 0,130,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,050,951,063 ... FNV1A_Yorikke: KT_DumpCounter = 0,140,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,047,292,531 CRC32 : KT_DumpCounter = 0,140,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,047,290,862 ... FNV1A_Yorikke: KT_DumpCounter = 0,150,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,043,897,369 CRC32 : KT_DumpCounter = 0,150,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,043,895,258 ... FNV1A_Yorikke: KT_DumpCounter = 0,160,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,040,743,593 CRC32 : KT_DumpCounter = 0,160,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,040,744,121 ... FNV1A_Yorikke: KT_DumpCounter = 0,170,000,000; 000,000,015 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,037,816,932 CRC32 : KT_DumpCounter = 0,170,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,037,819,127 ... FNV1A_Yorikke: KT_DumpCounter = 0,180,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,035,102,046 CRC32 : KT_DumpCounter = 0,180,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,035,102,912 ... FNV1A_Yorikke: KT_DumpCounter = 0,190,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,032,582,000 CRC32 : KT_DumpCounter = 0,190,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,032,582,129 ... FNV1A_Yorikke: KT_DumpCounter = 0,200,000,000; 000,000,009 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,030,243,770 CRC32 : KT_DumpCounter = 0,200,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,030,242,970 ... FNV1A_Yorikke: KT_DumpCounter = 0,210,000,000; 000,000,017 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,028,072,001 CRC32 : KT_DumpCounter = 0,210,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,028,071,497 ... FNV1A_Yorikke: KT_DumpCounter = 0,220,000,000; 000,000,027 x MAXcollisionsAtSomeSlots = 000,012; HASHfreeSLOTS = 0,026,054,916 CRC32 : KT_DumpCounter = 0,220,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,026,055,002 ... FNV1A_Yorikke: KT_DumpCounter = 0,230,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,013; HASHfreeSLOTS = 0,024,185,454 CRC32 : KT_DumpCounter = 0,230,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,024,186,183 ... FNV1A_Yorikke: KT_DumpCounter = 0,240,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,022,449,127 CRC32 : KT_DumpCounter = 0,240,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,022,450,076 ... FNV1A_Yorikke: KT_DumpCounter = 0,250,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,020,837,848 CRC32 : KT_DumpCounter = 0,250,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,020,838,237 ... FNV1A_Yorikke: KT_DumpCounter = 0,260,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,019,341,304 CRC32 : KT_DumpCounter = 0,260,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,019,341,536 ... FNV1A_Yorikke: KT_DumpCounter = 0,270,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,017,954,025 CRC32 : KT_DumpCounter = 0,270,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,017,952,934 ... FNV1A_Yorikke: KT_DumpCounter = 0,280,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,016,666,054 CRC32 : KT_DumpCounter = 0,280,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,016,663,835 ... FNV1A_Yorikke: KT_DumpCounter = 0,290,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,015,468,906 CRC32 : KT_DumpCounter = 0,290,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,015,469,293 ... FNV1A_Yorikke: KT_DumpCounter = 0,300,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,014,359,518 CRC32 : KT_DumpCounter = 0,300,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,014,358,995 ... FNV1A_Yorikke: KT_DumpCounter = 0,310,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,013,327,917 CRC32 : KT_DumpCounter = 0,310,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,013,327,450 ... FNV1A_Yorikke: KT_DumpCounter = 0,320,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,012,370,608 CRC32 : KT_DumpCounter = 0,320,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,012,369,998 ... FNV1A_Yorikke: KT_DumpCounter = 0,330,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,011,481,311 CRC32 : KT_DumpCounter = 0,330,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,011,480,612 ... FNV1A_Yorikke: KT_DumpCounter = 0,340,000,000; 000,000,008 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,010,657,532 CRC32 : KT_DumpCounter = 0,340,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,010,655,788 ... FNV1A_Yorikke: KT_DumpCounter = 0,350,000,000; 000,000,011 x MAXcollisionsAtSomeSlots = 000,015; HASHfreeSLOTS = 0,009,892,058 CRC32 : KT_DumpCounter = 0,350,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,009,890,744 ... FNV1A_Yorikke: KT_DumpCounter = 0,360,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,009,181,748 CRC32 : KT_DumpCounter = 0,360,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,009,181,092 ... FNV1A_Yorikke: KT_DumpCounter = 0,370,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,008,523,451 CRC32 : KT_DumpCounter = 0,370,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,008,522,241 ... FNV1A_Yorikke: KT_DumpCounter = 0,380,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,007,911,414 CRC32 : KT_DumpCounter = 0,380,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,007,910,561 ... FNV1A_Yorikke: KT_DumpCounter = 0,390,000,000; 000,000,010 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,007,342,215 CRC32 : KT_DumpCounter = 0,390,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,007,342,153 ... FNV1A_Yorikke: KT_DumpCounter = 0,400,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,006,814,868 CRC32 : KT_DumpCounter = 0,400,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,006,815,907 ... FNV1A_Yorikke: KT_DumpCounter = 0,410,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,006,325,862 CRC32 : KT_DumpCounter = 0,410,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,006,325,963 ... FNV1A_Yorikke: KT_DumpCounter = 0,420,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,005,871,176 CRC32 : KT_DumpCounter = 0,420,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,005,871,913 ... FNV1A_Yorikke: KT_DumpCounter = 0,430,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,005,449,130 CRC32 : KT_DumpCounter = 0,430,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,005,450,312 ... FNV1A_Yorikke: KT_DumpCounter = 0,440,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,005,057,659 CRC32 : KT_DumpCounter = 0,440,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,005,058,793 ... FNV1A_Yorikke: KT_DumpCounter = 0,450,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,004,693,700 CRC32 : KT_DumpCounter = 0,450,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,004,695,568 ... FNV1A_Yorikke: KT_DumpCounter = 0,460,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,004,357,368 CRC32 : KT_DumpCounter = 0,460,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,004,358,484 ... FNV1A_Yorikke: KT_DumpCounter = 0,470,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,004,043,398 CRC32 : KT_DumpCounter = 0,470,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,004,046,296 ... FNV1A_Yorikke: KT_DumpCounter = 0,480,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,752,819 CRC32 : KT_DumpCounter = 0,480,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,755,862 ... FNV1A_Yorikke: KT_DumpCounter = 0,490,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,483,009 CRC32 : KT_DumpCounter = 0,490,000,000; 000,000,006 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,486,324 ... FNV1A_Yorikke: KT_DumpCounter = 0,500,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,003,233,077 CRC32 : KT_DumpCounter = 0,500,000,000; 000,000,010 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,235,750 ... FNV1A_Yorikke: KT_DumpCounter = 0,510,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,003,000,727 CRC32 : KT_DumpCounter = 0,510,000,000; 000,000,015 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,003,966 ... FNV1A_Yorikke: KT_DumpCounter = 0,520,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,785,052 CRC32 : KT_DumpCounter = 0,520,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,787,871 ... FNV1A_Yorikke: KT_DumpCounter = 0,530,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,585,445 CRC32 : KT_DumpCounter = 0,530,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,587,661 ... FNV1A_Yorikke: KT_DumpCounter = 0,540,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,399,134 CRC32 : KT_DumpCounter = 0,540,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,402,397 ... FNV1A_Yorikke: KT_DumpCounter = 0,550,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,002,227,776 CRC32 : KT_DumpCounter = 0,550,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,021; HASHfreeSLOTS = 0,002,229,763 ... After some 18h of computing one tenth of the torture was done i.e. 550,000,000 KT, the bars below show the depthness at step 10 million, the-shorter-the-bar-the-better: 0001 million KT | FNV1A_Yorikke | 0,007 x | 0,003 |x|x|x| 0001 million KT | CRC32 | 0,012 x | 0,003 |x|x|x| 0010 million KT | FNV1A_Yorikke | 0,001 x | 0,005 |x|x|x|x|x| 0010 million KT | CRC32 | 0,007 x | 0,005 |x|x|x|x|x| 0020 million KT | FNV1A_Yorikke | 0,005 x | 0,006 |x|x|x|x|x|x| 0020 million KT | CRC32 | 0,001 x | 0,006 |x|x|x|x|x|x| 0030 million KT | FNV1A_Yorikke | 0,020 x | 0,006 |x|x|x|x|x|x| 0030 million KT | CRC32 | 0,016 x | 0,006 |x|x|x|x|x|x| 0040 million KT | FNV1A_Yorikke | 0,004 x | 0,007 |x|x|x|x|x|x|x| 0040 million KT | CRC32 | 0,002 x | 0,007 |x|x|x|x|x|x|x| 0050 million KT | FNV1A_Yorikke | 0,002 x | 0,008 |x|x|x|x|x|x|x|x| 0050 million KT | CRC32 | 0,003 x | 0,008 |x|x|x|x|x|x|x|x| 0060 million KT | FNV1A_Yorikke | 0,001 x | 0,009 |x|x|x|x|x|x|x|x|x| 0060 million KT | CRC32 | 0,006 x | 0,008 |x|x|x|x|x|x|x|x| 0070 million KT | FNV1A_Yorikke | 0,001 x | 0,009 |x|x|x|x|x|x|x|x|x| 0070 million KT | CRC32 | 0,011 x | 0,008 |x|x|x|x|x|x|x|x| 0080 million KT | FNV1A_Yorikke | 0,001 x | 0,009 |x|x|x|x|x|x|x|x|x| 0080 million KT | CRC32 | 0,003 x | 0,009 |x|x|x|x|x|x|x|x|x| 0090 million KT | FNV1A_Yorikke | 0,007 x | 0,009 |x|x|x|x|x|x|x|x|x| 0090 million KT | CRC32 | 0,005 x | 0,009 |x|x|x|x|x|x|x|x|x| 0100 million KT | FNV1A_Yorikke | 0,014 x | 0,009 |x|x|x|x|x|x|x|x|x| 0100 million KT | CRC32 | 0,012 x | 0,009 |x|x|x|x|x|x|x|x|x| 0110 million KT | FNV1A_Yorikke | 0,030 x | 0,009 |x|x|x|x|x|x|x|x|x| 0110 million KT | CRC32 | 0,003 x | 0,010 |x|x|x|x|x|x|x|x|x|x| 0120 million KT | FNV1A_Yorikke | 0,003 x | 0,010 |x|x|x|x|x|x|x|x|x|x| 0120 million KT | CRC32 | 0,010 x | 0,010 |x|x|x|x|x|x|x|x|x|x| 0130 million KT | FNV1A_Yorikke | 0,001 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0130 million KT | CRC32 | 0,003 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0140 million KT | FNV1A_Yorikke | 0,001 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0140 million KT | CRC32 | 0,001 x | 0,012 |x|x|x|x|x|x|x|x|x|x|x|x| 0150 million KT | FNV1A_Yorikke | 0,002 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0150 million KT | CRC32 | 0,001 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0160 million KT | FNV1A_Yorikke | 0,004 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0160 million KT | CRC32 | 0,001 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0170 million KT | FNV1A_Yorikke | 0,015 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0170 million KT | CRC32 | 0,001 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0180 million KT | FNV1A_Yorikke | 0,003 x | 0,012 |x|x|x|x|x|x|x|x|x|x|x|x| 0180 million KT | CRC32 | 0,001 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0190 million KT | FNV1A_Yorikke | 0,005 x | 0,012 |x|x|x|x|x|x|x|x|x|x|x|x| 0190 million KT | CRC32 | 0,002 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0200 million KT | FNV1A_Yorikke | 0,009 x | 0,012 |x|x|x|x|x|x|x|x|x|x|x|x| 0200 million KT | CRC32 | 0,002 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0210 million KT | FNV1A_Yorikke | 0,017 x | 0,012 |x|x|x|x|x|x|x|x|x|x|x|x| 0210 million KT | CRC32 | 0,005 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0220 million KT | FNV1A_Yorikke | 0,027 x | 0,012 |x|x|x|x|x|x|x|x|x|x|x|x| 0220 million KT | CRC32 | 0,002 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0230 million KT | FNV1A_Yorikke | 0,003 x | 0,013 |x|x|x|x|x|x|x|x|x|x|x|x|x| 0230 million KT | CRC32 | 0,002 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0240 million KT | FNV1A_Yorikke | 0,001 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0240 million KT | CRC32 | 0,003 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0250 million KT | FNV1A_Yorikke | 0,001 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0250 million KT | CRC32 | 0,001 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0260 million KT | FNV1A_Yorikke | 0,001 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0260 million KT | CRC32 | 0,001 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0270 million KT | FNV1A_Yorikke | 0,001 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0270 million KT | CRC32 | 0,001 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0280 million KT | FNV1A_Yorikke | 0,002 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0280 million KT | CRC32 | 0,002 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0290 million KT | FNV1A_Yorikke | 0,002 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0290 million KT | CRC32 | 0,002 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0300 million KT | FNV1A_Yorikke | 0,002 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0300 million KT | CRC32 | 0,002 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0310 million KT | FNV1A_Yorikke | 0,003 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0310 million KT | CRC32 | 0,003 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0320 million KT | FNV1A_Yorikke | 0,003 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0320 million KT | CRC32 | 0,004 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0330 million KT | FNV1A_Yorikke | 0,005 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0330 million KT | CRC32 | 0,001 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0340 million KT | FNV1A_Yorikke | 0,008 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0340 million KT | CRC32 | 0,001 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0350 million KT | FNV1A_Yorikke | 0,011 x | 0,015 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0350 million KT | CRC32 | 0,002 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0360 million KT | FNV1A_Yorikke | 0,002 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0360 million KT | CRC32 | 0,002 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0370 million KT | FNV1A_Yorikke | 0,003 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0370 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0380 million KT | FNV1A_Yorikke | 0,005 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0380 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0390 million KT | FNV1A_Yorikke | 0,010 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0390 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0400 million KT | FNV1A_Yorikke | 0,001 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0400 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0410 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0410 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0420 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0420 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0430 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0430 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0440 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0440 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0450 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0450 million KT | CRC32 | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0460 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0460 million KT | CRC32 | 0,002 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0470 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0470 million KT | CRC32 | 0,003 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0480 million KT | FNV1A_Yorikke | 0,003 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0480 million KT | CRC32 | 0,003 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0490 million KT | FNV1A_Yorikke | 0,004 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0490 million KT | CRC32 | 0,006 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0500 million KT | FNV1A_Yorikke | 0,001 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0500 million KT | CRC32 | 0,010 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0510 million KT | FNV1A_Yorikke | 0,002 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0510 million KT | CRC32 | 0,015 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0520 million KT | FNV1A_Yorikke | 0,002 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0520 million KT | CRC32 | 0,001 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0530 million KT | FNV1A_Yorikke | 0,005 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0530 million KT | CRC32 | 0,002 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0540 million KT | FNV1A_Yorikke | 0,005 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0540 million KT | CRC32 | 0,005 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0550 million KT | FNV1A_Yorikke | 0,005 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0550 million KT | CRC32 | 0,001 x | 0,021 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| The bars below (the above bars rotated 90°CCW) show the depthness at step 10 million, the-shorter-the-bar-the-better: FNV1A_Yorikke disperses Knight-Tours in a side-by-side manner with CRC32, but much faster. excruciate 1. To inflict severe pain on; torture. 2. To inflict great mental distress on. [Latin excruciare, excruciat- : ex-, intensive pref. ; see ex- + cruciare, to crucify, torture (from crux, cruc-, cross).] /The American Heritage Dictionary of the English Language, Fourth Edition/ FNV1A_Yorikke having been excruciated with KT torture proved to be collision-reliable, no? 2012-Oct-03, Kaze Roughly 220h later: ... FNV1A_Yorikke: KT_DumpCounter = 0,672,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,022; HASHfreeSLOTS = 0,000,898,046 CRC32 : KT_DumpCounter = 0,672,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,022; HASHfreeSLOTS = 0,000,898,939 ... FNV1A_Yorikke: KT_DumpCounter = 0,806,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,024; HASHfreeSLOTS = 0,000,330,401 CRC32 : KT_DumpCounter = 0,806,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,024; HASHfreeSLOTS = 0,000,330,204 ... FNV1A_Yorikke: KT_DumpCounter = 0,940,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,026; HASHfreeSLOTS = 0,000,121,471 CRC32 : KT_DumpCounter = 0,940,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,027; HASHfreeSLOTS = 0,000,121,756 ... FNV1A_Yorikke: KT_DumpCounter = 1,074,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,029; HASHfreeSLOTS = 0,000,044,637 CRC32 : KT_DumpCounter = 1,074,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,028; HASHfreeSLOTS = 0,000,044,625 ... FNV1A_Yorikke: KT_DumpCounter = 1,208,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,031; HASHfreeSLOTS = 0,000,016,433 CRC32 : KT_DumpCounter = 1,208,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,030; HASHfreeSLOTS = 0,000,016,310 ... FNV1A_Yorikke: KT_DumpCounter = 1,343,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,033; HASHfreeSLOTS = 0,000,005,979 CRC32 : KT_DumpCounter = 1,343,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,032; HASHfreeSLOTS = 0,000,005,924 ... FNV1A_Yorikke: KT_DumpCounter = 1,477,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,036; HASHfreeSLOTS = 0,000,002,223 CRC32 : KT_DumpCounter = 1,477,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,034; HASHfreeSLOTS = 0,000,002,239 ... FNV1A_Yorikke: KT_DumpCounter = 1,611,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,037; HASHfreeSLOTS = 0,000,000,812 CRC32 : KT_DumpCounter = 1,611,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,037; HASHfreeSLOTS = 0,000,000,851 ... FNV1A_Yorikke: KT_DumpCounter = 1,745,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,038; HASHfreeSLOTS = 0,000,000,286 CRC32 : KT_DumpCounter = 1,745,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,038; HASHfreeSLOTS = 0,000,000,336 ... FNV1A_Yorikke: KT_DumpCounter = 1,880,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,041; HASHfreeSLOTS = 0,000,000,114 CRC32 : KT_DumpCounter = 1,880,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,040; HASHfreeSLOTS = 0,000,000,132 ... FNV1A_Yorikke: KT_DumpCounter = 2,014,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,043; HASHfreeSLOTS = 0,000,000,036 CRC32 : KT_DumpCounter = 2,014,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,042; HASHfreeSLOTS = 0,000,000,048 ... FNV1A_Yorikke: KT_DumpCounter = 2,148,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,044; HASHfreeSLOTS = 0,000,000,018 CRC32 : KT_DumpCounter = 2,148,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,044; HASHfreeSLOTS = 0,000,000,012 ... FNV1A_Yorikke: KT_DumpCounter = 2,282,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,045; HASHfreeSLOTS = 0,000,000,005 CRC32 : KT_DumpCounter = 2,282,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,045; HASHfreeSLOTS = 0,000,000,003 ... FNV1A_Yorikke: KT_DumpCounter = 2,416,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,048; HASHfreeSLOTS = 0,000,000,002 CRC32 : KT_DumpCounter = 2,416,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,046; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 2,551,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,048; HASHfreeSLOTS = 0,000,000,002 CRC32 : KT_DumpCounter = 2,551,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,047; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 2,685,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,052; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 2,685,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,050; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 2,819,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,052; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 2,819,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,051; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 2,953,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,055; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 2,953,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,053; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,088,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,055; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,088,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,055; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,222,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,057; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,222,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,057; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,356,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,058; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,356,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,059; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,490,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,061; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,490,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,060; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,624,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,062; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,624,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,061; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,759,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,064; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,759,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,062; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 3,893,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,065; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 3,893,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,064; HASHfreeSLOTS = 0,000,000,000 ... FNV1A_Yorikke: KT_DumpCounter = 4,027,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,066; HASHfreeSLOTS = 0,000,000,000 CRC32 : KT_DumpCounter = 4,027,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,066; HASHfreeSLOTS = 0,000,000,000 ... ^C It seems that after the mark 4,050,000,000 finding KT is very slow so I stopped it and I wrote subrev. B using another 4 top-gun CRC32 variants. The bars below describe the situation after hashing: 0,672,000,000 KT (which is 05:1 i.e. 0,672,000,000:134,217,728 = 05.00) 0,806,000,000 KT (which is 06:1 i.e. 0,806,000,000:134,217,728 = 06.00) 0,940,000,000 KT (which is 07:1 i.e. 0,940,000,000:134,217,728 = 07.00) 1,074,000,000 KT (which is 08:1 i.e. 1,074,000,000:134,217,728 = 08.00) 1,208,000,000 KT (which is 09:1 i.e. 1,208,000,000:134,217,728 = 09.00) 1,343,000,000 KT (which is 10:1 i.e. 1,343,000,000:134,217,728 = 10.00) 1,477,000,000 KT (which is 11:1 i.e. 1,477,000,000:134,217,728 = 11.00) 1,611,000,000 KT (which is 12:1 i.e. 1,611,000,000:134,217,728 = 12.00) 1,745,000,000 KT (which is 13:1 i.e. 1,745,000,000:134,217,728 = 13.00) 1,880,000,000 KT (which is 14:1 i.e. 1,880,000,000:134,217,728 = 14.00) 2,014,000,000 KT (which is 15:1 i.e. 2,014,000,000:134,217,728 = 15.00) 2,148,000,000 KT (which is 16:1 i.e. 2,148,000,000:134,217,728 = 16.00) 2,282,000,000 KT (which is 17:1 i.e. 2,282,000,000:134,217,728 = 17.00) 2,416,000,000 KT (which is 18:1 i.e. 2,416,000,000:134,217,728 = 18.00) 2,551,000,000 KT (which is 19:1 i.e. 2,551,000,000:134,217,728 = 19.00) 2,685,000,000 KT (which is 20:1 i.e. 2,685,000,000:134,217,728 = 20.00) 2,819,000,000 KT (which is 21:1 i.e. 2,819,000,000:134,217,728 = 21.00) 2,953,000,000 KT (which is 22:1 i.e. 2,953,000,000:134,217,728 = 22.00) 3,088,000,000 KT (which is 23:1 i.e. 3,088,000,000:134,217,728 = 23.00) 3,222,000,000 KT (which is 24:1 i.e. 3,222,000,000:134,217,728 = 24.00) 3,356,000,000 KT (which is 25:1 i.e. 3,356,000,000:134,217,728 = 25.00) 3,490,000,000 KT (which is 26:1 i.e. 3,490,000,000:134,217,728 = 26.00) 3,624,000,000 KT (which is 27:1 i.e. 3,624,000,000:134,217,728 = 27.00) 3,759,000,000 KT (which is 28:1 i.e. 3,759,000,000:134,217,728 = 28.00) 3,893,000,000 KT (which is 29:1 i.e. 3,893,000,000:134,217,728 = 29.00) 4,027,000,000 KT (which is 30:1 i.e. 4,027,000,000:134,217,728 = 30.00) 0672 million KT | FNV1A_Yorikke | 0,003 x | 0,022 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0672 million KT | CRC32 | 0,003 x | 0,022 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0806 million KT | FNV1A_Yorikke | 0,001 x | 0,024 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0806 million KT | CRC32 | 0,004 x | 0,024 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0940 million KT | FNV1A_Yorikke | 0,001 x | 0,026 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0940 million KT | CRC32 | 0,001 x | 0,027 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1074 million KT | FNV1A_Yorikke | 0,001 x | 0,029 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1074 million KT | CRC32 | 0,001 x | 0,028 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1208 million KT | FNV1A_Yorikke | 0,003 x | 0,031 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1208 million KT | CRC32 | 0,003 x | 0,030 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1343 million KT | FNV1A_Yorikke | 0,002 x | 0,033 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1343 million KT | CRC32 | 0,002 x | 0,032 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1477 million KT | FNV1A_Yorikke | 0,001 x | 0,036 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1477 million KT | CRC32 | 0,003 x | 0,034 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1611 million KT | FNV1A_Yorikke | 0,001 x | 0,037 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1611 million KT | CRC32 | 0,001 x | 0,037 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1745 million KT | FNV1A_Yorikke | 0,002 x | 0,038 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1745 million KT | CRC32 | 0,001 x | 0,038 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1880 million KT | FNV1A_Yorikke | 0,001 x | 0,041 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1880 million KT | CRC32 | 0,001 x | 0,040 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2014 million KT | FNV1A_Yorikke | 0,001 x | 0,043 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2014 million KT | CRC32 | 0,001 x | 0,042 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2148 million KT | FNV1A_Yorikke | 0,002 x | 0,044 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2148 million KT | CRC32 | 0,001 x | 0,044 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2282 million KT | FNV1A_Yorikke | 0,001 x | 0,045 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2282 million KT | CRC32 | 0,001 x | 0,045 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2416 million KT | FNV1A_Yorikke | 0,001 x | 0,048 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2416 million KT | CRC32 | 0,003 x | 0,046 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2551 million KT | FNV1A_Yorikke | 0,004 x | 0,048 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2551 million KT | CRC32 | 0,003 x | 0,047 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2685 million KT | FNV1A_Yorikke | 0,001 x | 0,052 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2685 million KT | CRC32 | 0,001 x | 0,050 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2819 million KT | FNV1A_Yorikke | 0,001 x | 0,052 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2819 million KT | CRC32 | 0,001 x | 0,051 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2953 million KT | FNV1A_Yorikke | 0,001 x | 0,055 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 2953 million KT | CRC32 | 0,001 x | 0,053 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3088 million KT | FNV1A_Yorikke | 0,001 x | 0,055 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3088 million KT | CRC32 | 0,001 x | 0,055 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3222 million KT | FNV1A_Yorikke | 0,001 x | 0,057 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3222 million KT | CRC32 | 0,001 x | 0,057 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3356 million KT | FNV1A_Yorikke | 0,003 x | 0,058 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3356 million KT | CRC32 | 0,001 x | 0,059 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3490 million KT | FNV1A_Yorikke | 0,001 x | 0,061 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3490 million KT | CRC32 | 0,001 x | 0,060 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3624 million KT | FNV1A_Yorikke | 0,002 x | 0,062 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3624 million KT | CRC32 | 0,002 x | 0,061 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3759 million KT | FNV1A_Yorikke | 0,001 x | 0,064 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3759 million KT | CRC32 | 0,002 x | 0,062 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3893 million KT | FNV1A_Yorikke | 0,001 x | 0,065 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 3893 million KT | CRC32 | 0,003 x | 0,064 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 4027 million KT | FNV1A_Yorikke | 0,001 x | 0,066 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 4027 million KT | CRC32 | 0,004 x | 0,066 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| So far the distribution still goes with no peaks, is there a wingman at all or they both are on their own?! For reference: www.sanmayce.com/Fastest_Hash/index.html#KT_torture2 Enough, here comes subrevision B featuring 4 top-gun CRC32 variants: This torture-test uses 26bit hash table i.e. 67,108,864 slots. Source and executable are here: Knight-tour_r8dump_Yorikke_CRC8.zip 505,095 bytes. The article '32-Bit Cyclic Redundancy Codes for Internet Applications' by Philip Koopman was used, very informative and practical. // Koopman #define CRCPOLYK1 0xBA0DC66B //CRC-32K_0xBA0DC66B #define CRCPOLYK2 0x90022004 //CRC-32K_0x90022004 // Castagnoli #define CRCPOLYC1 0x82F63B78 //CRC-32C_0x82F63B78 #define CRCPOLYC2 0x8F6E37A0 //CRC-32C_0x8F6E37A0 //0x82608EDB // The IEEE 802.3 standard: HD=6 for 172-268; HD=8 for 58-91 //0x8F6E37A0 // Castagnoli (iSCSI): HD=6 for 178-5243; HD=8 for 48-177 //0xBA0DC66B // Koopman: HD=6 for 153-16360; HD=8 for 19-152 //0x90022004 // Koopman: HD=6!!! for 8!!!-32738 Here comes FNV1A_Yorikke vs CRC32K1/CRC32K2/CRC32C1/CRC32C2 juxtaposition: E:\Knight-tour_r8dump_Yorikke_CRC8>Knight-tour_r8dump_Yorikke_CRC8.exe a8 14000000000 Knight-tour_r8dump_Yorikke, subrevision B, written by Kaze (based on Kurt White's code), downloadable at www.sanmayce.com/Fastest_Hash Purpose: to compare FNV1A_Yorikke and CRC32 by giving the highest number of collisions i.e. the deepest nest/layer, the-lesser-the-better. Polynomial used: CRC32C1_8slice: 0x82F63B78 CRC32C2_8slice: 0x8F6E37A0 CRC32K1_8slice: 0xBA0DC66B CRC32K2_8slice: 0x90022004 KT to be hashed = 14,000,000,000 HashSizeInBits = 26 ReportAtEvery = 1,000,000 Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK Allocating HASH memory 256MB ... OK FNV1A_Yorikke : KT_DumpCounter = 00,001,000,000; 000,000,044 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,066,116,294; HashUtilization = 001% CRC32K1_8slice: KT_DumpCounter = 00,001,000,000; 000,000,033 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,066,116,206; HashUtilization = 001% CRC32K2_8slice: KT_DumpCounter = 00,001,000,000; 000,000,034 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,066,116,164; HashUtilization = 001% CRC32C1_8slice: KT_DumpCounter = 00,001,000,000; 000,000,038 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,066,116,314; HashUtilization = 001% CRC32C2_8slice: KT_DumpCounter = 00,001,000,000; 000,000,032 x MAXcollisionsAtSomeSlots = 000,003; HASHfreeSLOTS = 0,066,116,266; HashUtilization = 001% ... FNV1A_Yorikke : KT_DumpCounter = 00,068,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,024,366,892; HashUtilization = 063% CRC32K1_8slice: KT_DumpCounter = 00,068,000,000; 000,000,010 x MAXcollisionsAtSomeSlots = 000,010; HASHfreeSLOTS = 0,024,358,922; HashUtilization = 063% CRC32K2_8slice: KT_DumpCounter = 00,068,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,024,361,040; HashUtilization = 063% CRC32C1_8slice: KT_DumpCounter = 00,068,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,011; HASHfreeSLOTS = 0,024,363,460; HashUtilization = 063% CRC32C2_8slice: KT_DumpCounter = 00,068,000,000; 000,000,008 x MAXcollisionsAtSomeSlots = 000,010; HASHfreeSLOTS = 0,024,362,370; HashUtilization = 063% ... FNV1A_Yorikke : KT_DumpCounter = 00,135,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,008,975,330; HashUtilization = 086% CRC32K1_8slice: KT_DumpCounter = 00,135,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,008,977,551; HashUtilization = 086% CRC32K2_8slice: KT_DumpCounter = 00,135,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,008,978,613; HashUtilization = 086% CRC32C1_8slice: KT_DumpCounter = 00,135,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,008,981,649; HashUtilization = 086% CRC32C2_8slice: KT_DumpCounter = 00,135,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,014; HASHfreeSLOTS = 0,008,974,333; HashUtilization = 086% ... FNV1A_Yorikke : KT_DumpCounter = 00,202,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,018; HASHfreeSLOTS = 0,003,307,428; HashUtilization = 095% CRC32K1_8slice: KT_DumpCounter = 00,202,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,003,306,377; HashUtilization = 095% CRC32K2_8slice: KT_DumpCounter = 00,202,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,016; HASHfreeSLOTS = 0,003,307,016; HashUtilization = 095% CRC32C1_8slice: KT_DumpCounter = 00,202,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,003,309,824; HashUtilization = 095% CRC32C2_8slice: KT_DumpCounter = 00,202,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,017; HASHfreeSLOTS = 0,003,308,062; HashUtilization = 095% ... FNV1A_Yorikke : KT_DumpCounter = 00,269,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,020; HASHfreeSLOTS = 0,001,218,895; HashUtilization = 098% CRC32K1_8slice: KT_DumpCounter = 00,269,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,001,218,557; HashUtilization = 098% CRC32K2_8slice: KT_DumpCounter = 00,269,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,019; HASHfreeSLOTS = 0,001,216,994; HashUtilization = 098% CRC32C1_8slice: KT_DumpCounter = 00,269,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,020; HASHfreeSLOTS = 0,001,220,003; HashUtilization = 098% CRC32C2_8slice: KT_DumpCounter = 00,269,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,020; HASHfreeSLOTS = 0,001,220,718; HashUtilization = 098% ... FNV1A_Yorikke : KT_DumpCounter = 00,336,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,023; HASHfreeSLOTS = 0,000,449,498; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,336,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,021; HASHfreeSLOTS = 0,000,449,035; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,336,000,000; 000,000,005 x MAXcollisionsAtSomeSlots = 000,021; HASHfreeSLOTS = 0,000,448,051; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,336,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,022; HASHfreeSLOTS = 0,000,449,670; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,336,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,022; HASHfreeSLOTS = 0,000,449,520; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,403,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,024; HASHfreeSLOTS = 0,000,165,623; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,403,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,023; HASHfreeSLOTS = 0,000,165,659; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,403,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,023; HASHfreeSLOTS = 0,000,164,681; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,403,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,026; HASHfreeSLOTS = 0,000,165,881; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,403,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,026; HASHfreeSLOTS = 0,000,165,540; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,470,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,027; HASHfreeSLOTS = 0,000,061,126; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,470,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,026; HASHfreeSLOTS = 0,000,060,953; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,470,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,027; HASHfreeSLOTS = 0,000,060,768; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,470,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,028; HASHfreeSLOTS = 0,000,061,074; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,470,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,029; HASHfreeSLOTS = 0,000,060,942; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,537,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,030; HASHfreeSLOTS = 0,000,022,753; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,537,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,028; HASHfreeSLOTS = 0,000,022,400; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,537,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,028; HASHfreeSLOTS = 0,000,022,471; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,537,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,028; HASHfreeSLOTS = 0,000,022,576; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,537,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,030; HASHfreeSLOTS = 0,000,022,541; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,604,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,032; HASHfreeSLOTS = 0,000,008,372; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,604,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,031; HASHfreeSLOTS = 0,000,008,210; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,604,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,030; HASHfreeSLOTS = 0,000,008,290; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,604,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,031; HASHfreeSLOTS = 0,000,008,247; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,604,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,030; HASHfreeSLOTS = 0,000,008,277; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,672,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,032; HASHfreeSLOTS = 0,000,003,057; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,672,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,032; HASHfreeSLOTS = 0,000,002,979; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,672,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,032; HASHfreeSLOTS = 0,000,002,957; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,672,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,033; HASHfreeSLOTS = 0,000,003,059; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,672,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,033; HASHfreeSLOTS = 0,000,003,033; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,739,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,034; HASHfreeSLOTS = 0,000,001,130; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,739,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,033; HASHfreeSLOTS = 0,000,001,117; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,739,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,034; HASHfreeSLOTS = 0,000,001,125; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,739,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,034; HASHfreeSLOTS = 0,000,001,109; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,739,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,035; HASHfreeSLOTS = 0,000,001,109; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,806,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,036; HASHfreeSLOTS = 0,000,000,390; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,806,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,035; HASHfreeSLOTS = 0,000,000,417; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,806,000,000; 000,000,004 x MAXcollisionsAtSomeSlots = 000,035; HASHfreeSLOTS = 0,000,000,416; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,806,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,036; HASHfreeSLOTS = 0,000,000,399; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,806,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,036; HASHfreeSLOTS = 0,000,000,407; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,873,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,037; HASHfreeSLOTS = 0,000,000,139; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,873,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,036; HASHfreeSLOTS = 0,000,000,162; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,873,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,038; HASHfreeSLOTS = 0,000,000,143; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,873,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,039; HASHfreeSLOTS = 0,000,000,150; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,873,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,039; HASHfreeSLOTS = 0,000,000,171; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 00,940,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,040; HASHfreeSLOTS = 0,000,000,049; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 00,940,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,039; HASHfreeSLOTS = 0,000,000,068; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 00,940,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,039; HASHfreeSLOTS = 0,000,000,045; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 00,940,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,040; HASHfreeSLOTS = 0,000,000,062; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 00,940,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,040; HASHfreeSLOTS = 0,000,000,067; HashUtilization = 099% ... FNV1A_Yorikke : KT_DumpCounter = 01,007,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,041; HASHfreeSLOTS = 0,000,000,013; HashUtilization = 099% CRC32K1_8slice: KT_DumpCounter = 01,007,000,000; 000,000,003 x MAXcollisionsAtSomeSlots = 000,039; HASHfreeSLOTS = 0,000,000,027; HashUtilization = 099% CRC32K2_8slice: KT_DumpCounter = 01,007,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,040; HASHfreeSLOTS = 0,000,000,021; HashUtilization = 099% CRC32C1_8slice: KT_DumpCounter = 01,007,000,000; 000,000,002 x MAXcollisionsAtSomeSlots = 000,041; HASHfreeSLOTS = 0,000,000,020; HashUtilization = 099% CRC32C2_8slice: KT_DumpCounter = 01,007,000,000; 000,000,001 x MAXcollisionsAtSomeSlots = 000,043; HASHfreeSLOTS = 0,000,000,018; HashUtilization = 099% ... 001:1 0,068 million KT | FNV1A_Yorikke | 0,002 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0,068 million KT | CRC32K1 | 0,010 x | 0,010 |x|x|x|x|x|x|x|x|x|x| 0,068 million KT | CRC32K2 | 0,001 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0,068 million KT | CRC32C1 | 0,001 x | 0,011 |x|x|x|x|x|x|x|x|x|x|x| 0,068 million KT | CRC32C2 | 0,008 x | 0,010 |x|x|x|x|x|x|x|x|x|x| 002:1 0,135 million KT | FNV1A_Yorikke | 0,001 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,135 million KT | CRC32K1 | 0,001 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,135 million KT | CRC32K2 | 0,003 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,135 million KT | CRC32C1 | 0,003 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,135 million KT | CRC32C2 | 0,002 x | 0,014 |x|x|x|x|x|x|x|x|x|x|x|x|x|x| 003:1 0,202 million KT | FNV1A_Yorikke | 0,001 x | 0,018 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,202 million KT | CRC32K1 | 0,005 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,202 million KT | CRC32K2 | 0,004 x | 0,016 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,202 million KT | CRC32C1 | 0,002 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,202 million KT | CRC32C2 | 0,002 x | 0,017 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 004:1 0,269 million KT | FNV1A_Yorikke | 0,003 x | 0,020 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,269 million KT | CRC32K1 | 0,003 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,269 million KT | CRC32K2 | 0,002 x | 0,019 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,269 million KT | CRC32C1 | 0,001 x | 0,020 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,269 million KT | CRC32C2 | 0,002 x | 0,020 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 005:1 0,336 million KT | FNV1A_Yorikke | 0,001 x | 0,023 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,336 million KT | CRC32K1 | 0,004 x | 0,021 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,336 million KT | CRC32K2 | 0,005 x | 0,021 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,336 million KT | CRC32C1 | 0,002 x | 0,022 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,336 million KT | CRC32C2 | 0,001 x | 0,022 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 006:1 0,403 million KT | FNV1A_Yorikke | 0,001 x | 0,024 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,403 million KT | CRC32K1 | 0,003 x | 0,023 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,403 million KT | CRC32K2 | 0,003 x | 0,023 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,403 million KT | CRC32C1 | 0,001 x | 0,026 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,403 million KT | CRC32C2 | 0,001 x | 0,026 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 007:1 0,470 million KT | FNV1A_Yorikke | 0,002 x | 0,027 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,470 million KT | CRC32K1 | 0,001 x | 0,026 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,470 million KT | CRC32K2 | 0,001 x | 0,027 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,470 million KT | CRC32C1 | 0,001 x | 0,028 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,470 million KT | CRC32C2 | 0,001 x | 0,029 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 008:1 0,537 million KT | FNV1A_Yorikke | 0,001 x | 0,030 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,537 million KT | CRC32K1 | 0,001 x | 0,028 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,537 million KT | CRC32K2 | 0,001 x | 0,028 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,537 million KT | CRC32C1 | 0,001 x | 0,028 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,537 million KT | CRC32C2 | 0,001 x | 0,030 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 009:1 0,604 million KT | FNV1A_Yorikke | 0,001 x | 0,032 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,604 million KT | CRC32K1 | 0,001 x | 0,031 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,604 million KT | CRC32K2 | 0,001 x | 0,030 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,604 million KT | CRC32C1 | 0,001 x | 0,031 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,604 million KT | CRC32C2 | 0,001 x | 0,030 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 010:1 0,672 million KT | FNV1A_Yorikke | 0,002 x | 0,032 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,672 million KT | CRC32K1 | 0,002 x | 0,032 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,672 million KT | CRC32K2 | 0,002 x | 0,032 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,672 million KT | CRC32C1 | 0,001 x | 0,033 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,672 million KT | CRC32C2 | 0,003 x | 0,033 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 011:1 0,739 million KT | FNV1A_Yorikke | 0,001 x | 0,034 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,739 million KT | CRC32K1 | 0,003 x | 0,033 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,739 million KT | CRC32K2 | 0,002 x | 0,034 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,739 million KT | CRC32C1 | 0,001 x | 0,034 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,739 million KT | CRC32C2 | 0,003 x | 0,035 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 012:1 0,806 million KT | FNV1A_Yorikke | 0,001 x | 0,036 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,806 million KT | CRC32K1 | 0,002 x | 0,035 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,806 million KT | CRC32K2 | 0,004 x | 0,035 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,806 million KT | CRC32C1 | 0,002 x | 0,036 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,806 million KT | CRC32C2 | 0,003 x | 0,036 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 013:1 0,873 million KT | FNV1A_Yorikke | 0,003 x | 0,037 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,873 million KT | CRC32K1 | 0,001 x | 0,036 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,873 million KT | CRC32K2 | 0,001 x | 0,038 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,873 million KT | CRC32C1 | 0,001 x | 0,039 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,873 million KT | CRC32C2 | 0,001 x | 0,039 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 014:1 0,940 million KT | FNV1A_Yorikke | 0,001 x | 0,040 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,940 million KT | CRC32K1 | 0,001 x | 0,039 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,940 million KT | CRC32K2 | 0,001 x | 0,039 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,940 million KT | CRC32C1 | 0,002 x | 0,040 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 0,940 million KT | CRC32C2 | 0,001 x | 0,040 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 015:1 1,007 million KT | FNV1A_Yorikke | 0,001 x | 0,041 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1,007 million KT | CRC32K1 | 0,003 x | 0,039 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1,007 million KT | CRC32K2 | 0,001 x | 0,040 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1,007 million KT | CRC32C1 | 0,002 x | 0,041 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| 1,007 million KT | CRC32C2 | 0,001 x | 0,043 |x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| As far as I understand CRC32K2 should give the shortest bar both in a short and long run. //0x90022004 // Koopman: HD=6!!! for 8!!!-32738 Since Knight-Tours represent 128x8 or 1Kb and many keys fall in range 24bits to 120bits the obvious choice is 0x90022004, no? It would be nice someone to run this test for a month at least on some monster. 2012-Oct-15, Kaze For reference: www.sanmayce.com/Fastest_Hash/index.html#KT_torture3Enough, here comes subrevision C (Brutus) being 2048 times heavier than the previous one.Update: Grmbl, subrevision C is buggy - it generates non-unique a la KTs, I overlooked the overlapping - stupid. So, here comes subrevision D (Brutus+) being 64 times heavier than subrevision B. Dispersion 'BRUTUS+' test: ; Speed 'FURY' test: This torture-test uses 26bit hash table i.e. 67,108,864 slots and dumps stats at step (1<<26)-1. Brutus+ covered 1 billion Knight-Tour derivatives in 30 minutes on T7500 2200Mhz. 'BRUTUS+' source and executable are here: Knight-tour_r8dump_Yorikke_CRC8_BRUTUS+.zip 1,391,929 bytes. To enter the console double-click on 'Yorikke prompt' shortcut and from there execute RUNME.BAT, and dump for 1,024,000,000,000 1Kb UNIQUE chunks begins. ... 20 minutes later: ... and linear speed benchmark: 'FURY' source and executable are here: HASH_linearspeed_Yorikke_vs_CRC32_FURY.zip 52,681 bytes. Take heed: The "ideal" hasher would have all slots equally full with (671,088,639+1)/67,108,864 = 10 stamps, which means FNV1A_Yorikke has 33-10=23 additional keys in THE (1) slot with MAX_depthness=33, this shows how well the rest slots are saturated, not bad! It is handy to have a measure for deviation-from-the-ideal-dispersion or DFTID defined as: DFTID = (MAX_depthness-(NumberOfKeys+1)/Slots) / ((NumberOfKeys+1)/Slots) * 100%, or looking back it is interesting how DFTID behaves: 1:1 FNV1A_Yorikke: DFTID = (12-(67,108,863+1)/67,108,864) / ((67,108,863+1)/67,108,864) * 100% = 1100% CRC32K1 : DFTID = (11-(67,108,863+1)/67,108,864) / ((67,108,863+1)/67,108,864) * 100% = 1000% 10:1 FNV1A_Yorikke: DFTID = (33-(671,088,639+1)/67,108,864) / ((671,088,639+1)/67,108,864) * 100% = 230% CRC32K1 : DFTID = (31-(671,088,639+1)/67,108,864) / ((671,088,639+1)/67,108,864) * 100% = 210% 100:1 FNV1A_Yorikke: DFTID = (160-(6,710,886,399+1)/67,108,864) / ((6,710,886,399+1)/67,108,864) * 100% = 60% CRC32K1 : DFTID = (161-(6,710,886,399+1)/67,108,864) / ((6,710,886,399+1)/67,108,864) * 100% = 61% 1000:1 FNV1A_Yorikke: DFTID = (1,197-(67,108,863,999+1)/67,108,864) / ((67,108,863,999+1)/67,108,864) * 100% = 19% CRC32K1 : DFTID = (1,191-(67,108,863,999+1)/67,108,864) / ((67,108,863,999+1)/67,108,864) * 100% = 19% A console dump (up to 76 billion KT derivatives): Knight-tour_r8dump_Yorikke_CRC8_BRUTUS+_89h_later.txt The results confirm the trend from previous tortures: no wingman really exists - they ax in a pack. It would be nice we all to see the final dump, it takes 1000+h, scary huh! Now, who has got a monster machine? 2012-Oct-21, Kaze
// "No High-Speed Limit", says Tesla. // // As a youth, Tesla exhibited a peculiar trait that he considered the basis of all his invention. // He had an abnormal ability, usually involuntary, to visualize scenes, people, and things so vividly that he was sometimes unsure of what was real and what imaginary. // Strong flashes of light often accompanied these images. // Tormented, he would move his hand in front of his eyes to determine whether the objects were simply in his mind or outside. // He considered the strange ability an affliction at first, but for an inventor it could be a gift. // Tesla wrote of these phenomena and of his efforts to find an explanation for them, since no psychologist or physiologist was ever able to help him. // "The theory I have formulated," he wrote much later, is that the images were the result of a reflex action from the brain on the retina under great excitation. // They certainly were not hallucinations, for in other respects I was normal and composed. // To give an idea of my distress, suppose that I had witnessed a funeral or some such nerve-wracking spectacle. // Then, inevitably, in the stillness of the night, a vivid picture of the scene would thrust itself before my eyes and persist despite all my efforts to banish it. // Sometimes it would even remain fixed in space though I pushed my hand through it. // /Excerpts from 'Tesla: Master of Lightning', by Margaret Cheney and Robert Uth/ // // "It is not the time," said Dr. Tesla yesterday, "to go into the details of this thing. // It is founded on a principle that means great things in peace, it can be used for great things in war. // But I repeat, this is no time to talk of such things." // /New York Times, Dec. 8, 1915/ // // On the occasion of his 75th birthday, Tesla talked about new developments. // "I am working now upon two things," he said. // "First, an explanation based upon pure mathematics of certain things which Professor Einstein has also attempted to explain. // My conclusions in certain respects differ from and to that extent tend to disprove the Einstein Theory . . . // My explanations of natural phenomena are not so involved as his. // They are simpler, and when I am ready to make a full announcement it will be seen that I have proved my conclusions." // "Secondly, I am working to develop a new source of power. // When I say a new source, I mean that I have turned for power to a source which no previous scientist has turned, to the best of my knowledge. // The conception, the idea when it first burst upon me was a tremendous shock." // "It will throw light on many puzzling phenomena of the cosmos, and may prove also of great industrial value, particularly in creating a new and virtually unlimited market for steel." // Tesla said it will come from an entirely new and unsuspected source, and will be for all practical purposes constant day and night, and at all times of the year. // The apparatus for capturing the energy and transforming it will partake both of mechanical and electrical features, and will be of ideal simplicity. // Tesla has already conceived a means that will make it possible for man to transmit energy in large amounts, thousands of horsepower, from one planet to another, absolutely regardless of distance. // He considered that nothing can be more important than interplanetary communication. // It will certainly come some day, and the certitude that there are other human beings in the universe, working, suffering, struggling, like ourselves, will produce a magic effect on mankind and will form the foundation of a universal brotherhood that will last as long as humanity itself. // /Time, July 20, 1931/ // // Dr. Nikola Tesla asserted in an interview with Hugo Gernsback that speeds greater than that of light, which are considered impossible by the Einstein theory of relativity, have been produced. // Stating that the Einstein theory is erroneous in many respects, Dr. Tesla stated as early as 1900, in his patent 787,412, that the current of his radio-power transmitter passed over the surface of the earth with a speed of 292,830 miles a second. // According to the Einstein theory, the highest possible speed is 186,300 miles a second. // Tesla indicated knowledge of speeds several times greater than light, and had apparatus designed to project so-called electrons with a speed equal to twice that of light. // /The Literary Digest, Nov. 7, 1931/ // // He had discovered the so-called cosmic ray in 1896, at least five years before any other scientist took it up and twenty years before it became popular among scientists, and he is now convinced that many of the cosmic particles travel fifty times faster than light, some of them 500 times faster. // /New York World-Telegram, July 11, 1935/ // Revision 2 (main mix should be refined), written 2012-Jun-16, thanks to Maciej Adamczyk for his testbed and openness. #define ROL64(x, n) (((x) << (n)) | ((x) >> (64-(n)))) #define ROL(x, n) (((x) << (n)) | ((x) >> (32-(n)))) uint64_t FNV1A_Hash_Tesla(const char *str, size_t wrdlen) { const uint64_t PRIME = 11400714819323198393ULL; uint64_t hash64 = 2166136261U; // should be much bigger uint64_t hash64B = 2166136261U; // should be much bigger const char *p = str; for(; wrdlen >= 2*2*2*sizeof(uint32_t); wrdlen -= 2*2*2*sizeof(uint32_t), p += 2*2*2*sizeof(uint32_t)) { hash64 = (hash64 ^ (ROL64(*(unsigned long long *)(p+0),5-0)^*(unsigned long long *)(p+8))) * PRIME; hash64B = (hash64B ^ (ROL64(*(unsigned long long *)(p+8+8),5-0)^*(unsigned long long *)(p+8+8+8))) * PRIME; } hash64 = (hash64 ^ hash64B); // Some mix, the simplest is given, maybe the B-line should be rolled by 32bits before xoring. // Cases: 0,1,2,3,4,5,6,7,... 15,... 31 if (wrdlen & (2*2*sizeof(uint32_t))) { hash64 = (hash64 ^ (ROL(*(uint32_t *)(p+0),5-0)^*(uint32_t *)(p+4))) * PRIME; hash64 = (hash64 ^ (ROL(*(uint32_t *)(p+4+4),5-0)^*(uint32_t *)(p+4+4+4))) * PRIME; p += 2*2*sizeof(uint32_t); } if (wrdlen & (2*sizeof(uint32_t))) { hash64 = (hash64 ^ (ROL(*(uint32_t *)p,5-0)^*(uint32_t *)(p+4))) * PRIME; p += 2*sizeof(uint32_t); } if (wrdlen & sizeof(uint32_t)) { hash64 = (hash64 ^ *(uint32_t*)p) * PRIME; p += sizeof(uint32_t); } if (wrdlen & sizeof(uint16_t)) { hash64 = (hash64 ^ *(uint16_t*)p) * PRIME; p += sizeof(uint16_t); } if (wrdlen & 1) hash64 = (hash64 ^ *p) * PRIME; return hash64 ^ (hash64 >> 32); }
// The jester as a symbol: // The root of the word "fool" is from the Latin follis, which means "bag of wind" or that which contains air or breath. // In Tarot, "The Fool" is the first card of the Major Arcana. // The tarot depiction of the Fool includes a man, (or less often, a woman), juggling unconcernedly or otherwise distracted, with a dog (sometimes cat) at his heels. // The fool is in the act of unknowingly walking off the edge of a cliff, precipice or other high place. // Another Tarot character is Death. In the Middle Ages Death is often shown in Jester's garb because "The last laugh is reserved for death." Also, Death humbles everyone just as Jesters make fun of everyone regardless of standing. // In literature, the jester is symbolic of common sense and of honesty, notably in King Lear, the court jester is a character used for insight and advice on the part of the monarch, taking advantage of his license to mock and speak freely to dispense frank observations and highlight the folly of his monarch. // This presents a clashing irony as a "greater" man could dispense the same advice and find himself being detained in the dungeons or even executed. Only as the lowliest member of the court can the jester be the monarch's most useful adviser. // Distinction was made between fools and clowns, or country bumpkins. // The fool's status was one of privilege within a royal or noble household. // His folly could be regarded as the raving of a madman but was often deemed to be divinely inspired. // The 'natural' fool was touched by God. Much to Gonerill's annoyance, Lear's 'all-licensed' Fool enjoys a privileged status. His characteristic idiom suggests he is a 'natural' fool, not an artificial one, though his perceptiveness and wit show that he is far from being an idiot, however 'touched' he might be. // The position of the Joker playing card, as a wild card which has no fixed place in the hierarchy of King, Queen, Knave, etc. might be a remnant of the position of the court jester. // This lack of any place in the hierarchy meant Kings could trust the counsel of the jesters, as they had no vested interest in any region, estate or church. // Source: en.wikipedia.org #define ROL(x, n) (((x) << (n)) | ((x) >> (32-(n)))) UINT FNV1A_Hash_Jesteress(const char *str, SIZE_T wrdlen) { const UINT PRIME = 709607; UINT hash32 = 2166136261; const char *p = str; // Idea comes from Igor Pavlov's 7zCRC, thanks. /* for(; wrdlen && ((unsigned)(ptrdiff_t)p&3); wrdlen -= 1, p++) { hash32 = (hash32 ^ *p) * PRIME; } */ for(; wrdlen >= 2*sizeof(DWORD); wrdlen -= 2*sizeof(DWORD), p += 2*sizeof(DWORD)) { hash32 = (hash32 ^ (ROL(*(DWORD *)p,5)^*(DWORD *)(p+4))) * PRIME; } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(DWORD)) { hash32 = (hash32 ^ *(DWORD*)p) * PRIME; p += sizeof(DWORD); } if (wrdlen & sizeof(WORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; return hash32 ^ (hash32 >> 16); } // Meiyan means Beauty, Charming Eyes or most precisely: SOULFUL EYES. UINT FNV1A_Hash_Meiyan(const char *str, SIZE_T wrdlen) { const UINT PRIME = 709607; UINT hash32 = 2166136261; const char *p = str; // Idea comes from Igor Pavlov's 7zCRC, thanks. /* for(; wrdlen && ((unsigned)(ptrdiff_t)p&3); wrdlen -= 1, p++) { hash32 = (hash32 ^ *p) * PRIME; } */ for(; wrdlen >= 2*sizeof(DWORD); wrdlen -= 2*sizeof(DWORD), p += 2*sizeof(DWORD)) { hash32 = (hash32 ^ (ROL(*(DWORD *)p,5)^*(DWORD *)(p+4))) * PRIME; } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(DWORD)) { // hash32 = (hash32 ^ *(DWORD*)p) * PRIME; // p += sizeof(DWORD); hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); } if (wrdlen & sizeof(WORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; return hash32 ^ (hash32 >> 16); } // Mantis has two(three to be exact) gears: it operates as WORD based FNV1A for 1..15 lengths and as QWORD based FNV1A 16.. lengths. // I see the instant mantis' grasping-and-devouring as MONSTROUS QUADRO-BYTE-PAIRs BAITs(IN-MIX) while target secured within FIRM-GRIP of forelimbs(PRE-MIX & POST-MIX). // Word 'mantical'(Of or relating to the foretelling of events by or as if by supernatural means) comes from Greek mantikos, from the Greek word mantis, meaning "prophet, seer." // The Greeks, who made the connection between the upraised front legs of a mantis waiting for its prey and the hands of a prophet in prayer, used the name mantis to mean "the praying mantis." UINT FNV1A_Hash_Mantis(const char *str, SIZE_T wrdlen) { const UINT PRIME = 709607; UINT hash32 = 2166136261; const char *p = str; // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(DWORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); //wrdlen -= sizeof(DWORD); } if (wrdlen & sizeof(WORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); //wrdlen -= sizeof(WORD); } if (wrdlen & 1) { hash32 = (hash32 ^ *p) * PRIME; p += sizeof(char); //wrdlen -= sizeof(char); } wrdlen -= p-str; // The goal is to avoid the weak range [8, 8+2, 8+1] that is 8..10 in practice 1..15 i.e. 1..8+4+2+1, thus amending FNV1A_Meiyan and FNV1A_Jesteress. // FNV1A_Jesteress: fastest strong // FNV1A_Meiyan : faster stronger // FNV1A_Mantis : fast strongest if (wrdlen) { for(; wrdlen > 2*sizeof(DWORD); wrdlen -= 2*sizeof(DWORD), p += 2*sizeof(DWORD)) { hash32 = (hash32 ^ (ROL(*(DWORD *)p,5)^*(DWORD *)(p+4))) * PRIME; } hash32 = (hash32 ^ *(WORD*)(p+0*sizeof(WORD))) * PRIME; hash32 = (hash32 ^ *(WORD*)(p+1*sizeof(WORD))) * PRIME; hash32 = (hash32 ^ *(WORD*)(p+2*sizeof(WORD))) * PRIME; hash32 = (hash32 ^ *(WORD*)(p+3*sizeof(WORD))) * PRIME; } // Bug Fixed! return hash32 ^ (hash32 >> 16); } // "There it now stands for ever. Black on white. // I can't get away from it. Ahoy, Yorikke, ahoy, hoy, ho! // Go to hell now if you wish. What do I care? It's all the same now to me. // I am part of you now. Where you go I go, where you leave I leave, when you go to the devil I go. Married. // Vanished from the living. Damned and doomed. Of me there is not left a breath in all the vast world. // Ahoy, Yorikke! Ahoy, hoy, ho! // I am not buried in the sea, // The death ship is now part of me // So far from sunny New Orleans // So far from lovely Louisiana." // /An excerpt from 'THE DEATH SHIP - THE STORY OF AN AMERICAN SAILOR' by B.TRAVEN/ // // "Walking home to our good old Yorikke, I could not help thinking of this beautiful ship, with a crew on board that had faces as if they were seeing ghosts by day and by night. // Compared to that gilded Empress, the Yorikke was an honorable old lady with lavender sachets in her drawers. // Yorikke did not pretend to anything she was not. She lived up to her looks. Honest to her lowest ribs and to the leaks in her bilge. // Now, what is this? I find myself falling in love with that old jane. // All right, I cannot pass by you, Yorikke; I have to tell you I love you. Honest, baby, I love you. // I have six black finger-nails, and four black and green-blue nails on my toes, which you, honey, gave me when necking you. // Grate-bars have crushed some of my toes. And each finger-nail has its own painful story to tell. // My chest, my back, my arms, my legs are covered with scars of burns and scorchings. // Each scar, when it was being created, caused me pains which I shall surely never forget. // But every outcry of pain was a love-cry for you, honey. // You are no hypocrite. Your heart does not bleed tears when you do not feel heart-aches deeply and truly. // You do not dance on the water if you do not feel like being jolly and kicking chasers in the pants. // Your heart never lies. It is fine and clean like polished gold. Never mind the rags, honey dear. // When you laugh, your whole soul and all your body is laughing. // And when you weep, sweety, then you weep so that even the reefs you pass feel like weeping with you. // I never want to leave you again, honey. I mean it. Not for all the rich and elegant buckets in the world. // I love you, my gypsy of the sea!" // /An excerpt from 'THE DEATH SHIP - THE STORY OF AN AMERICAN SAILOR' by B.TRAVEN/ UINT FNV1A_Hash_Yorikke(const char *str, SIZE_T wrdlen) { const UINT PRIME = 709607; UINT hash32 = 2166136261; UINT hash32B = 2166136261; const char *p = str; for(; wrdlen >= 2*2*sizeof(DWORD); wrdlen -= 2*2*sizeof(DWORD), p += 2*2*sizeof(DWORD)) { hash32 = (hash32 ^ (_rotl(*(DWORD *)(p+0),5) ^ *(DWORD *)(p+4))) * PRIME; hash32B = (hash32B ^ (_rotl(*(DWORD *)(p+8),5) ^ *(DWORD *)(p+12))) * PRIME; } // Cases: 0,1,2,3,4,5,6,7,...,15 if (wrdlen & 2*sizeof(DWORD)) { hash32 = (hash32 ^ *(DWORD*)(p+0)) * PRIME; hash32B = (hash32B ^ *(DWORD*)(p+4)) * PRIME; p += 4*sizeof(WORD); } // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(DWORD)) { hash32 = (hash32 ^ *(WORD*)(p+0)) * PRIME; hash32B = (hash32B ^ *(WORD*)(p+2)) * PRIME; p += 2*sizeof(WORD); } if (wrdlen & sizeof(WORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); } if (wrdlen & 1) hash32 = (hash32 ^ *p) * PRIME; hash32 = (hash32 ^ _rotl(hash32B,5) ) * PRIME; return hash32 ^ (hash32 >> 16); }Note: Caution, the align fragment is intended for benchmarking only, uncommented it doesn't make sense since the hash value(stamp) varies for a given key!
Dataset #01: 2,995,394 IP addresses; File: 42,892,307 bytes IPS.TXT Dataset #02: 12,561,874 ASCII latin-letter words 1..31 chars long; File: 146,973,879 bytes Word-list_12,561,874_wikipedia-en-html.tar.wrd Dataset #03: 22,202,980 ASCII latin-letter words 1..31 chars long; File: 278,013,406 bytes Word-list_22,202,980_wikipedia-de-en-es-fr-it-nl-pt-ro-html.tar.wrd Dataset #04: 351,114 ASCII latin-letter words; File: 4,024,146 bytes Word-list_00,351,114_English_Spell-Check_Unknown-Quality.wrd Dataset #05: 584,879 ASCII cyrillic-letter words; File: 7,000,453 bytes Word-list_00,584,879_Russian_Spell-Check_Unknown-Quality.slv Dataset #06: 10,920,423 XML lines; File: 1,000,000,000 bytes enwik9 Note #1: The benchmark program is compiled as 32bit code. Note #2: The cells of fastest hasher for a given dataset are enlightened in ochre color. For reference: www.strchr.com, www.sanmayce.com/Fastest_Hash/index.html#Heavy-Hash-Hustle |
D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>dir Volume in drive D is H320_Vol5 Volume Serial Number is 0CB3-C881 Directory of D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik 11/24/2010 09:10 PM <DIR> . 11/24/2010 09:10 PM <DIR> .. 11/16/2010 03:19 PM 104,857,601 100MBSPC.TXT 05/19/2006 06:51 PM 100,000,000 enwik8 11/24/2010 05:12 AM 1,000,000,000 enwik9 11/14/2010 02:39 PM 205,535 hash.cod 11/14/2010 02:39 PM 87,040 hash.exe 5 File(s) 1,205,150,176 bytes 2 Dir(s) 5,580,771,328 bytes free D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>hash enwik9 10920423 lines read 33554432 elements in the table (25 bits) FNV1A_Jesteress: 12796491 12735390 12738506 12734338 12740729| 12734338 [ 4564891] FNV1A_Jester: 13399817 13431657 13389240 13391238 13381023| 13381023 [ 4527332] FNV1A_Smaragd: 15775870 15768467 15770752 15767430 15770635| 15767430 [ 4514617] FNV1A_Peregrine: 13590555 13579013 13552440 13550553 13548499| 13548499 [ 4525910] FNV1A_Whiz: 13783512 13784112 13786990 13782973 13782178| 13782178 [ 4527332] FNV1A_Nefertiti: 13497109 13514489 13470105 13469055 13464827| 13464827 [ 4533171] FNV-1a: 20569711 20579608 20577926 20574575 20615774| 20569711 [ 4514228] Sixtinsensitive+: 15007403 15002784 14997077 14997179 15000023| 14997077 [ 4571792] Sixtinsensitive: 15706794 15706603 15711819 15758209 15707881| 15706603 [ 4574963] Alfalfa_Rollick: 15577676 15575188 15570904 15577754 15575467| 15570904 [ 4578086] Alfalfa: 18638153 18662018 18673644 18645131 18642542| 18638153 [ 4512330] Alfalfa_HALF: 18754883 18758698 18752533 18743002 18797406| 18743002 [ 4515984] Alfalfa_DWORD: 19352724 19354880 19356240 19356354 19354432| 19352724 [ 4512167] Alfalfa_QWORD: 17289133 17297717 17332076 17291703 17288879| 17288879 [ 4511936] Bernstein: 21028376 21026491 21025604 21029136 21072189| 21025604 [ 4514664] K&R: 20989699 20992220 20994199 20990003 20988337| 20988337 [ 4514310] x17 unrolled: 18872870 18918231 18875095 18873134 18872874| 18872870 [ 4518655] x65599: 18624937 18618420 18617181 18642044 18635116| 18617181 [ 4519641] Sedgewick: 21163699 21156232 21159424 21175629 21184435| 21156232 [ 4514049] Weinberger: 37135024 37093647 37088177 37097831 37122951| 37088177 [ 6171423] Paul Larson: 18671876 18671067 18674438 18671839 18675036| 18671067 [ 4516902] Paul Hsieh: 16070251 16082464 16037019 16038871 16041813| 16037019 [ 4538732] One At Time: 23905600 23909703 23909135 23943048 23909569| 23905600 [ 4513773] lookup3: 16402018 16386640 16384334 16393605 16393154| 16384334 [ 4513053] Arash Partow: 23851696 23852640 23839370 23836697 23839104| 23836697 [ 4511414] CRC-32: 17496870 17492521 17540753 17494116 17492893| 17492521 [ 4517290] Ramakrishna: 22133216 22135220 22132811 22134040 22172708| 22132811 [ 4516115] Fletcher: 21004011 20981219 20939654 21008081 21004611| 20939654 [ 5125308] Murmur2: 13923888 13960535 13925020 13911549 13909965| 13909965 [ 4512608] Hanson: 956465603 955424747 955402397 954864622 927843875| 927843875 [ 5824709] Novak unrolled: 15915522 15919264 15915181 15924471 15949493| 15915181 [ 4792872] SBox: 14775536 14757369 14767683 14765018 14767925| 14757369 [ 4513800] MaPrime2c: 21059646 21065400 21078186 21085142 21058676| 21058676 [ 4514406] D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>hash enwik8 919074 lines read 2097152 elements in the table (21 bits) FNV1A_Jesteress: 1030401 1020443 1017947 1019561 1018426| 1017947 [ 316210] FNV1A_Jester: 1092725 1090372 1092323 1090106 1089523| 1089523 [ 315221] FNV1A_Smaragd: 1326578 1326763 1330208 1325480 1327760| 1325480 [ 315159] FNV1A_Peregrine: 1103527 1104404 1100986 1102506 1103528| 1100986 [ 315363] FNV1A_Whiz: 1124334 1122495 1122843 1123390 1123553| 1122495 [ 315221] FNV1A_Nefertiti: 1094852 1092396 1094411 1092751 1093810| 1092396 [ 315017] FNV-1a: 1795836 1797481 1796935 1797757 1797534| 1795836 [ 314801] Sixtinsensitive+: 1220547 1220651 1218662 1218927 1220401| 1218662 [ 318004] Sixtinsensitive: 1287432 1288726 1287063 1288637 1287936| 1287063 [ 317380] Alfalfa_Rollick: 1301484 1300673 1299377 1300947 1301000| 1299377 [ 315641] Alfalfa: 1604459 1607149 1606236 1608056 1605935| 1604459 [ 315210] Alfalfa_HALF: 1622073 1622394 1623213 1620523 1623093| 1620523 [ 315095] Alfalfa_DWORD: 1684441 1685844 1684890 1684675 1685705| 1684441 [ 315312] Alfalfa_QWORD: 1475064 1472458 1471855 1472598 1472887| 1471855 [ 315200] Bernstein: 1843387 1846106 1847121 1845746 1846635| 1843387 [ 314979] K&R: 1840644 1841084 1839762 1840930 1841087| 1839762 [ 314963] x17 unrolled: 1637478 1636625 1635404 1635798 1647075| 1635404 [ 315388] x65599: 1609827 1614233 1615340 1608074 1616273| 1608074 [ 315732] Sedgewick: 1857670 1853199 1850824 1850754 1851505| 1850754 [ 314968] Weinberger: 3272109 3271808 3273440 3270558 3272720| 3270558 [ 501816] Paul Larson: 1608034 1610174 1608577 1609425 1607855| 1607855 [ 315253] Paul Hsieh: 1339515 1338516 1335302 1337730 1338524| 1335302 [ 315244] One At Time: 2126343 2128321 2128216 2129375 2127739| 2126343 [ 315418] lookup3: 1383334 1383343 1383130 1382369 1380879| 1380879 [ 315370] Arash Partow: 2129161 2132835 2130727 2130904 2131800| 2129161 [ 315008] CRC-32: 1496203 1495985 1495106 1496618 1493594| 1493594 [ 314715] Ramakrishna: 1954804 1955680 1957028 1956750 1956135| 1954804 [ 315085] Fletcher: 1131394 1134632 1130678 1131672 1130345| 1130345 [ 334599] Murmur2: 1131370 1132739 1129119 1131116 1128717| 1128717 [ 314921] Hanson: 1784928 1785631 1785588 1782073 1783598| 1782073 [ 409582] Novak unrolled: 1260382 1260685 1260265 1259581 1260572| 1259581 [ 320229] SBox: 1251919 1250036 1251677 1253511 1250094| 1250036 [ 314979] MaPrime2c: 1876062 1878006 1877037 1878611 1875559| 1875559 [ 315057] D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>hash 100MBSPC.TXT 1 lines read 4 elements in the table (2 bits) FNV1A_Jesteress: 235368 235559 235747 235583 236088| 235368 [ 0] FNV1A_Jester: 328880 327218 328911 327517 326739| 326739 [ 0] FNV1A_Smaragd: 585008 584065 586051 584459 585638| 584065 [ 0] FNV1A_Peregrine: 328931 330032 328156 328700 328757| 328156 [ 0] FNV1A_Whiz: 358052 357389 357164 358866 357337| 357164 [ 0] FNV1A_Nefertiti: 323505 325051 324196 323114 325218| 323114 [ 0] FNV-1a: 1139414 1140660 1140611 1140963 1139259| 1139259 [ 0] Sixtinsensitive+: 432612 433076 432613 432793 433792| 432612 [ 0] Sixtinsensitive: 527737 528899 527695 528059 527338| 527338 [ 0] Alfalfa_Rollick: 562519 559592 561142 560121 561392| 559592 [ 0] Alfalfa: 935065 935323 934565 935332 935529| 934565 [ 0] Alfalfa_HALF: 944500 945513 944826 945264 944574| 944500 [ 0] Alfalfa_DWORD: 992610 992300 993961 993355 991459| 991459 [ 0] Alfalfa_QWORD: 682109 680178 682406 681923 680577| 680178 [ 0] Bernstein: 1165549 1159257 1161839 1163345 1164136| 1159257 [ 0] K&R: 1167227 1169360 1166520 1165034 1166657| 1165034 [ 0] x17 unrolled: 957812 956872 957821 956105 958071| 956105 [ 0] x65599: 949272 949222 949445 950485 950091| 949222 [ 0] Sedgewick: 1264650 1265982 1267661 1266680 1266231| 1264650 [ 0] Weinberger: 1931177 1931714 1926573 1926161 1931291| 1926161 [ 0] Paul Larson: 950353 948404 949283 950473 950337| 948404 [ 0] Paul Hsieh: 581208 580436 579722 580279 581338| 579722 [ 0] One At Time: 1441427 1442613 1441888 1442527 1442621| 1441427 [ 0] lookup3: 561488 563058 562636 563815 562019| 561488 [ 0] Arash Partow: 1499531 1500226 1498240 1500006 1499430| 1498240 [ 0] CRC-32: 770444 770513 769098 768966 770984| 768966 [ 0] Ramakrishna: 1324620 1321868 1318312 1322101 1324248| 1318312 [ 0] Fletcher: 307096 306563 306838 306400 308822| 306400 [ 0] Murmur2: 350486 348457 347581 347467 347656| 347467 [ 0] Hanson: 517737 517485 517222 515872 515345| 515345 [ 0] Novak unrolled: 519008 519162 520171 517508 519433| 517508 [ 0] SBox: 517483 520035 518570 519797 517625| 517483 [ 0] MaPrime2c: 1203735 1204008 1203408 1205118 1205212| 1203408 [ 0] D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>sort enwik9.txt /+75 FNV1A_Jesteress: 12796491 12735390 12738506 12734338 12740729| 12734338 [ 4564891] FNV1A_Jester: 13399817 13431657 13389240 13391238 13381023| 13381023 [ 4527332] FNV1A_Nefertiti: 13497109 13514489 13470105 13469055 13464827| 13464827 [ 4533171] FNV1A_Peregrine: 13590555 13579013 13552440 13550553 13548499| 13548499 [ 4525910] FNV1A_Whiz: 13783512 13784112 13786990 13782973 13782178| 13782178 [ 4527332] Murmur2: 13923888 13960535 13925020 13911549 13909965| 13909965 [ 4512608] SBox: 14775536 14757369 14767683 14765018 14767925| 14757369 [ 4513800] Sixtinsensitive+: 15007403 15002784 14997077 14997179 15000023| 14997077 [ 4571792] Alfalfa_Rollick: 15577676 15575188 15570904 15577754 15575467| 15570904 [ 4578086] Sixtinsensitive: 15706794 15706603 15711819 15758209 15707881| 15706603 [ 4574963] FNV1A_Smaragd: 15775870 15768467 15770752 15767430 15770635| 15767430 [ 4514617] Novak unrolled: 15915522 15919264 15915181 15924471 15949493| 15915181 [ 4792872] Paul Hsieh: 16070251 16082464 16037019 16038871 16041813| 16037019 [ 4538732] lookup3: 16402018 16386640 16384334 16393605 16393154| 16384334 [ 4513053] Alfalfa_QWORD: 17289133 17297717 17332076 17291703 17288879| 17288879 [ 4511936] CRC-32: 17496870 17492521 17540753 17494116 17492893| 17492521 [ 4517290] x65599: 18624937 18618420 18617181 18642044 18635116| 18617181 [ 4519641] Alfalfa: 18638153 18662018 18673644 18645131 18642542| 18638153 [ 4512330] Paul Larson: 18671876 18671067 18674438 18671839 18675036| 18671067 [ 4516902] Alfalfa_HALF: 18754883 18758698 18752533 18743002 18797406| 18743002 [ 4515984] x17 unrolled: 18872870 18918231 18875095 18873134 18872874| 18872870 [ 4518655] Alfalfa_DWORD: 19352724 19354880 19356240 19356354 19354432| 19352724 [ 4512167] FNV-1a: 20569711 20579608 20577926 20574575 20615774| 20569711 [ 4514228] Fletcher: 21004011 20981219 20939654 21008081 21004611| 20939654 [ 5125308] K&R: 20989699 20992220 20994199 20990003 20988337| 20988337 [ 4514310] Bernstein: 21028376 21026491 21025604 21029136 21072189| 21025604 [ 4514664] MaPrime2c: 21059646 21065400 21078186 21085142 21058676| 21058676 [ 4514406] Sedgewick: 21163699 21156232 21159424 21175629 21184435| 21156232 [ 4514049] Ramakrishna: 22133216 22135220 22132811 22134040 22172708| 22132811 [ 4516115] Arash Partow: 23851696 23852640 23839370 23836697 23839104| 23836697 [ 4511414] One At Time: 23905600 23909703 23909135 23943048 23909569| 23905600 [ 4513773] Weinberger: 37135024 37093647 37088177 37097831 37122951| 37088177 [ 6171423] Hanson: 956465603 955424747 955402397 954864622 927843875| 927843875 [ 5824709] D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>sort enwik8.txt /+75 FNV1A_Jesteress: 1030401 1020443 1017947 1019561 1018426| 1017947 [ 316210] FNV1A_Jester: 1092725 1090372 1092323 1090106 1089523| 1089523 [ 315221] FNV1A_Nefertiti: 1094852 1092396 1094411 1092751 1093810| 1092396 [ 315017] FNV1A_Peregrine: 1103527 1104404 1100986 1102506 1103528| 1100986 [ 315363] FNV1A_Whiz: 1124334 1122495 1122843 1123390 1123553| 1122495 [ 315221] Murmur2: 1131370 1132739 1129119 1131116 1128717| 1128717 [ 314921] Fletcher: 1131394 1134632 1130678 1131672 1130345| 1130345 [ 334599] Sixtinsensitive+: 1220547 1220651 1218662 1218927 1220401| 1218662 [ 318004] SBox: 1251919 1250036 1251677 1253511 1250094| 1250036 [ 314979] Novak unrolled: 1260382 1260685 1260265 1259581 1260572| 1259581 [ 320229] Sixtinsensitive: 1287432 1288726 1287063 1288637 1287936| 1287063 [ 317380] Alfalfa_Rollick: 1301484 1300673 1299377 1300947 1301000| 1299377 [ 315641] FNV1A_Smaragd: 1326578 1326763 1330208 1325480 1327760| 1325480 [ 315159] Paul Hsieh: 1339515 1338516 1335302 1337730 1338524| 1335302 [ 315244] lookup3: 1383334 1383343 1383130 1382369 1380879| 1380879 [ 315370] Alfalfa_QWORD: 1475064 1472458 1471855 1472598 1472887| 1471855 [ 315200] CRC-32: 1496203 1495985 1495106 1496618 1493594| 1493594 [ 314715] Alfalfa: 1604459 1607149 1606236 1608056 1605935| 1604459 [ 315210] Paul Larson: 1608034 1610174 1608577 1609425 1607855| 1607855 [ 315253] x65599: 1609827 1614233 1615340 1608074 1616273| 1608074 [ 315732] Alfalfa_HALF: 1622073 1622394 1623213 1620523 1623093| 1620523 [ 315095] x17 unrolled: 1637478 1636625 1635404 1635798 1647075| 1635404 [ 315388] Alfalfa_DWORD: 1684441 1685844 1684890 1684675 1685705| 1684441 [ 315312] Hanson: 1784928 1785631 1785588 1782073 1783598| 1782073 [ 409582] FNV-1a: 1795836 1797481 1796935 1797757 1797534| 1795836 [ 314801] K&R: 1840644 1841084 1839762 1840930 1841087| 1839762 [ 314963] Bernstein: 1843387 1846106 1847121 1845746 1846635| 1843387 [ 314979] Sedgewick: 1857670 1853199 1850824 1850754 1851505| 1850754 [ 314968] MaPrime2c: 1876062 1878006 1877037 1878611 1875559| 1875559 [ 315057] Ramakrishna: 1954804 1955680 1957028 1956750 1956135| 1954804 [ 315085] One At Time: 2126343 2128321 2128216 2129375 2127739| 2126343 [ 315418] Arash Partow: 2129161 2132835 2130727 2130904 2131800| 2129161 [ 315008] Weinberger: 3272109 3271808 3273440 3270558 3272720| 3270558 [ 501816] D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik>sort 100MB_at-once.txt /+75 FNV1A_Jesteress: 235368 235559 235747 235583 236088| 235368 [ 0] Fletcher: 307096 306563 306838 306400 308822| 306400 [ 0] FNV1A_Nefertiti: 323505 325051 324196 323114 325218| 323114 [ 0] FNV1A_Jester: 328880 327218 328911 327517 326739| 326739 [ 0] FNV1A_Peregrine: 328931 330032 328156 328700 328757| 328156 [ 0] Murmur2: 350486 348457 347581 347467 347656| 347467 [ 0] FNV1A_Whiz: 358052 357389 357164 358866 357337| 357164 [ 0] Sixtinsensitive+: 432612 433076 432613 432793 433792| 432612 [ 0] Hanson: 517737 517485 517222 515872 515345| 515345 [ 0] SBox: 517483 520035 518570 519797 517625| 517483 [ 0] Novak unrolled: 519008 519162 520171 517508 519433| 517508 [ 0] Sixtinsensitive: 527737 528899 527695 528059 527338| 527338 [ 0] Alfalfa_Rollick: 562519 559592 561142 560121 561392| 559592 [ 0] lookup3: 561488 563058 562636 563815 562019| 561488 [ 0] Paul Hsieh: 581208 580436 579722 580279 581338| 579722 [ 0] FNV1A_Smaragd: 585008 584065 586051 584459 585638| 584065 [ 0] Alfalfa_QWORD: 682109 680178 682406 681923 680577| 680178 [ 0] CRC-32: 770444 770513 769098 768966 770984| 768966 [ 0] Alfalfa: 935065 935323 934565 935332 935529| 934565 [ 0] Alfalfa_HALF: 944500 945513 944826 945264 944574| 944500 [ 0] Paul Larson: 950353 948404 949283 950473 950337| 948404 [ 0] x65599: 949272 949222 949445 950485 950091| 949222 [ 0] x17 unrolled: 957812 956872 957821 956105 958071| 956105 [ 0] Alfalfa_DWORD: 992610 992300 993961 993355 991459| 991459 [ 0] FNV-1a: 1139414 1140660 1140611 1140963 1139259| 1139259 [ 0] Bernstein: 1165549 1159257 1161839 1163345 1164136| 1159257 [ 0] K&R: 1167227 1169360 1166520 1165034 1166657| 1165034 [ 0] MaPrime2c: 1203735 1204008 1203408 1205118 1205212| 1203408 [ 0] Sedgewick: 1264650 1265982 1267661 1266680 1266231| 1264650 [ 0] Ramakrishna: 1324620 1321868 1318312 1322101 1324248| 1318312 [ 0] One At Time: 1441427 1442613 1441888 1442527 1442621| 1441427 [ 0] Arash Partow: 1499531 1500226 1498240 1500006 1499430| 1498240 [ 0] Weinberger: 1931177 1931714 1926573 1926161 1931291| 1926161 [ 0] D:\_KAZE_new-stuff\_KAZE_hash_test_r2_enwik> In order to estimate a hash function performance(taking into account speed and collisions) here comes my dummy formula for hash quality estimation(measured in gems, Greater thE Mightier): Hash_Performance = (1<<30)/(('thousands of clock cycles'/1,000,000)*('number of collisions'+1))gems Let's see how mighty(precious) are some top-gun functions in this testbed according to the formula above: [Test on enwik9:] FNV1A_Jesteress: 1073741824/((12734338/1000000)*(4564891+1)) = 18gems !Fastest! and !Mightiest! FNV1A_Jester: 1073741824/((13381023/1000000)*(4527332+1)) = 17gems FNV1A_Nefertiti: 1073741824/((13464827/1000000)*(4533171+1)) = 17gems FNV1A_Peregrine: 1073741824/((13548499/1000000)*(4525910+1)) = 17gems FNV1A_Whiz: 1073741824/((13782178/1000000)*(4527332+1)) = 17gems Murmur2: 1073741824/((13909965/1000000)*(4512608+1)) = 17gems SBox: 1073741824/((14757369/1000000)*(4513800+1)) = 16gems For this dataset FNV1A_Jesteress is 9.23% faster, 8.01% mightier and 1.15% less precise than the closest rival: Murmur2. (13909965-12734338)/12734338*100%=9.23% (18.47-17.10)/17.10*100%=8.01% (4564891-4512608)/4512608*100%=1.15% [Test on enwik8:] FNV1A_Jesteress: 1073741824/((1017947/1000000)*(316210+1)) = 3335gems !Fastest! and !Mightiest! FNV1A_Jester: 1073741824/((1089523/1000000)*(315221+1)) = 3126gems FNV1A_Nefertiti: 1073741824/((1092396/1000000)*(315017+1)) = 3120gems FNV1A_Peregrine: 1073741824/((1100986/1000000)*(315363+1)) = 3092gems FNV1A_Whiz: 1073741824/((1122495/1000000)*(315221+1)) = 3034gems Murmur2: 1073741824/((1128717/1000000)*(314921+1)) = 3020gems Fletcher: 1073741824/((1130345/1000000)*(334599+1)) = 2838gems For this dataset FNV1A_Jesteress is 10.88% faster, 10.42% mightier and 0.40% less precise than the closest rival: Murmur2. (1128717-1017947)/1017947*100%=10.88% (3335.78-3020.72)/3020.72*100%=10.42% (316210-314921)/314921*100%=0.40% [Test on 100MB_at-once:] FNV1A_Jesteress: 1073741824/((235368/1000000)*(0+1)) = 4561970293gems !Fastest! and !Mightiest! Fletcher: 1073741824/((306400/1000000)*(0+1)) = 3504379321gems FNV1A_Nefertiti: 1073741824/((323114/1000000)*(0+1)) = 3323105232gems FNV1A_Jester: 1073741824/((326739/1000000)*(0+1)) = 3286237100gems FNV1A_Peregrine: 1073741824/((328156/1000000)*(0+1)) = 3272046904gems Murmur2: 1073741824/((347467/1000000)*(0+1)) = 3090197987gems FNV1A_Whiz: 1073741824/((357164/1000000)*(0+1)) = 3006299134gems For this dataset FNV1A_Jesteress is 30.17% faster, 30.17% mightier and 0.00% less precise than the closest rival: Fletcher. (306400-235368)/235368*100%=30.17% (4561970293.32-3504379321.14)/3504379321.14*100%=30.17% I would like someone to reveal a hash mightier than FNV1A_Jesteress on alpha strings up to 960chars. My interests lie in word/phrase hashing area, despite this fact I want to see the bad side(if any) of FNV1A_Jesteress, so feel free to suggest scenarios where she would perform badly. Of course the obvious weakness, when majority of keys are 8chars 9chars 10chars then mixing suffers, must be remembered. FNV1A_Mantis doesn't have this drawback.
I knew where the weakness(regarding collisions) was, it is no more i.e. it is amended with arrival of FNV1A_Mantis the strongest of all my FNV1A variants. Now FNV1A_Meiyan is between FNV1A_Jesteress and FNV1A_Mantis. Personally my favorite(because my way of using her differs a lot from that of other people) is still FNV1A_Jesteress despite her apparent collision drawback in interval 8chars to 10chars: due to either one BYTE(8+1) or WORD(8+2) mix. I tried(unseriously) to fix it in FNV1A_Meiyan, so here comes FNV1A_Mantis(0056f-004b0=191bytes fattest so far): C source: // Mantis has two(three to be exact) gears: it operates as WORD based FNV1A for 1..15 lengths and as QWORD based FNV1A 16.. lengths. // I see the instant mantis' grasping-and-devouring as MONSTROUS QUADRO-BYTE-PAIRs BAITs(IN-MIX) while target secured within FIRM-GRIP of forelimbs(PRE-MIX & POST-MIX). // Word 'mantical'(Of or relating to the foretelling of events by or as if by supernatural means) comes from Greek mantikos, from the Greek word mantis, meaning "prophet, seer." // The Greeks, who made the connection between the upraised front legs of a mantis waiting for its prey and the hands of a prophet in prayer, used the name mantis to mean "the praying mantis." #define ROL(x, n) (((x) << (n)) | ((x) >> (32-(n)))) UINT FNV1A_Hash_Mantis(const char *str, SIZE_T wrdlen) { const UINT PRIME = 709607; UINT hash32 = 2166136261; const char *p = str; // Cases: 0,1,2,3,4,5,6,7 if (wrdlen & sizeof(DWORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); //wrdlen -= sizeof(DWORD); } if (wrdlen & sizeof(WORD)) { hash32 = (hash32 ^ *(WORD*)p) * PRIME; p += sizeof(WORD); //wrdlen -= sizeof(WORD); } if (wrdlen & 1) { hash32 = (hash32 ^ *p) * PRIME; p += sizeof(char); //wrdlen -= sizeof(char); } wrdlen -= p-str; // The goal is to avoid the weak range [8, 8+2, 8+1] that is 8..10 in practice 1..15 i.e. 1..8+4+2+1, thus amending FNV1A_Meiyan and FNV1A_Jesteress. // FNV1A_Jesteress: fastest strong // FNV1A_Meiyan : faster stronger // FNV1A_Mantis : fast strongest for(; wrdlen > 2*sizeof(DWORD); wrdlen -= 2*sizeof(DWORD), p += 2*sizeof(DWORD)) { hash32 = (hash32 ^ (ROL(*(DWORD *)p,5)^*(DWORD *)(p+4))) * PRIME; } hash32 = (hash32 ^ *(WORD*)(p+0*sizeof(WORD))) * PRIME; hash32 = (hash32 ^ *(WORD*)(p+1*sizeof(WORD))) * PRIME; hash32 = (hash32 ^ *(WORD*)(p+2*sizeof(WORD))) * PRIME; hash32 = (hash32 ^ *(WORD*)(p+3*sizeof(WORD))) * PRIME; return hash32 ^ (hash32 >> 16); } C&assembly source: ?FNV1A_Hash_Mantis@@YAIPBDK@Z PROC ; FNV1A_Hash_Mantis ; 1072 : { 004b0 55 push ebp 004b1 8b ec mov ebp, esp 004b3 53 push ebx ; 1073 : const UINT PRIME = 709607; ; 1074 : UINT hash32 = 2166136261; ; 1075 : const char *p = str; ; 1076 : // Cases: 0,1,2,3,4,5,6,7 ; 1077 : if (wrdlen & sizeof(DWORD)) { 004b4 8b 5d 0c mov ebx, DWORD PTR _wrdlen$[ebp] 004b7 56 push esi 004b8 8b 75 08 mov esi, DWORD PTR _str$[ebp] 004bb b9 c5 9d 1c 81 mov ecx, -2128831035 ; 811c9dc5H 004c0 8b c6 mov eax, esi 004c2 f6 c3 04 test bl, 4 004c5 74 1d je SHORT $LN12@FNV1A_Hash ; 1078 : hash32 = (hash32 ^ *(WORD*)p) * PRIME; 004c7 0f b7 16 movzx edx, WORD PTR [esi] 004ca 33 d1 xor edx, ecx ; 1079 : p += sizeof(WORD); ; 1080 : hash32 = (hash32 ^ *(WORD*)p) * PRIME; 004cc 0f b7 4e 02 movzx ecx, WORD PTR [esi+2] 004d0 69 d2 e7 d3 0a 00 imul edx, 709607 ; 000ad3e7H 004d6 8d 46 02 lea eax, DWORD PTR [esi+2] 004d9 33 ca xor ecx, edx 004db 69 c9 e7 d3 0a 00 imul ecx, 709607 ; 000ad3e7H ; 1081 : p += sizeof(WORD); 004e1 83 c0 02 add eax, 2 $LN12@FNV1A_Hash: ; 1082 : //wrdlen -= sizeof(DWORD); ; 1083 : } ; 1084 : if (wrdlen & sizeof(WORD)) { 004e4 f6 c3 02 test bl, 2 004e7 74 0e je SHORT $LN6@FNV1A_Hash ; 1085 : hash32 = (hash32 ^ *(WORD*)p) * PRIME; 004e9 0f b7 10 movzx edx, WORD PTR [eax] 004ec 33 ca xor ecx, edx 004ee 69 c9 e7 d3 0a 00 imul ecx, 709607 ; 000ad3e7H ; 1086 : p += sizeof(WORD); 004f4 83 c0 02 add eax, 2 $LN6@FNV1A_Hash: ; 1087 : //wrdlen -= sizeof(WORD); ; 1088 : } ; 1089 : if (wrdlen & 1) { 004f7 f6 c3 01 test bl, 1 004fa 74 0c je SHORT $LN13@FNV1A_Hash ; 1090 : hash32 = (hash32 ^ *p) * PRIME; 004fc 0f be 10 movsx edx, BYTE PTR [eax] 004ff 33 ca xor ecx, edx 00501 69 c9 e7 d3 0a 00 imul ecx, 709607 ; 000ad3e7H ; 1091 : p += sizeof(char); 00507 40 inc eax $LN13@FNV1A_Hash: ; 1092 : //wrdlen -= sizeof(char); ; 1093 : } ; 1094 : wrdlen -= p-str; 00508 2b f0 sub esi, eax 0050a 03 de add ebx, esi ; 1095 : // The goal is to avoid the weak range [8, 8+2, 8+1] that is 8..10 in practice 1..15 i.e. 1..8+4+2+1, thus amending FNV1A_Meiyan and FNV1A_Jesteress. ; 1096 : // FNV1A_Jesteress: fastest strong ; 1097 : // FNV1A_Meiyan : faster stronger ; 1098 : // FNV1A_Mantis : fast strongest ; 1099 : if (wrdlen) { 0050c 74 57 je SHORT $LN4@FNV1A_Hash ; 1100 : for(; wrdlen > 2*sizeof(DWORD); wrdlen -= 2*sizeof(DWORD), p += 2*sizeof(DWORD)) { 0050e 83 fb 08 cmp ebx, 8 00511 76 23 jbe SHORT $LN1@FNV1A_Hash 00513 8d 53 f7 lea edx, DWORD PTR [ebx-9] 00516 c1 ea 03 shr edx, 3 00519 42 inc edx 0051a 8d 9b 00 00 00 00 npad 6 $LL3@FNV1A_Hash: ; 1101 : hash32 = (hash32 ^ (ROL(*(DWORD *)p,5)^*(DWORD *)(p+4))) * PRIME; 00520 8b 30 mov esi, DWORD PTR [eax] 00522 c1 c6 05 rol esi, 5 00525 33 70 04 xor esi, DWORD PTR [eax+4] 00528 83 c0 08 add eax, 8 0052b 33 ce xor ecx, esi 0052d 69 c9 e7 d3 0a 00 imul ecx, 709607 ; 000ad3e7H 00533 4a dec edx 00534 75 ea jne SHORT $LL3@FNV1A_Hash $LN1@FNV1A_Hash: ; 1102 : } ; 1103 : hash32 = (hash32 ^ *(WORD*)(p+0*sizeof(WORD))) * PRIME; ; 1104 : hash32 = (hash32 ^ *(WORD*)(p+1*sizeof(WORD))) * PRIME; ; 1105 : hash32 = (hash32 ^ *(WORD*)(p+2*sizeof(WORD))) * PRIME; ; 1106 : hash32 = (hash32 ^ *(WORD*)(p+3*sizeof(WORD))) * PRIME; 00536 0f b7 10 movzx edx, WORD PTR [eax] 00539 33 d1 xor edx, ecx 0053b 0f b7 48 02 movzx ecx, WORD PTR [eax+2] 0053f 69 d2 e7 d3 0a 00 imul edx, 709607 ; 000ad3e7H 00545 33 d1 xor edx, ecx 00547 0f b7 48 04 movzx ecx, WORD PTR [eax+4] 0054b 69 d2 e7 d3 0a 00 imul edx, 709607 ; 000ad3e7H 00551 0f b7 40 06 movzx eax, WORD PTR [eax+6] 00555 33 ca xor ecx, edx 00557 69 c9 e7 d3 0a 00 imul ecx, 709607 ; 000ad3e7H 0055d 33 c8 xor ecx, eax 0055f 69 c9 e7 d3 0a 00 imul ecx, 709607 ; 000ad3e7H $LN4@FNV1A_Hash: ; 1107 : } ; 1108 : return hash32 ^ (hash32 >> 16); 00565 8b c1 mov eax, ecx 00567 c1 e8 10 shr eax, 16 ; 00000010H 0056a 5e pop esi 0056b 33 c1 xor eax, ecx 0056d 5b pop ebx ; 1109 : } 0056e 5d pop ebp 0056f c3 ret 0 ?FNV1A_Hash_Mantis@@YAIPBDK@Z ENDP ; FNV1A_Hash_Mantis Ok, now some heavy hash hustle with fixed-length-ASCII-strings, in my opinion this is the most relevant and close to practice(here: the fundamental match finding) benchmark. At link below this summer I approached in a dummy way LZ match finding by counting the repetitions(in rich of English text OSHO.TXT) through Building-Blocks_DUMPER: http://encode.ru/threads/1134-Dummy-Static-Windowless-Dictionary-Text-Decompressor?p=22653&viewfull=1#post22653 Length of Building-Blocks / Quantity of ALL(with overlapping) Building-Blocks / Quantity of DISTINCT(with overlapping) Building-Blocks / Quantity of REPETITIVE(with overlapping) Building-Blocks 3 206908949-3+1 46486 206862461 4 206908949-4+1 248019 206660927 5 206908949-5+1 855682 206053263 6 206908949-6+1 2236138 204672806 7 206908949-7+1 4803152 202105791 8 206908949-8+1 8956496 197952446 9 206908949-9+1 15006172 191902769 10 206908949-10+1 22992127 183916813 11 206908949-11+1 32707519 174201420 12 206908949-12+1 43802365 163106573 D:\_KAZE_new-stuff\r3>dir Volume in drive D is H320_Vol5 Volume Serial Number is 0CB3-C881 Directory of D:\_KAZE_new-stuff\r3 12/02/2010 08:15 AM <DIR> . 12/02/2010 08:15 AM <DIR> .. 12/02/2010 08:15 AM 45,501 Building-Blocks_DUMPER.c 12/02/2010 08:15 AM 79,360 Building-Blocks_DUMPER.exe 12/02/2010 08:15 AM 223,954 hash.cod 12/02/2010 08:15 AM 56,186 hash.cpp 12/02/2010 08:15 AM 81,920 hash.exe 12/02/2010 08:15 AM 206,908,949 OSHO.TXT 12/02/2010 08:15 AM 394 RUNME.BAT 7 File(s) 207,396,264 bytes 2 Dir(s) 6,020,390,912 bytes free D:\_KAZE_new-stuff\r3>Building-Blocks_DUMPER.exe Building-Blocks_DUMPER rev.2, written by Kaze. Note: This revision converts CR to $ and LF to # in order to have lines patternlen long ending with LF. Sorting 206908947 Pointers to Building-Blocks 3 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB003.txt ... 3|206908949-3+1|46486|206862461 Sorting 206908946 Pointers to Building-Blocks 4 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB004.txt ... 4|206908949-4+1|248019|206660927 Sorting 206908945 Pointers to Building-Blocks 5 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB005.txt ... 5|206908949-5+1|855682|206053263 Sorting 206908944 Pointers to Building-Blocks 6 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB006.txt ... 6|206908949-6+1|2236138|204672806 Sorting 206908943 Pointers to Building-Blocks 7 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB007.txt ... 7|206908949-7+1|4803152|202105791 Sorting 206908942 Pointers to Building-Blocks 8 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB008.txt ... 8|206908949-8+1|8956496|197952446 Sorting 206908941 Pointers to Building-Blocks 9 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB009.txt ... 9|206908949-9+1|15006172|191902769 Sorting 206908940 Pointers to Building-Blocks 10 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB010.txt ... 10|206908949-10+1|22992127|183916813 Sorting 206908939 Pointers to Building-Blocks 11 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB011.txt ... 11|206908949-11+1|32707519|174201420 Sorting 206908938 Pointers to Building-Blocks 12 chars in size ... Allocated memory for pointers-to-words in MB: 790 Writing Sorted Building-Blocks to BB012.txt ... 12|206908949-12+1|43802365|163106573 Building-Blocks_DUMPER total time: 2658329 clocks D:\_KAZE_new-stuff\r3>dir Volume in drive D is H320_Vol5 Volume Serial Number is 0CB3-C881 Directory of D:\_KAZE_new-stuff\r3 12/02/2010 08:55 AM <DIR> . 12/02/2010 08:55 AM <DIR> .. 12/02/2010 08:18 AM 185,944 BB003.txt 12/02/2010 08:22 AM 1,240,095 BB004.txt 12/02/2010 08:25 AM 5,134,092 BB005.txt 12/02/2010 08:29 AM 15,652,966 BB006.txt 12/02/2010 08:33 AM 38,425,216 BB007.txt 12/02/2010 08:37 AM 80,608,464 BB008.txt 12/02/2010 08:41 AM 150,061,720 BB009.txt 12/02/2010 08:46 AM 252,913,397 BB010.txt 12/02/2010 08:52 AM 392,490,228 BB011.txt 12/02/2010 08:59 AM 569,430,745 BB012.txt 12/02/2010 08:15 AM 45,501 Building-Blocks_DUMPER.c 12/02/2010 08:15 AM 79,360 Building-Blocks_DUMPER.exe 12/02/2010 08:15 AM 223,954 hash.cod 12/02/2010 08:15 AM 56,186 hash.cpp 12/02/2010 08:15 AM 81,920 hash.exe 12/02/2010 08:15 AM 206,908,949 OSHO.TXT 12/02/2010 08:15 AM 394 RUNME.BAT 17 File(s) 1,713,539,131 bytes 2 Dir(s) 4,511,014,912 bytes free D:\_KAZE_new-stuff\r3>dir Volume in drive D is H320_Vol5 Volume Serial Number is 0CB3-C881 Directory of D:\_KAZE_new-stuff\r3 12/02/2010 09:08 AM <DIR> . 12/02/2010 09:08 AM <DIR> .. 12/02/2010 08:18 AM 185,944 BB003.txt 12/02/2010 08:22 AM 1,240,095 BB004.txt 12/02/2010 08:25 AM 5,134,092 BB005.txt 12/02/2010 08:29 AM 15,652,966 BB006.txt 12/02/2010 08:33 AM 38,425,216 BB007.txt 12/02/2010 08:37 AM 80,608,464 BB008.txt 12/02/2010 08:41 AM 150,061,720 BB009.txt 12/02/2010 08:46 AM 252,913,397 BB010.txt 12/02/2010 08:52 AM 392,490,228 BB011.txt 12/02/2010 08:59 AM 569,430,745 BB012.txt 12/02/2010 08:15 AM 45,501 Building-Blocks_DUMPER.c 12/02/2010 08:15 AM 79,360 Building-Blocks_DUMPER.exe 12/02/2010 08:15 AM 223,954 hash.cod 12/02/2010 08:15 AM 56,186 hash.cpp 12/02/2010 08:15 AM 81,920 hash.exe 11/01/2009 12:00 AM 202,688,536 IP-COUNTRY-REGION-CITY.CSV 12/02/2010 09:07 AM 1,636 LONG2DOT.BAS 12/02/2010 09:07 AM 43,110 LONG2DOT.EXE 12/02/2010 08:15 AM 206,908,949 OSHO.TXT 12/02/2010 08:15 AM 394 RUNME.BAT 20 File(s) 1,916,272,413 bytes 2 Dir(s) 4,510,916,608 bytes free D:\_KAZE_new-stuff\r3>LONG2DOT.EXE IP-COU~1.csv IPs.TXT LONG2DOT.EXE, revision 001. Written by Svalqyatchx 'Kaze'. Example: liner ip.csv ip.txt Input file: IP-COU~1.CSV Output file: IPS.TXT Lines: 2995394 LONG2DOT: Done. D:\_KA45F~1\r3>type IP-COUNTRY-REGION-CITY.CSV|more "0","33554431","-","-","-","-" "33554432","50331647","UK","UNITED KINGDOM","-","-" "50331648","50331903","US","UNITED STATES","NEW JERSEY","SUMMIT" "50331904","50332159","US","UNITED STATES","NEW YORK","MONROE" "50332160","50332671","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50332672","50332927","US","UNITED STATES","NEW JERSEY","LEBANON" "50332928","50333695","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50333696","50333951","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50333952","50334719","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50334720","50334975","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50334976","50335487","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50335488","50335743","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50335744","50358271","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50358272","50358527","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50358528","50361855","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50361856","50362111","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50362112","50390527","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50390528","50390783","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50390784","50397183","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50397184","50397951","US","UNITED STATES","NEW JERSEY","SUMMIT" "50397952","50398207","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50398208","50398463","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50398464","50398719","US","UNITED STATES","NEW JERSEY","TRENTON" "50398720","50398975","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50398976","50399231","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50399232","50399487","US","UNITED STATES","NEW JERSEY","MEDFORD" "50399488","50399743","US","UNITED STATES","NEW JERSEY","SUMMIT" "50399744","50399999","US","UNITED STATES","NEW JERSEY","TRENTON" "50400000","50400255","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50400256","50400511","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50400512","50400767","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50400768","50401023","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50401024","50401279","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50401280","50401535","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50401536","50402303","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50402304","50402559","US","UNITED STATES","NEW YORK","NEW YORK" "50402560","50405631","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50405632","50405887","US","UNITED STATES","NEW JERSEY","TRENTON" "50405888","50411263","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50411264","50411519","US","UNITED STATES","NEW JERSEY","TRENTON" "50411520","50414079","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50414080","50414335","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50414336","50432255","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50432256","50432511","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50432512","50448639","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50448640","50448895","US","UNITED STATES","NEW JERSEY","MEDFORD" "50448896","50457087","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50457088","50457343","US","UNITED STATES","MISSOURI","CHILLICOTHE" "50457344","50463487","US","UNITED STATES","CONNECTICUT","FAIRFIELD" "50463488","50463743","US","UNITED STATES","NEW JERSEY","LEBANON" "50463744","50490367","US","UNITED STATES","CONNECTICUT","FAIRFIELD" ^C D:\_KA45F~1\r3>type IPS.TXT|more 0.0.0.0 0.0.0.2 0.0.0.3 0.1.0.3 0.2.0.3 0.4.0.3 0.5.0.3 0.8.0.3 0.9.0.3 0.12.0.3 0.13.0.3 0.15.0.3 0.16.0.3 0.104.0.3 0.105.0.3 0.118.0.3 0.119.0.3 0.230.0.3 0.231.0.3 0.0.1.3 0.3.1.3 0.4.1.3 0.5.1.3 0.6.1.3 0.7.1.3 0.8.1.3 0.9.1.3 0.10.1.3 0.11.1.3 0.12.1.3 0.13.1.3 0.14.1.3 0.15.1.3 0.16.1.3 0.17.1.3 0.20.1.3 0.21.1.3 0.33.1.3 0.34.1.3 0.55.1.3 0.56.1.3 0.66.1.3 0.67.1.3 0.137.1.3 0.138.1.3 0.201.1.3 0.202.1.3 0.234.1.3 0.235.1.3 0.3.2.3 0.4.2.3 ^C RUNME.BAT: hash bb003.txt /s26 >RESULTS\BB.TXT hash bb004.txt /s26 >>RESULTS\BB.TXT hash bb005.txt /s26 >>RESULTS\BB.TXT hash bb006.txt /s26 >>RESULTS\BB.TXT hash bb007.txt /s26 >>RESULTS\BB.TXT hash bb008.txt /s26 >>RESULTS\BB.TXT hash bb009.txt /s26 >>RESULTS\BB.TXT hash bb010.txt /s26 >>RESULTS\BB.TXT hash bb011.txt /s26 >>RESULTS\BB.TXT hash bb012.txt /s26 >>RESULTS\BB.TXT hash IPS.txt >RESULTS\IP.TXT D:\_KAZE_new-stuff\_KAZE_hash_test_r3>dir Volume in drive D is H320_Vol5 Volume Serial Number is 0CB3-C881 Directory of D:\_KAZE_new-stuff\_KAZE_hash_test_r3 12/03/2010 07:30 AM <DIR> . 12/03/2010 07:30 AM <DIR> .. 12/03/2010 07:30 AM 185,944 BB003.txt 12/03/2010 07:30 AM 1,240,095 BB004.txt 12/03/2010 07:30 AM 5,134,092 BB005.txt 12/03/2010 07:30 AM 15,652,966 BB006.txt 12/03/2010 07:30 AM 38,425,216 BB007.txt 12/03/2010 07:30 AM 80,608,464 BB008.txt 12/03/2010 07:30 AM 150,061,720 BB009.txt 12/03/2010 07:30 AM 252,913,397 BB010.txt 12/03/2010 07:30 AM 392,490,228 BB011.txt 12/03/2010 07:30 AM 569,430,745 BB012.txt 12/03/2010 07:30 AM 45,501 Building-Blocks_DUMPER.c 12/03/2010 07:30 AM 79,360 Building-Blocks_DUMPER.exe 12/03/2010 07:30 AM 224,012 hash.cod 12/03/2010 07:30 AM 56,206 hash.cpp 12/03/2010 07:30 AM 81,920 hash.exe 12/03/2010 07:30 AM 42,892,307 IPS.TXT 12/03/2010 07:30 AM 1,636 LONG2DOT.BAS 12/03/2010 07:30 AM 43,110 LONG2DOT.EXE 12/03/2010 07:30 AM 421 RUNME.BAT 19 File(s) 1,549,567,340 bytes 2 Dir(s) 4,638,175,232 bytes free D:\_KAZE_new-stuff\_KAZE_hash_test_r3\RESULTS_Intel Merom>type IP.TXT 2995394 lines read 8388608 elements in the table (23 bits) FNV1A_Mantis: 2439165 2413719 2414841 2414998 2416002| 2413719 [ 481137] FNV1A_Meiyan: 2296414 2300139 2301282 2299939 2299010| 2296414 [ 593723] FNV1A_Jesteress: 2337215 2338536 2334935 2337328 2335872| 2334935 [ 691369] FNV1A_Jester: 2539331 2535789 2535562 2532374 2534922| 2532374 [ 689339] FNV1A_Smaragd: 2453000 2454084 2453214 2454775 2451504| 2451504 [ 480914] FNV1A_Peregrine: 2553288 2556279 2555456 2556945 2557099| 2553288 [ 546915] FNV1A_Whiz: 2646805 2644995 2647263 2646881 2649505| 2644995 [ 689339] FNV1A_Nefertiti: 2754790 2756802 2755491 2757924 2757038| 2754790 [ 763451] FNV-1a: 2607209 2611915 2607301 2610054 2608483| 2607209 [ 477067] Sixtinsensitive+: 2786654 2785338 2785425 2785386 2786807| 2785338 [ 716367] Sixtinsensitive: 2698691 2697351 2699103 2693935 2698100| 2693935 [ 582793] Alfalfa_Rollick: 2466409 2464578 2465997 2464491 2464852| 2464491 [ 604098] Alfalfa: 2518510 2521429 2520234 2517619 2521594| 2517619 [ 475434] Alfalfa_HALF: 2538222 2534795 2536658 2535095 2536978| 2534795 [ 480071] Alfalfa_DWORD: 2541248 2540645 2543012 2538306 2541343| 2538306 [ 475434] Alfalfa_QWORD: 2658937 2658153 2659758 2657875 2659898| 2657875 [ 475434] Bernstein: 2621301 2620985 2622841 2620031 2620976| 2620031 [ 474048] K&R: 2489162 2488521 2489630 2489942 2490298| 2488521 [ 474011] x17 unrolled: 2567678 2564855 2568451 2566891 2567346| 2564855 [ 475528] x65599: 2867932 2870757 2869829 2869513 2868145| 2867932 [ 654463] Sedgewick: 2583863 2585120 2583433 2584854 2584023| 2583433 [ 477931] Weinberger: 2614014 2616212 2612522 2614666 2617134| 2612522 [ 1159267] Paul Larson: 2581956 2580010 2583331 2584757 2581186| 2580010 [ 475575] Paul Hsieh: 2637094 2637400 2636600 2638300 2636809| 2636600 [ 543835] One At Time: 2793532 2794126 2792895 2795095 2792770| 2792770 [ 477667] lookup3: 2680661 2676529 2679988 2680290 2678621| 2676529 [ 476566] Arash Partow: 2695441 2693787 2694850 2694249 2694542| 2693787 [ 478246] CRC-32: 2439800 2441408 2441123 2441348 2438523| 2438523 [ 472854] Ramakrishna: 2716778 2719394 2716583 2714952 2717127| 2714952 [ 476020] Fletcher: 43749804 43810393 43741532 43797268 43755812| 43741532 [ 2856890] Murmur2: 2493861 2493518 2495838 2498585 2492442| 2492442 [ 476330] Hanson: 2414963 2411485 2412133 2415729 2409295| 2409295 [ 534251] Novak unrolled: 2485504 2486680 2482821 2484608 2484583| 2482821 [ 657377] SBox: 2565426 2564018 2563874 2565249 2562416| 2562416 [ 476681] MaPrime2c: 2674879 2671380 2671990 2673315 2672649| 2671380 [ 477151] D:\_KAZE_new-stuff\_KAZE_hash_test_r3\RESULTS_Intel Merom>type BB.TXT 46486 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 29436 29032 28778 28635 28822| 28635 [ 11] FNV1A_Meiyan: 25534 25468 25187 24973 24670| 24670 [ 11] FNV1A_Jesteress: 24572 23919 24773 24399 24366| 23919 [ 11] FNV1A_Jester: 24113 24260 24383 24407 24204| 24113 [ 11] FNV1A_Smaragd: 24799 25318 24379 24494 24502| 24379 [ 11] FNV1A_Peregrine: 33189 33446 33288 33138 33152| 33138 [ 11] FNV1A_Whiz: 24420 25368 24737 24470 26039| 24420 [ 11] FNV1A_Nefertiti: 16013 17533 15989 16274 16076| 15989 [ 6690] FNV-1a: 24992 24629 25399 24885 24907| 24629 [ 12] Sixtinsensitive+: 19426 19366 20728 19335 19033| 19033 [ 31572] Sixtinsensitive: 19045 19079 19052 19076 19055| 19045 [ 31823] Alfalfa_Rollick: 5787 5672 5665 5678 5689| 5665 [ 5182] Alfalfa: 5924 5992 5994 5956 6949| 5924 [ 5182] Alfalfa_HALF: 5844 5747 5824 5834 5797| 5747 [ 10593] Alfalfa_DWORD: 6058 5996 6029 5934 6025| 5934 [ 5182] Alfalfa_QWORD: 6133 6098 6265 5957 6109| 5957 [ 5182] Bernstein: 6509 6611 6532 6525 6548| 6509 [ 12855] K&R: 5448 5474 5524 5494 5496| 5448 [ 10593] x17 unrolled: 7598 7646 7494 7626 7577| 7494 [ 26729] x65599: 9721 9651 9616 9862 9682| 9616 [ 35] Sedgewick: 9475 9465 9463 9408 9468| 9408 [ 11] Weinberger: 7056 7073 7196 7252 7161| 7056 [ 27452] Paul Larson: 6327 6541 6481 6643 6670| 6327 [ 14] Paul Hsieh: 33875 32860 32639 32629 32744| 32629 [ 30] One At Time: 33162 31732 31345 32075 32479| 31345 [ 28] lookup3: 34720 34481 34531 35214 34532| 34481 [ 28] Arash Partow: 8080 8082 7928 8051 8070| 7928 [ 11] CRC-32: 32560 32040 31941 31940 32317| 31940 [ 11] Ramakrishna: 6684 6740 6711 6670 6682| 6670 [ 11920] Fletcher: 21007 20969 21067 20769 20965| 20769 [ 42071] Murmur2: 28040 27767 27520 27468 27540| 27468 [ 30] Hanson: 32153 32438 32141 32249 32406| 32141 [ 33] Novak unrolled: 22583 22532 22588 22616 22558| 22532 [ 43340] SBox: 32254 32054 32103 32091 33358| 32054 [ 26] MaPrime2c: 30714 30520 30635 30614 31011| 30520 [ 11] 248019 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 121266 120346 120471 120575 120856| 120346 [ 365] FNV1A_Meiyan: 119849 119080 118429 118317 118616| 118317 [ 365] FNV1A_Jesteress: 114555 114584 115367 114165 114818| 114165 [ 1938] FNV1A_Jester: 114582 114461 114942 115392 114944| 114461 [ 1938] FNV1A_Smaragd: 122956 122271 120784 121790 121874| 120784 [ 365] FNV1A_Peregrine: 179664 178907 179153 179446 179809| 178907 [ 365] FNV1A_Whiz: 115289 115920 114632 115888 115178| 114632 [ 1938] FNV1A_Nefertiti: 105622 105117 106248 104675 105128| 104675 [ 13655] FNV-1a: 113987 114025 114089 113805 114432| 113805 [ 411] Sixtinsensitive+: 137866 138034 137320 138415 138302| 137320 [ 145278] Sixtinsensitive: 114324 111899 112831 112258 111933| 111899 [ 139136] Alfalfa_Rollick: 43690 44133 43333 43859 44006| 43333 [ 13663] Alfalfa: 45943 46012 46376 46024 46148| 45943 [ 13663] Alfalfa_HALF: 41180 41443 41195 41079 41156| 41079 [ 22302] Alfalfa_DWORD: 46847 47198 46966 47081 47396| 46847 [ 13666] Alfalfa_QWORD: 48045 48136 48104 48690 48074| 48045 [ 13663] Bernstein: 44595 43342 43615 42838 43302| 42838 [ 37847] K&R: 35114 34914 34840 35020 35221| 34840 [ 22302] x17 unrolled: 41473 40979 41408 41550 41532| 40979 [ 98876] x65599: 64422 64060 64050 64388 64121| 64050 [ 492] Sedgewick: 66793 67139 65752 66549 67355| 65752 [ 460] Weinberger: 38911 38971 38588 38674 38639| 38588 [ 97808] Paul Larson: 47121 47226 47132 47308 47413| 47121 [ 312] Paul Hsieh: 178689 178906 178088 177730 178532| 177730 [ 481] One At Time: 172547 174098 172997 173974 172010| 172010 [ 585] lookup3: 185901 185161 185882 185262 184928| 184928 [ 480] Arash Partow: 65543 65793 65363 65362 65465| 65362 [ 560] CRC-32: 175159 177384 175086 174693 175290| 174693 [ 864] Ramakrishna: 45706 45523 45644 45267 45788| 45267 [ 30316] Fletcher: 134904 134852 135071 133551 133043| 133043 [ 49303] Murmur2: 171374 172358 171756 171486 171770| 171374 [ 451] Hanson: 170449 170596 171356 171125 170974| 170449 [ 481] Novak unrolled: 438736 436897 439957 440773 438862| 436897 [ 238439] SBox: 169533 169713 168819 169278 169623| 168819 [ 448] MaPrime2c: 167548 167768 167657 167887 167731| 167548 [ 556] 855682 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 467853 463369 462735 460789 463018| 460789 [ 5330] FNV1A_Meiyan: 413274 412270 415642 414122 410937| 410937 [ 5330] FNV1A_Jesteress: 413922 413715 416373 414659 412737| 412737 [ 5968] FNV1A_Jester: 414704 415015 411019 415376 412493| 411019 [ 5968] FNV1A_Smaragd: 439383 439682 439671 438331 438069| 438069 [ 5330] FNV1A_Peregrine: 632326 630732 631072 631087 629204| 629204 [ 5330] FNV1A_Whiz: 415724 415452 415901 415153 414974| 414974 [ 5968] FNV1A_Nefertiti: 343005 341953 342278 341841 340498| 340498 [ 30631] FNV-1a: 560354 560228 561239 563014 561981| 560228 [ 5560] Sixtinsensitive+: 457250 454239 455184 454682 453740| 453740 [ 397985] Sixtinsensitive: 434730 433856 434485 435027 434180| 433856 [ 399637] Alfalfa_Rollick: 219276 220736 220103 220087 218764| 218764 [ 26670] Alfalfa: 222312 222198 224113 223791 223580| 222198 [ 26670] Alfalfa_HALF: 200259 199876 201539 200106 199915| 199876 [ 35000] Alfalfa_DWORD: 227771 227482 227673 227763 226555| 226555 [ 26671] Alfalfa_QWORD: 233636 234136 232118 233658 233864| 232118 [ 26670] Bernstein: 204099 203630 202548 203423 203351| 202548 [ 59573] K&R: 175346 174675 175631 174856 176362| 174675 [ 34582] x17 unrolled: 181196 181178 180946 181192 181910| 180946 [ 190251] x65599: 316558 315794 316209 315773 315040| 315040 [ 4932] Sedgewick: 302714 303212 301968 302747 302675| 301968 [ 4428] Weinberger: 169686 169583 168872 169626 169443| 168872 [ 177873] Paul Larson: 243673 242502 243640 243220 243670| 242502 [ 5499] Paul Hsieh: 649131 649949 648488 649994 645475| 645475 [ 30488] One At Time: 626641 623071 624939 625774 624507| 623071 [ 5476] lookup3: 650975 649130 647829 649289 650338| 647829 [ 5491] Arash Partow: 265070 265825 264401 264930 264790| 264401 [ 6272] CRC-32: 610859 607187 611789 610533 611337| 607187 [ 4450] Ramakrishna: 223071 220989 223120 222704 222548| 220989 [ 45786] Fletcher: 350423 350929 349916 349179 349220| 349179 [ 656967] Murmur2: 599440 596623 596610 596193 596434| 596193 [ 5387] Hanson: 616507 614420 615395 613991 614317| 613991 [ 5502] Novak unrolled: 3703213 3701552 3697230 3695956 3702371| 3695956 [ 827051] SBox: 615648 616108 612561 614830 614270| 612561 [ 5531] MaPrime2c: 604237 603232 602706 603185 604472| 602706 [ 5418] 2236138 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 1414060 1396066 1393877 1396518 1398270| 1393877 [ 38870] FNV1A_Meiyan: 1388087 1383755 1385598 1386043 1386360| 1383755 [ 38870] FNV1A_Jesteress: 1276767 1278120 1276301 1278992 1277489| 1276301 [ 52366] FNV1A_Jester: 1276324 1272617 1273682 1272695 1275169| 1272617 [ 52366] FNV1A_Smaragd: 1606993 1607585 1605035 1608206 1606097| 1605035 [ 38870] FNV1A_Peregrine: 1734694 1734140 1733263 1732651 1732583| 1732583 [ 38870] FNV1A_Whiz: 1390833 1391777 1391938 1389530 1388650| 1388650 [ 52366] FNV1A_Nefertiti: 1249256 1251851 1250255 1249701 1249352| 1249256 [ 120192] FNV-1a: 1551883 1552008 1552458 1553986 1554380| 1551883 [ 37073] Sixtinsensitive+: 1462062 1464943 1462364 1465825 1461509| 1461509 [ 874695] Sixtinsensitive: 1587004 1587863 1586630 1588825 1588514| 1586630 [ 853608] Alfalfa_Rollick: 754643 753367 752366 751711 751470| 751470 [ 61964] Alfalfa: 759831 760476 760324 755975 758396| 755975 [ 61964] Alfalfa_HALF: 703983 702255 703254 704896 703020| 702255 [ 77952] Alfalfa_DWORD: 772994 773507 776440 775655 774433| 772994 [ 61957] Alfalfa_QWORD: 791489 790109 791096 790529 789867| 789867 [ 61964] Bernstein: 708235 708293 708170 706924 708002| 706924 [ 94387] K&R: 628640 629741 629982 629802 630971| 628640 [ 79819] x17 unrolled: 602424 602766 601931 602357 601584| 601584 [ 261696] x65599: 1006278 1004892 1006130 1006777 1005466| 1004892 [ 37963] Sedgewick: 971510 972081 968579 970603 971071| 968579 [ 36010] Weinberger: 652452 652945 652292 652099 652433| 652099 [ 256510] Paul Larson: 818830 819250 821684 819943 820483| 818830 [ 36486] Paul Hsieh: 1746532 1746605 1746916 1747343 1747962| 1746532 [ 75554] One At Time: 1733483 1732916 1735070 1731917 1730793| 1730793 [ 36793] lookup3: 1764904 1765405 1765923 1765881 1765086| 1764904 [ 36983] Arash Partow: 963668 962974 963429 963413 963106| 962974 [ 36388] CRC-32: 1663622 1660249 1664231 1660862 1665693| 1660249 [ 37609] Ramakrishna: 770408 769396 770003 768865 768637| 768637 [ 82766] Fletcher: 1721008 1721204 1720054 1722647 1723427| 1720054 [ 695965] Murmur2: 1657460 1677041 1663259 1663913 1666715| 1657460 [ 36934] Hanson: 1665425 1666912 1667689 1664733 1664926| 1664733 [ 37167] Novak unrolled: 12656845 12653705 12630037 12648396 12654856| 12630037 [ 2152234] SBox: 1672073 1669945 1669037 1668405 1670769| 1668405 [ 36476] MaPrime2c: 1673357 1672947 1673385 1676177 1672673| 1672673 [ 37112] 4803152 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 3667637 3619626 3619301 3619738 3619989| 3619301 [ 168339] FNV1A_Meiyan: 3158093 3170332 3157471 3149657 3162523| 3149657 [ 168339] FNV1A_Jesteress: 3108042 3118687 3117708 3107200 3118254| 3107200 [ 170503] FNV1A_Jester: 3117035 3127795 3109593 3111441 3104850| 3104850 [ 170503] FNV1A_Smaragd: 3634410 3638518 3644015 3635830 3642194| 3634410 [ 168339] FNV1A_Peregrine: 3828805 3833760 3830648 3833406 3830745| 3828805 [ 168339] FNV1A_Whiz: 3158692 3154045 3145184 3165301 3163577| 3145184 [ 170503] FNV1A_Nefertiti: 3020119 3016961 3012031 3016787 3016000| 3012031 [ 215095] FNV-1a: 3618889 3619650 3617511 3621621 3622082| 3617511 [ 168058] Sixtinsensitive+: 3228291 3224199 3222335 3224460 3225548| 3222335 [ 1446295] Sixtinsensitive: 3276262 3274611 3279967 3268506 3270754| 3268506 [ 1433399] Alfalfa_Rollick: 2038119 2033572 2035803 2038668 2039344| 2033572 [ 195034] Alfalfa: 2054866 2054098 2055815 2055563 2054383| 2054098 [ 195034] Alfalfa_HALF: 1931603 1931994 1930541 1930476 1933294| 1930476 [ 214254] Alfalfa_DWORD: 2075916 2077343 2074443 2077227 2077860| 2074443 [ 195036] Alfalfa_QWORD: 2142609 2142841 2144551 2144023 2140614| 2140614 [ 195034] Bernstein: 1949569 1950138 1950618 1950457 1949277| 1949277 [ 227590] K&R: 1777344 1773978 1778249 1780201 1779504| 1773978 [ 211850] x17 unrolled: 1673839 1672945 1675275 1676150 1675708| 1672945 [ 432040] x65599: 2569081 2567559 2567505 2567406 2563711| 2563711 [ 168139] Sedgewick: 2501015 2500120 2499380 2502932 2503182| 2499380 [ 172013] Weinberger: 2166765 2165517 2168824 2164378 2169428| 2164378 [ 771987] Paul Larson: 2171021 2171078 2172307 2170069 2172243| 2170069 [ 166691] Paul Hsieh: 3915124 3918454 3916532 3916745 3916634| 3915124 [ 238759] One At Time: 3968509 3968897 3971247 3972879 3963740| 3963740 [ 167708] lookup3: 3929637 3930560 3934554 3935090 3932821| 3929637 [ 167908] Arash Partow: 2327661 2324974 2326664 2324502 2327864| 2324502 [ 165769] CRC-32: 3827402 3823904 3826003 3824465 3825735| 3823904 [ 166743] Ramakrishna: 2102876 2096945 2104776 2096236 2100307| 2096236 [ 220086] Fletcher: 2866068 2864451 2867612 2870070 2866694| 2864451 [ 3262980] Murmur2: 3777201 3775199 3776792 3779262 3775499| 3775199 [ 167779] Hanson: 3794675 3797136 3798722 3795344 3791447| 3791447 [ 169743] Novak unrolled: 24781943 24801336 24765324 24787730 24792678| 24765324 [ 4562018] SBox: 3792345 3791953 3794102 3792559 3795751| 3791953 [ 167630] MaPrime2c: 3842852 3840271 3841758 3843333 3843608| 3840271 [ 167237] 8956496 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 7238165 7174750 7173415 7174280 7172598| 7172598 [ 574438] FNV1A_Meiyan: 5785293 5785471 5783231 5785745 5785097| 5783231 [ 1028978] FNV1A_Jesteress: 5782319 5781552 5783285 5776728 5778088| 5776728 [ 1028978] FNV1A_Jester: 5691056 5694423 5688413 5689528 5691216| 5688413 [ 913448] FNV1A_Smaragd: 7489839 7496225 7494814 7490145 7494123| 7489839 [ 574438] FNV1A_Peregrine: 7540153 7539160 7535792 7541224 7536028| 7535792 [ 913448] FNV1A_Whiz: 5731148 5733867 5731863 5732819 5734153| 5731148 [ 913448] FNV1A_Nefertiti: 6943269 6940225 6936528 6936547 6941259| 6936528 [ 896124] FNV-1a: 7352504 7351965 7351381 7343253 7355925| 7343253 [ 572119] Sixtinsensitive+: 7418645 7420299 7420997 7424549 7423662| 7418645 [ 2560474] Sixtinsensitive: 6554461 6561619 6552240 6549723 6544012| 6544012 [ 2277956] Alfalfa_Rollick: 5215054 5216573 5215516 5218146 5217419| 5215054 [ 1633539] Alfalfa: 4729104 4729070 4726638 4726688 4725164| 4725164 [ 598532] Alfalfa_HALF: 4507165 4510772 4511366 4512481 4509980| 4507165 [ 613540] Alfalfa_DWORD: 4861767 4863784 4860355 4860968 4859867| 4859867 [ 598520] Alfalfa_QWORD: 5101948 5100969 5104096 5099370 5100893| 5099370 [ 598520] Bernstein: 4570598 4571754 4571998 4573560 4570518| 4570518 [ 632926] K&R: 4553394 4559056 4560063 4560736 4563033| 4553394 [ 609893] x17 unrolled: 4026233 4024695 4026958 4027979 4026318| 4024695 [ 868872] x65599: 5635598 5641981 5636539 5634483 5639369| 5634483 [ 574269] Sedgewick: 5571934 5575888 5574497 5576708 5574932| 5571934 [ 570722] Weinberger: 6514845 6512930 6512591 6515809 6509944| 6509944 [ 2462847] Paul Larson: 4935348 4933838 4936916 4932347 4932702| 4932347 [ 573492] Paul Hsieh: 7879237 7878491 7876072 7883724 7883515| 7876072 [ 609781] One At Time: 8107021 8110202 8108615 8100330 8110020| 8100330 [ 572492] lookup3: 8046315 8052954 8047261 8048032 8050460| 8046315 [ 571014] Arash Partow: 5646330 5641066 5645480 5647697 5639981| 5639981 [ 569873] CRC-32: 7668179 7667150 7664821 7676738 7671295| 7664821 [ 570199] Ramakrishna: 4919081 4908943 4908436 4909258 4906580| 4906580 [ 629279] Fletcher: 8630458 8629764 8634048 8631857 8628449| 8628449 [ 2646718] Murmur2: 7714643 7711746 7712865 7709524 7713329| 7709524 [ 570799] Hanson: 7892325 7903920 7893644 7906158 7892381| 7892325 [ 581505] Novak unrolled: 36087529 36111800 36090350 36077655 35875109| 35875109 [ 8271712] SBox: 7452334 7442664 7445438 7450188 7450415| 7442664 [ 572545] MaPrime2c: 7532988 7532091 7535453 7534930 7534463| 7532091 [ 572590] 15006172 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 13595904 13493992 13494788 13501068 13487730| 13487730 [ 1560014] FNV1A_Meiyan: 11537240 11531318 11532993 11532714 11530189| 11530189 [ 1656865] FNV1A_Jesteress: 11532153 11528791 11532286 11528071 11530829| 11528071 [ 1656865] FNV1A_Jester: 11519463 11513074 11515983 11515509 11514992| 11513074 [ 1599151] FNV1A_Smaragd: 13606697 13598877 13599634 13603301 13601308| 13598877 [ 1560794] FNV1A_Peregrine: 13652646 13653080 13659376 13655943 13652881| 13652646 [ 1599151] FNV1A_Whiz: 11596554 11594431 11597560 11597466 11603005| 11594431 [ 1599151] FNV1A_Nefertiti: 11743988 11733637 11729284 11731848 11731448| 11729284 [ 1642435] FNV-1a: 14308802 14297151 14303444 14302314 14297909| 14297151 [ 1559756] Sixtinsensitive+: 12428507 12438356 12430044 12430660 12429333| 12428507 [ 3634999] Sixtinsensitive: 12259609 12256110 12259597 12267268 12264516| 12256110 [ 3573121] Alfalfa_Rollick: 9511155 9509689 9504519 9512410 9506166| 9504519 [ 1796113] Alfalfa: 9555092 9550975 9553087 9552172 9559220| 9550975 [ 1585513] Alfalfa_HALF: 9218039 9218235 9223302 9225006 9222260| 9218039 [ 1599087] Alfalfa_DWORD: 9691713 9694138 9700336 9694923 9697442| 9691713 [ 1585512] Alfalfa_QWORD: 10164107 10160174 10167584 10162423 10164190| 10160174 [ 1585512] Bernstein: 10093512 10091343 10091959 10099200 10092111| 10091343 [ 1613382] K&R: 9402234 9394280 9397250 9398806 9400506| 9394280 [ 1601151] x17 unrolled: 8394299 8395960 8392668 8394869 8392112| 8392112 [ 1874514] x65599: 11807059 11810395 11809685 11803238 11805823| 11803238 [ 1560060] Sedgewick: 11783193 11787056 11780403 11788268 11779812| 11779812 [ 1561162] Weinberger: 14785493 14786543 14786632 14790689 14787418| 14785493 [ 4913597] Paul Larson: 9901819 9903143 9906866 9907658 9905496| 9901819 [ 1558905] Paul Hsieh: 14378519 14376157 14375557 14378731 14376534| 14375557 [ 1601618] One At Time: 14861583 14868479 14866356 14864822 14865832| 14861583 [ 1559519] lookup3: 14293697 14299839 14295553 14296455 14292584| 14292584 [ 1559611] Arash Partow: 10611056 10620010 10620099 10609896 10613214| 10609896 [ 1561948] CRC-32: 13870795 13875501 13884321 13880811 13876553| 13870795 [ 1559521] Ramakrishna: 10757801 10767700 10764462 10763909 10767034| 10757801 [ 1617827] Fletcher: 11053223 11055436 11067722 11058159 11061779| 11053223 [ 8696395] Murmur2: 13965824 13963006 13973767 13972600 13971766| 13963006 [ 1558392] Hanson: 14241355 14239783 14230664 14243646 14241452| 14230664 [ 1589703] Novak unrolled: 41789232 42857092 42932938 42933366 42920306| 41789232 [13102749] SBox: 14898681 14881080 14887601 14890377 14889406| 14881080 [ 1560519] MaPrime2c: 15120643 15122431 15128919 15121175 15130827| 15120643 [ 1557844] 22992127 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 24158626 24026820 24012915 24018580 24018477| 24012915 [ 3525152] FNV1A_Meiyan: 21796203 21790975 21797423 21794329 21792231| 21790975 [ 3611850] FNV1A_Jesteress: 21778671 21783601 21790965 21787867 21790894| 21778671 [ 3611850] FNV1A_Jester: 21966314 21964206 21964506 21966308 21952556| 21952556 [ 3654062] FNV1A_Smaragd: 24319429 24321402 24325090 24318674 24326226| 24318674 [ 3525152] FNV1A_Peregrine: 24922977 24916925 24912583 24920637 24926298| 24912583 [ 3654062] FNV1A_Whiz: 21929037 21924909 21927514 21925535 21917368| 21917368 [ 3654062] FNV1A_Nefertiti: 22924216 22935837 22933260 22926232 22942546| 22924216 [ 3739373] FNV-1a: 24774128 24775678 24763143 24761864 24764053| 24761864 [ 3527537] Sixtinsensitive+: 23957250 23960758 23957393 23954151 23961592| 23954151 [ 5880454] Sixtinsensitive: 22665764 22667747 22669624 22669263 22656709| 22656709 [ 5652221] Alfalfa_Rollick: 18499756 18518101 18497826 18504499 18489872| 18489872 [ 3613229] Alfalfa: 18700728 18707556 18706164 18687605 18704447| 18687605 [ 3544682] Alfalfa_HALF: 18118347 18109749 18096846 18098991 18107586| 18096846 [ 3558121] Alfalfa_DWORD: 19011231 18999288 19008383 19012153 19004319| 18999288 [ 3544682] Alfalfa_QWORD: 19697884 19711517 19700974 19700169 19699546| 19697884 [ 3544682] Bernstein: 18554484 18546685 18557135 18556775 18554435| 18546685 [ 3574833] K&R: 17823310 17806216 17804168 17809417 17827806| 17804168 [ 3561685] x17 unrolled: 16913241 16919297 16923539 16912180 16924955| 16912180 [ 3832933] x65599: 21123155 21117897 21117002 21114840 21110771| 21110771 [ 3528251] Sedgewick: 20807177 20793834 20797859 20578555 20276595| 20276595 [ 3525723] Weinberger: 25977983 25979240 25986103 25979034 25979342| 25977983 [ 7239926] Paul Larson: 20232801 20241230 20230396 20239305 20244618| 20230396 [ 3523757] Paul Hsieh: 24913566 24909014 24908465 24906169 24907676| 24906169 [ 3551794] One At Time: 25886716 25887608 25886076 25888907 25886085| 25886076 [ 3525042] lookup3: 25183352 25184934 25182102 25182689 25185551| 25182102 [ 3526141] Arash Partow: 20689284 20687946 20690665 20688826 20691385| 20687946 [ 3528077] CRC-32: 24207209 24200303 24198482 24207292 24196060| 24196060 [ 3529021] Ramakrishna: 19398256 19646882 19640795 19650220 19651888| 19398256 [ 3580093] Fletcher: 29948959 29951502 29942569 29939246 29936698| 29936698 [ 7785869] Murmur2: 25104250 25095587 25105976 25107442 25104796| 25095587 [ 3523751] Hanson: 25416767 25424741 25414078 25401871 25416062| 25401871 [ 3607402] Novak unrolled: 45947542 45941565 45941924 45934532 45954285| 45934532 [17947092] SBox: 25078289 25076715 25082075 25078397 25087439| 25076715 [ 3523461] MaPrime2c: 25533547 25545953 25539706 25533713 25525412| 25525412 [ 3525183] 32707519 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 39988351 39527120 39521415 39517286 39515840| 39515840 [ 6818433] FNV1A_Meiyan: 37825600 37837441 37833562 37838891 37841104| 37825600 [ 6848898] FNV1A_Jesteress: 37820102 37837411 37838488 37824783 37824491| 37820102 [ 6848898] FNV1A_Jester: 38397086 38390674 38389672 38382813 38398400| 38382813 [ 6844433] FNV1A_Smaragd: 39457813 39441298 39448008 39439015 39443900| 39439015 [ 6820479] FNV1A_Peregrine: 39791140 39796216 39808856 39799403 39800874| 39791140 [ 6844433] FNV1A_Whiz: 38659808 38682414 38685801 38675892 38683641| 38659808 [ 6844433] FNV1A_Nefertiti: 35980270 35978571 35979878 35987750 35989149| 35978571 [ 6862897] FNV-1a: 40298648 39483868 39493026 39497644 39495955| 39483868 [ 6820338] Sixtinsensitive+: 36900751 36903534 36910701 36896828 36889738| 36889738 [ 8918604] Sixtinsensitive: 36455568 36449586 36466176 36460641 36469852| 36449586 [ 8890228] Alfalfa_Rollick: 30764553 30756924 30755192 30770170 30774059| 30755192 [ 6874377] Alfalfa: 31512989 31505690 31501917 31524668 31524038| 31501917 [ 6837237] Alfalfa_HALF: 30843476 30846660 30852204 30856627 30847004| 30843476 [ 6844423] Alfalfa_DWORD: 31647513 31629638 31652716 31649628 31661832| 31629638 [ 6837236] Alfalfa_QWORD: 32605462 32604801 32604673 32606284 32602752| 32602752 [ 6837236] Bernstein: 31515964 31527181 31525803 31528160 31532190| 31515964 [ 6857971] K&R: 30705519 30717854 30714617 30724354 30718401| 30705519 [ 6850978] x17 unrolled: 29116291 29103703 29104379 29110681 29086496| 29086496 [ 7098408] x65599: 34793236 34799253 34770455 34784362 34780468| 34770455 [ 6819716] Sedgewick: 34569251 34567002 34577666 34564315 34561164| 34561164 [ 6818912] Weinberger: 40935422 40917253 40930788 40914273 40930111| 40914273 [10307895] Paul Larson: 32586003 32587787 32585940 32588440 32595531| 32585940 [ 6817853] Paul Hsieh: 39995081 39979023 39987648 39988538 39995288| 39979023 [ 6855160] One At Time: 42011913 42013280 42013413 42005403 42012211| 42005403 [ 6818900] lookup3: 39556854 39557417 39562823 39551936 39547381| 39547381 [ 6816040] Arash Partow: 33946649 33934254 33946380 33943225 33946021| 33934254 [ 6820854] CRC-32: 39418224 39412442 39409394 39413075 39418628| 39409394 [ 6818991] Ramakrishna: 33070346 33070213 33057437 33063991 33072336| 33057437 [ 6864715] Fletcher: 33975405 33979633 33980083 33978743 33984025| 33975405 [17501262] Murmur2: 39083610 39084038 39088283 39125362 39086522| 39083610 [ 6817202] Hanson: 40003706 39985623 40002751 40006958 40002786| 39985623 [ 7000005] Novak unrolled: 43914519 43911986 43911667 43918337 43922803| 43911667 [20559205] SBox: 39584409 39580139 39596249 39576245 39580381| 39576245 [ 6821829] MaPrime2c: 40608889 40618248 40606235 40624182 40616532| 40606235 [ 6819946] 43802365 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 58974113 58369951 58374841 58362704 58348745| 58348745 [11635004] FNV1A_Meiyan: 54874951 54879206 54869062 54886841 54860495| 54860495 [11659429] FNV1A_Jesteress: 51859108 51862487 51866801 51875308 51874220| 51859108 [11818547] FNV1A_Jester: 52771438 52721088 52767159 52695121 52695328| 52695121 [12062644] FNV1A_Smaragd: 59260782 59269339 59270899 59280591 59264188| 59260782 [11635004] FNV1A_Peregrine: 59714542 59698697 59682475 59683315 59693458| 59682475 [11677586] FNV1A_Whiz: 56905173 56908842 56910921 56921806 56906767| 56905173 [12062644] FNV1A_Nefertiti: 57900056 57924189 57906727 57925634 57920465| 57900056 [12199626] FNV-1a: 60694815 60698345 60691119 60698018 60708890| 60691119 [11630492] Sixtinsensitive+: 58201284 58202603 58207591 58200774 58194895| 58194895 [14097063] Sixtinsensitive: 60218653 60228138 60219754 60223908 60217933| 60217933 [14027127] Alfalfa_Rollick: 50265495 50268500 50283150 50248168 50274462| 50248168 [11667363] Alfalfa: 50810912 50824358 50812412 50815218 50811538| 50810912 [11646579] Alfalfa_HALF: 49993765 50001833 49983017 49970084 49978918| 49970084 [11652948] Alfalfa_DWORD: 51407650 51407289 51433755 51415972 51415940| 51407289 [11646593] Alfalfa_QWORD: 52764856 52793832 52772720 52765259 52770670| 52764856 [11646573] Bernstein: 51254993 51259595 51254995 51248968 51261416| 51248968 [11662585] K&R: 50156462 50146775 50153904 50155035 50158917| 50146775 [11655087] x17 unrolled: 47880045 47888111 47908213 47894567 47887530| 47880045 [11861222] x65599: 55195718 55213920 55209340 55209840 55209749| 55195718 [11632515] Sedgewick: 55140272 55150778 55146067 55133415 55163562| 55133415 [11633458] Weinberger: 63275904 63268669 63269355 63288042 63277133| 63268669 [15481171] Paul Larson: 52455207 52456798 52453479 52454611 52448618| 52448618 [11630978] Paul Hsieh: 60694738 60701136 60705950 60699796 60694817| 60694738 [11651683] One At Time: 64224929 64228551 64244266 64234036 64221616| 64221616 [11634172] lookup3: 61644201 61619352 61627501 61635981 61622698| 61619352 [11632483] Arash Partow: 55895677 55910037 55910817 55904852 55895717| 55895677 [11628687] CRC-32: 60090499 60101814 60093724 60090572 60082081| 60082081 [11633685] Ramakrishna: 53303066 53293073 53300578 53286401 53297342| 53286401 [11671893] Fletcher: 73381324 73401070 73377277 73403336 73407899| 73377277 [17365212] Murmur2: 59768623 59788312 59783939 59778956 59781951| 59768623 [11630747] Hanson: 61857219 61852257 61848326 61852462 61849178| 61848326 [11992494] Novak unrolled: 42718033 42712352 42711496 42715566 42699013| 42699013 [19028002] SBox: 60689731 60692603 60691247 60701986 60705897| 60689731 [11633664] MaPrime2c: 62103888 62114951 62100360 62106704 62118843| 62100360 [11628836] D:\_KAZE_new-stuff\_KAZE_hash_test_r3\RESULTS_Intel Merom> D:\WorkTemp\_KAZE_hash_test_r2_enwik>hash "Word-list_00,584,879_Russian_Spell-Check_Unknown-Quality.slv" 584879 lines read 2097152 elements in the table (21 bits) FNV1A_Mantis: 433292 414606 414699 414327 415485| 414327 [ 74643] FNV1A_Meiyan: 395834 396420 397419 398415 397845| 395834 [ 75377] FNV1A_Jesteress: 394035 393301 393869 392759 394087| 392759 [ 75404] FNV1A_Jester: 393466 393357 394683 393213 393492| 393213 [ 74478] FNV1A_Smaragd: 423057 421188 420991 419938 420987| 419938 [ 74554] FNV1A_Peregrine: 424882 422897 423452 422477 423934| 422477 [ 74510] FNV1A_Whiz: 402838 399576 401139 400823 400771| 399576 [ 74478] FNV1A_Nefertiti: 410716 411345 409512 411163 410681| 409512 [ 74597] FNV-1a: 446752 447704 445087 446719 443748| 443748 [ 74184] Sixtinsensitive+: 427341 426709 427705 425846 427176| 425846 [ 78303] Sixtinsensitive: 426444 426659 427084 426534 426657| 426444 [ 75351] Alfalfa_Rollick: 358526 358316 356909 359645 358622| 356909 [ 74773] Alfalfa: 367388 366231 366471 367111 366013| 366013 [ 74581] Alfalfa_HALF: 362721 364525 361837 363541 362886| 361837 [ 74959] Alfalfa_DWORD: 370116 367279 369297 367727 368422| 367279 [ 74764] Alfalfa_QWORD: 382263 382291 381850 380988 380065| 380065 [ 74544] Bernstein: 378824 379106 378587 378196 379222| 378196 [ 73941] K&R: 361366 360204 359923 363356 359354| 359354 [ 74758] x17 unrolled: 364702 362985 365934 363519 364982| 362985 [ 75124] x65599: 384952 382228 383741 384072 384530| 382228 [ 74541] Sedgewick: 373543 372734 374373 374214 373628| 372734 [ 74796] Weinberger: 484143 483779 484161 483246 483947| 483246 [ 140473] Paul Larson: 376642 376688 375547 377194 375440| 375440 [ 74389] Paul Hsieh: 447260 444118 445200 444059 446564| 444059 [ 74724] One At Time: 470383 467767 469418 470807 471086| 467767 [ 74614] lookup3: 458985 457962 458897 459440 458853| 457962 [ 74784] Arash Partow: 383643 383933 385687 381777 384760| 381777 [ 74558] CRC-32: 429007 429629 429310 428642 429072| 428642 [ 74307] Ramakrishna: 394494 394460 397206 394521 394829| 394460 [ 74499] Fletcher: 481416 482321 483359 481936 481438| 481416 [ 323403] Murmur2: 429547 429434 431137 432518 429648| 429434 [ 74234] Hanson: 440258 440485 440324 441485 440447| 440258 [ 82666] Novak unrolled: 390613 392690 391512 391566 391470| 390613 [ 117885] SBox: 436251 436405 435717 437996 436744| 435717 [ 74645] MaPrime2c: 456508 456965 456583 455300 455864| 455300 [ 74249] D:\WorkTemp\_KAZE_hash_test_r2_enwik>hash "Word-list_12,561,874_wikipedia-en-html.tar.wrd" 12561874 lines read 33554432 elements in the table (25 bits) FNV1A_Mantis: 13025913 12941933 12936990 12930739 12931958| 12930739 [ 2082213] FNV1A_Meiyan: 12661558 12659545 12658145 12659879 12660024| 12658145 [ 2111271] FNV1A_Jesteress: 12596903 12602762 12598847 12600127 12605185| 12596903 [ 2121868] FNV1A_Jester: 12622228 12621510 12624276 12620132 12645242| 12620132 [ 2138053] FNV1A_Smaragd: 13081017 13089179 13094246 13082423 13088104| 13081017 [ 2083208] FNV1A_Peregrine: 13161377 13156271 13161779 13160798 13155463| 13155463 [ 2104754] FNV1A_Whiz: 12723632 12714292 12720050 12716932 12714050| 12714050 [ 2138053] FNV1A_Nefertiti: 12975439 12972944 12968316 12970019 12962745| 12962745 [ 2252381] FNV-1a: 13485692 13478666 13478893 13479758 13485449| 13478666 [ 2081195] Sixtinsensitive+: 13393335 13397119 13392683 13392720 13393269| 13392683 [ 2251734] Sixtinsensitive: 13133206 13123326 13129833 13131186 13126694| 13123326 [ 2139242] Alfalfa_Rollick: 11931702 11940983 11934975 11938328 11932875| 11931702 [ 2114568] Alfalfa: 12099473 12097970 12104741 12098181 12099029| 12097970 [ 2074883] Alfalfa_HALF: 11967153 11964687 11963729 11958004 11957514| 11957514 [ 2077426] Alfalfa_DWORD: 12178647 12168223 12165878 12162584 12160517| 12160517 [ 2074883] Alfalfa_QWORD: 12424108 12406482 12419677 12417910 12414650| 12406482 [ 2074883] Bernstein: 12273941 12267380 12272109 12268807 12266884| 12266884 [ 2074237] K&R: 12021643 12040364 12023988 12033987 12022094| 12021643 [ 2083145] x17 unrolled: 11756564 11753086 11754753 11757836 11754012| 11753086 [ 2410605] x65599: 12614103 12624012 12613298 12614709 12608723| 12608723 [ 2102893] Sedgewick: 12528412 12528424 12520723 12522468 12518290| 12518290 [ 2080640] Weinberger: 15296607 15280304 15279982 15276695 15280469| 15276695 [ 3541181] Paul Larson: 12319721 12305980 12311804 12306637 12311424| 12305980 [ 2080111] Paul Hsieh: 13664107 13655820 13662689 13656528 13660826| 13655820 [ 2180206] One At Time: 13954009 13949498 13944807 13944318 13938482| 13938482 [ 2087861] lookup3: 13741374 13745691 13753979 13740605 13746673| 13740605 [ 2084889] Arash Partow: 12688415 12683455 12680961 12687358 12679559| 12679559 [ 2084572] CRC-32: 13217962 13228412 13217117 13221364 13220603| 13217117 [ 2075088] Ramakrishna: 12574166 12574505 12565820 12564419 12564615| 12564419 [ 2093253] Fletcher: 40373113 40364475 40359342 40375056 40372740| 40359342 [ 9063797] Murmur2: 13243146 13244046 13238086 13240588 13240356| 13238086 [ 2081476] Hanson: 13351601 13356831 13355175 13355085 13348765| 13348765 [ 2129832] Novak unrolled: 40669387 40672956 40666950 40655254 40673645| 40655254 [ 6318611] SBox: 13229607 13233338 13233287 13234148 13239758| 13229607 [ 2084018] MaPrime2c: 13623451 13638199 13631678 13636544 13627828| 13623451 [ 2084467] D:\WorkTemp\_KAZE_hash_test_r2_enwik>hash "Word-list_22,202,980_wikipedia-de-en-es-fr-it-nl-pt-ro-html.tar.wrd" 22202980 lines read 67108864 elements in the table (26 bits) FNV1A_Mantis: 25494347 25184767 25191381 25192563 25196596| 25184767 [ 3298270] FNV1A_Meiyan: 24608412 24606988 24615159 24605618 24608875| 24605618 [ 3345260] FNV1A_Jesteress: 24495550 24501637 24494654 24499443 24501047| 24494654 [ 3355676] FNV1A_Jester: 24528623 24535643 24522728 24535292 24531084| 24522728 [ 3369088] FNV1A_Smaragd: 25414387 25420832 25409604 25401088 25399886| 25399886 [ 3298433] FNV1A_Peregrine: 25478095 25476487 25487670 25476978 25484455| 25476487 [ 3333193] FNV1A_Whiz: 24726720 24719635 24734745 24712231 24734918| 24712231 [ 3369088] FNV1A_Nefertiti: 24538621 24518183 24537242 24525723 24514211| 24514211 [ 3505371] FNV-1a: 26184586 26188546 26191476 26182717 26187223| 26182717 [ 3297552] Sixtinsensitive+: 25270424 25279648 25272347 25269507 25282389| 25269507 [ 3507772] Sixtinsensitive: 24905472 24895751 24908884 24908408 24906831| 24895751 [ 3373923] Alfalfa_Rollick: 22583441 22581399 22572791 22569538 22586514| 22569538 [ 3408920] Alfalfa: 22884125 22891052 22884076 22883168 22890956| 22883168 [ 3288684] Alfalfa_HALF: 22443371 22447307 22440735 22439119 22431857| 22431857 [ 3286890] Alfalfa_DWORD: 22937778 22943611 22939829 22949285 22940614| 22937778 [ 3288684] Alfalfa_QWORD: 23438617 23432255 23428391 23427070 23426567| 23426567 [ 3288684] Bernstein: 23093392 23089451 23097113 23089267 23094195| 23089267 [ 3290766] K&R: 22609184 22618815 22595611 22641760 22617522| 22595611 [ 3290941] x17 unrolled: 22050776 22029009 22043137 22037542 22039408| 22029009 [ 3830652] x65599: 24293278 24308184 24300650 24314292 24292847| 24292847 [ 3325064] Sedgewick: 24144258 24141855 24149228 24143304 24140802| 24140802 [ 3302263] Weinberger: 28477342 28475184 28476945 28468589 28462932| 28462932 [ 5732660] Paul Larson: 23420856 23415635 23413254 23418684 23409268| 23409268 [ 3296692] Paul Hsieh: 26476061 26487753 26487210 26491646 26494016| 26476061 [ 3498543] One At Time: 27124361 27131909 27136213 27132909 27128473| 27124361 [ 3304908] lookup3: 26625122 26625602 26621784 26623375 26636929| 26621784 [ 3299369] Arash Partow: 24288549 24288749 24297912 24290040 24298147| 24288549 [ 3325683] CRC-32: 25689258 25696609 25694660 25694885 25694936| 25689258 [ 3298998] Ramakrishna: 23721149 23709456 23720039 23708997 23716555| 23708997 [ 3321824] Fletcher: 63643667 63633157 63641870 63636762 63644313| 63633157 [14915258] Murmur2: 25680120 25679170 25680368 25684702 25677670| 25677670 [ 3297709] Hanson: 26013717 26007562 26009393 26004069 26007862| 26004069 [ 3408497] Novak unrolled: 79673540 79674315 77631866 77520098 79480554| 77520098 [10591108] SBox: 25728400 25725435 25717289 25711903 25715216| 25711903 [ 3298021] MaPrime2c: 26434133 26438687 26431104 26435134 26440244| 26431104 [ 3299747] D:\WorkTemp\_KAZE_hash_test_r2_enwik>hash enwik8 919074 lines read 2097152 elements in the table (21 bits) FNV1A_Mantis: 1033229 1020232 1022150 1018821 1021463| 1018821 [ 315394] FNV1A_Meiyan: 1002905 1007051 1003813 1002090 1004849| 1002090 [ 315896] FNV1A_Jesteress: 1002921 1001218 1003519 1005302 1004096| 1001218 [ 316210] FNV1A_Jester: 1071482 1071567 1072452 1072278 1071216| 1071216 [ 315221] FNV1A_Smaragd: 1268884 1268907 1271641 1268030 1268842| 1268030 [ 315159] FNV1A_Peregrine: 1088467 1084973 1085919 1088084 1086616| 1084973 [ 315363] FNV1A_Whiz: 1080198 1079862 1080608 1079864 1080239| 1079862 [ 315221] FNV1A_Nefertiti: 1095710 1095304 1094566 1095972 1095196| 1094566 [ 315017] FNV-1a: 1610918 1610261 1610390 1612379 1610072| 1610072 [ 314801] Sixtinsensitive+: 1229714 1228876 1228294 1229187 1226981| 1226981 [ 318004] Sixtinsensitive: 1272345 1269384 1270718 1272037 1267963| 1267963 [ 317380] Alfalfa_Rollick: 1283905 1276236 1275904 1275605 1275392| 1275392 [ 315641] Alfalfa: 1604437 1605047 1605618 1605128 1605220| 1604437 [ 315210] Alfalfa_HALF: 1624906 1623466 1623733 1624470 1622595| 1622595 [ 315095] Alfalfa_DWORD: 1653406 1652292 1651419 1654278 1653129| 1651419 [ 315312] Alfalfa_QWORD: 1505313 1505259 1504602 1504956 1503165| 1503165 [ 315200] Bernstein: 1660213 1661711 1658705 1658291 1662041| 1658291 [ 314979] K&R: 1656849 1656492 1656669 1657161 1657273| 1656492 [ 314963] x17 unrolled: 1641523 1644347 1641573 1642418 1643330| 1641523 [ 315388] x65599: 1619079 1619361 1621860 1619911 1618999| 1618999 [ 315732] Sedgewick: 1663036 1634199 1636894 1634682 1636983| 1634199 [ 314968] Weinberger: 3279382 3279717 3280152 3281914 3278772| 3278772 [ 501816] Paul Larson: 1621532 1617613 1620717 1618781 1621256| 1617613 [ 315253] Paul Hsieh: 1346432 1342157 1343371 1343957 1345467| 1342157 [ 315244] One At Time: 2209085 2211673 2211455 2213234 2210790| 2209085 [ 315418] lookup3: 1381967 1378148 1378813 1378829 1378402| 1378148 [ 315370] Arash Partow: 2136272 2140238 2140562 2140294 2138502| 2136272 [ 315008] CRC-32: 1500835 1499952 1499140 1497856 1495970| 1495970 [ 314715] Ramakrishna: 1952815 1950413 1954540 1952528 1952637| 1950413 [ 315085] Fletcher: 1150090 1145629 1147048 1147148 1146122| 1145629 [ 334599] Murmur2: 1137819 1136947 1139202 1135478 1138187| 1135478 [ 314921] Hanson: 1788300 1786686 1786203 1788174 1788178| 1786203 [ 409582] Novak unrolled: 1263043 1262344 1263382 1261279 1263250| 1261279 [ 320229] SBox: 1248400 1250614 1248987 1247315 1248411| 1247315 [ 314979] MaPrime2c: 1650863 1653696 1651634 1653381 1649328| 1649328 [ 315057] D:\WorkTemp\_KAZE_hash_test_r2_enwik>hash enwik9 10920423 lines read 33554432 elements in the table (25 bits) FNV1A_Mantis: 12988561 12886053 12863399 12868641 12879614| 12863399 [ 4523028] FNV1A_Meiyan: 12769900 12759593 12762876 12763194 12764377| 12759593 [ 4562577] FNV1A_Jesteress: 12749896 12754845 12746881 12741295 12740429| 12740429 [ 4564891] FNV1A_Jester: 13387234 13373862 13380851 13375862 13386965| 13373862 [ 4527332] FNV1A_Smaragd: 15342602 15316439 15318957 15318572 15314340| 15314340 [ 4514617] FNV1A_Peregrine: 13523515 13526511 13530249 13529663 13533897| 13523515 [ 4525910] FNV1A_Whiz: 13482372 13484890 13490214 13478041 13478878| 13478041 [ 4527332] FNV1A_Nefertiti: 13659281 13658889 13662425 13652929 13647707| 13647707 [ 4533171] FNV-1a: 18844334 18851619 18838588 18856768 18866092| 18838588 [ 4514228] Sixtinsensitive+: 15208202 15194138 15197427 15200174 15194425| 15194138 [ 4571792] Sixtinsensitive: 15686056 15675147 15675532 15675416 15677496| 15675147 [ 4574963] Alfalfa_Rollick: 15498510 15505679 15496285 15505810 15486202| 15486202 [ 4578086] Alfalfa: 18691053 18703142 18705084 18699808 18727316| 18691053 [ 4512330] Alfalfa_HALF: 18854539 18859750 18849253 18853461 18849216| 18849216 [ 4515984] Alfalfa_DWORD: 19143659 19238510 19151048 19205053 19177588| 19143659 [ 4512167] Alfalfa_QWORD: 17789030 17776300 17757255 17753925 17755538| 17753925 [ 4511936] Bernstein: 19291200 19302214 19340487 19296857 19277998| 19277998 [ 4514664] K&R: 19290405 19282402 19336179 19280168 19317313| 19280168 [ 4514310] x17 unrolled: 19024203 19034653 19030783 19022472 19037605| 19022472 [ 4518655] x65599: 18878727 18883522 18888396 18883028 18886054| 18878727 [ 4519641] Sedgewick: 19012112 19010869 19009618 19019726 19003576| 19003576 [ 4514049] Weinberger: 37229689 37232759 37231108 37239490 37288342| 37229689 [ 6171423] Paul Larson: 18964255 18924290 18898430 18904925 18924518| 18898430 [ 4516902] Paul Hsieh: 16378768 16205221 16212642 16208594 16202524| 16202524 [ 4538732] One At Time: 24785370 24770898 24775511 24779519 24779318| 24770898 [ 4513773] lookup3: 16454883 16445334 16437735 16438718 16457536| 16437735 [ 4513053] Arash Partow: 24042232 24023152 24046103 24050015 24041337| 24023152 [ 4511414] CRC-32: 17615125 17622436 17624638 17631244 17614311| 17614311 [ 4517290] Ramakrishna: 22198438 22195405 22202053 22195139 22205071| 22195139 [ 4516115] Fletcher: 21287396 21277818 21263837 21264085 21263236| 21263236 [ 5125308] Murmur2: 14096794 14075221 14067201 14077413 14075908| 14067201 [ 4512608] Hanson: 974261781 982675775 982334451 980617769 981943891| 974261781 [ 5824709] Novak unrolled: 16430422 16422476 16383546 16361514 16372587| 16361514 [ 4792872] SBox: 15214945 15250881 15186352 15192458 15203459| 15186352 [ 4513800] MaPrime2c: 19237607 19240213 19241669 19249336 19244629| 19237607 [ 4514406] D:\WorkTemp\_KAZE_hash_test_r2_enwik>
Some tests (on my Intel Merom 2.16GHz, Windows XP 32bit, VS2008 32bit compiler): D:\_KAZE_new-stuff\VivaNicolaTesla>dir/oe Volume in drive D is H320_Vol5 Volume Serial Number is 0CB3-C881 Directory of D:\_KAZE_new-stuff\VivaNicolaTesla 03/16/2011 07:54 AM <DIR> .. 03/16/2011 07:54 AM <DIR> . 03/16/2011 07:39 AM 218,698 hash.cod 03/16/2011 07:39 AM 65,440 hash.cpp 03/16/2011 07:39 AM 87,552 hash.exe 03/16/2011 07:39 AM 8,390 BuildLog.htm 11/14/2010 02:39 PM 7,000,453 Word-list_00,584,879_Russian_Spell-Check_Unknown-Quality.slv 12/03/2010 07:30 AM 42,892,307 IPS.TXT 11/14/2010 02:39 PM 4,347,243 Sentence-list_00,032,359_English_The_Holy_Bible.txt 03/15/2011 12:10 PM 104,857,601 100MB_as_one_line.TXT 03/16/2011 07:54 AM 409,829,386 googlebooks-eng-us-all-4gram-20090715-graffith_A_distinct.txt 11/14/2010 02:39 PM 4,024,146 Word-list_00,351,114_English_Spell-Check_Unknown-Quality.wrd 11/14/2010 02:39 PM 388,308 Word-list_00,038,936_English_The Oxford Thesaurus, An A-Z Dictionary of Synonyms.wrd 11/14/2010 02:39 PM 146,973,879 Word-list_12,561,874_wikipedia-en-html.tar.wrd 11/14/2010 02:39 PM 278,013,406 Word-list_22,202,980_wikipedia-de-en-es-fr-it-nl-pt-ro-html.tar.wrd 13 File(s) 998,706,809 bytes 2 Dir(s) 2,947,858,432 bytes free D:\_KAZE_new-stuff\VivaNicolaTesla>hash "Word-list_22,202,980_wikipedia-de-en-es-fr-it-nl-pt-ro-html.tar.wrd" 22202980 lines read 67108864 elements in the table (26 bits) FNV1A_Hash_Tesla: 23890797 23614936 23680579 23684698 23606344| 23606344 [ 3457538] FNV1A_Mantis: 24848068 24866965 24863372 25003541 24859437| 24848068 [ 3298270] FNV1A_Meiyan: 23836095 23832986 23858019 23818340 23992756| 23818340 [ 3345260] FNV1A_Jesteress: 23737579 23756975 23731544 23743013 23743112| 23731544 [ 3355676] FNV1A_Jester: ^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash "Word-list_12,561,874_wikipedia-en-html.tar.wrd" 12561874 lines read 33554432 elements in the table (25 bits) FNV1A_Hash_Tesla: 12464491 12317094 12331733 12323774 12346488| 12317094 [ 2141464] FNV1A_Mantis: 12946943 12933482 12932442 12942204 13009030| 12932442 [ 2082213] FNV1A_Meiyan: 12583824 12417170 12440549 12465760 12441958| 12417170 [ 2111271] FNV1A_Jesteress: 12388725 12369952 12378952 12377230 12380569| 12369952 [ 2121868] FNV1A_Jester: ^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash "Word-list_00,351,114_English_Spell-Check_Unknown-Quality.wrd" 351114 lines read 1048576 elements in the table (20 bits) FNV1A_Hash_Tesla: 252801 238573 234905 233660 237413| 233660 [ 53107] FNV1A_Mantis: 253479 251841 249576 250135 254282| 249576 [ 52712] FNV1A_Meiyan: 234582 238797 235336 239111 238004| 234582 [ 52910] FNV1A_Jesteress: 235985 236268 234515 236577 234398| 234398 [ 52684] FNV1A_Jester: 236458 237823^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash "Word-list_00,038,936_English_The Oxford Thesaurus, An A-Z Dictionary of Synonyms.wrd" 38936 lines read 131072 elements in the table (17 bits) FNV1A_Hash_Tesla: 9787 9429 9419 9397 9567| 9397 [ 5176] FNV1A_Mantis: 10181 10205 10302 12326 11283| 10181 [ 5185] FNV1A_Meiyan: 9591 9563 9530 9493 9603| 9493 [ 5224] FNV1A_Jesteress: 15021 10163 9524 9533 9476| 9476 [ 5182] FNV1A_Jester: 9637 9482 9586 9580 9588| 9482 [ 5200] FNV1A_Smaragd: 11148 10041 10030 10048 10077| 10030 [ 5194] FNV1A_Peregrine: 10117 10179 9974 9968 10116| 9968 [ 5277] FNV1A_Whiz: 9616 9877 9679 9614 10118| 9614 [ 5200] FNV1A_Nefertiti: 10428 9939 9870 9925 10214| 9870 [ 5381] FNV-1a: 11328 11370 11388 11335 11216| 11216 [ 5321] Sixtinsensitive+: 10182 10274 9987 10234 10065| 9987 [ 5209] Sixtinsensitive: 10847 10800 10723 12666 10626| 10626 [ 5347] Alfalfa_Rollick: 10855 10116 10006 10077 10019| 10006 [ 5242] Alfalfa: 10422 10409 10427 10586 10946| 10409 [ 5252] Alfalfa_HALF: 10676 10529 10602 10584 10553| 10529 [ 5231] Alfalfa_DWORD: 10679 10883 11059 11093 11386| 10679 [ 5252] Alfalfa_QWORD: 10759 10692 10777 10792 10745| 10692 [ 5252] Bernstein: 11311^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash "Word-list_00,584,879_Russian_Spell-Check_Unknown-Quality.slv" 584879 lines read 2097152 elements in the table (21 bits) FNV1A_Hash_Tesla: 393365 373464 374534 375388 373557| 373464 [ 81232] FNV1A_Mantis: 412156 414563 411944 414678 415841| 411944 [ 74643] FNV1A_Meiyan: 383821 387854 387760 390291 387271| 383821 [ 75377] FNV1A_Jesteress: 382663 383224 381564 380962 382974| 380962 [ 75404] FNV1A_Jester: 384581^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash "Sentence-list_00,032,359_English_The_Holy_Bible.txt" 32359 lines read 65536 elements in the table (16 bits) FNV1A_Hash_Tesla: 27520 26722 27432 28257 26136| 26136 [ 6937] FNV1A_Mantis: 28386 28415 28554 28248 27951| 27951 [ 6925] FNV1A_Meiyan: 27598 27359 27334 27319 27338| 27319 [ 6897] FNV1A_Jesteress: 27888 27308 27483 27310 27274| 27274 [ 6883] FNV1A_Jester: 31040 31119 31379 30732 30596| 30596 [ 6874] FNV1A_Smaragd: 40554 40719 42560 40805 40459| 40459 [ 6849] FNV1A_Peregrine: 30687 30474 30474 31499 32991| 30474 [ 6838] FNV1A_Whiz: 32561 31988 31396 31424 31415| 31396 [ 6874] FNV1A_Nefertiti: 30534 30860 30331 30011 30143| 30011 [ 6878] FNV-1a: 60627 60952 61696 61693 61678| 60627 [ 6840] Sixtinsensitive+: 35231 35090 35459 35186 37219| 35090 [ 6839] Sixtinsensitive: 38508^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash 100MB_as_one_line.TXT 1 lines read 4 elements in the table (2 bits) FNV1A_Hash_Tesla: 194019 197848 195058 193316 193382| 193316 [ 0] FNV1A_Mantis: 234425 236411 236747 234573 234684| 234425 [ 0] FNV1A_Meiyan: 240160 240099 242438 240194 242915| 240099 [ 0] FNV1A_Jesteress: 243338 241873 239935 239735 239124| 239124 [ 0] FNV1A_Jester: 331840^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash IPS.TXT 2995394 lines read 8388608 elements in the table (23 bits) FNV1A_Hash_Tesla: 2289107 2226568 2226390 2234596 2222701| 2222701 [ 691369] FNV1A_Mantis: 2469897 2466911 2466878 2471249 2465728| 2465728 [ 481137] FNV1A_Meiyan: 2290118 2285787 2284061 2291056 2286210| 2284061 [ 593723] FNV1A_Jesteress: 2331767 2324661 2327224 2326173 2325028| 2324661 [ 691369] FNV1A_Jester: ^C D:\_KAZE_new-stuff\VivaNicolaTesla>hash googlebooks-eng-us-all-4gram-20090715-graffith_A_distinct.txt 17981107 lines read 67108864 elements in the table (26 bits) FNV1A_Hash_Tesla: 19108584 18921663 19047468 18902535 18913730| 18902535 [ 4218589] FNV1A_Mantis: 20408048 20413041 20428172 20421550 20570044| 20408048 [ 2208686] FNV1A_Meiyan: 19589642 19586573 19584081 19590689 19588464| 19584081 [ 2209364] FNV1A_Jesteress: 19482570 19662021 19476235 19490673 19499351| 19476235 [ 2208081] FNV1A_Jester: ^C D:\_KAZE_new-stuff\VivaNicolaTesla>type googlebooks-eng-us-all-4gram-20090715-graffith_A_distinct.txt ... a_bacillus_and_a a_bacillus_belonging_to a_bacillus_closely_related a_bacillus_closely_resembling a_bacillus_described_by a_bacillus_discovered_by a_bacillus_found_in a_bacillus_from_the a_bacillus_has_been a_bacillus_identical_with a_bacillus_in_the a_bacillus_isolated_from a_bacillus_known_as a_bacillus_obtained_from a_bacillus_of_the a_bacillus_or_a a_bacillus_resembling_that a_bacillus_resembling_the a_bacillus_similar_to a_bacillus_that_is a_bacillus_to_which a_bacillus_which_has a_bacillus_which_he a_bacillus_which_is a_bacillus_which_may a_bacillus_which_they a_bacillus_which_was a_bacillus_whose_growth a_bacillus_with_rounded a_back_alley_and a_back_alley_behind a_back_alley_in a_back_alley_of a_back_alley_off a_back_alley_or a_back_alley_somewhere a_back_alley_that a_back_alley_to a_back_alley_where a_back_alley_with ... D:\_KAZE_new-stuff\VivaNicolaTesla>
Album: Exilarch Lyrics: Conjure One - I Dream In Colour I look at the river But I'm thinking of the sea The past overwritten By what I hope to be I search for the essence It's my command That is the centre It's what I demand In my mind I'm standing in a glass house Looking below Don't wanna look without seeing Don't wanna touch without feeling I dream in colour, yeah I dream in colour When the world's in black and sepia tone Or in sleepy monochrome I dream in colour, yeah I dream in colour I see much further than this I see much further than this, yeah In a room with no windows And painted doors What once was my ceiling Now is the floor My landscape is changing From out of the dust It's some kind of healing Like the sun's coming up In my mind I'm standing in a glass house Looking below Don't wanna hear without listening Don't wanna talk without speaking I can see through the clouds of grey Got a window on the world I can sweep them all away Got a window on the world Don't wanna look without seeing Don't wanna touch without feeling I dream in colour, yeah I dream in colour When the world's in black and sepia tone Or in sleepy monochrome I dream in colour, yeah I dream in colour I see much further than this There is gotta be more than this, yeah ...
Album: Extraordinary Ways Lyrics: Conjure One - Forever lost So many times So many promises Heard all the lies I've heard all the things you've said Truth is like a fear Fear of heaven Truth's your only fear Fear of heaven ... Forever lost ...
Delerium - 1989 - Faces Forms And Illusions - Mecca Delerium - 1989 - Morpheus - Gaza Delerium - 1989 - Morpheus - Somnolent Delerium - 1990 - (Re-Release 1997) Syrophenikan - Fallen Idols Delerium - 1990 - Stone Tower - Aftermath Delerium - 1991 - (Re-Release 1997) Spiritual Archives - Aftermath Delerium - 1991 - (Re-Release 1997) Spiritual Archives - Sermon (Bonus Track) Delerium - 1991 - Euphoric - Decade Delerium - 1994 - (Re-Release 1997) Spheres II - Hypoxia Delerium - 1994 - Semantic Spaces - Consensual Worlds Delerium - 1994 - Semantic Spaces - Incantation Delerium - 1995 - Reflections I - Lost Passion Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - 'til The End Of Time Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - Euphoria (Firefly) Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - Forgotten Worlds Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - Remembrance Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - Silence Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - Twilight Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD1 - Wisdom Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD2 - Incantation [12'' Mix Edit] Delerium - 1997 - (Re-Release 1999) Karma Limited Edition CD2 - Silence [Sanctuary Mix] Delerium - 1997 - (Re-Release 2000) Karma German Limited Edition CD2 - Silence [Airscape Remix] (Edit) Delerium - 1997 - (Re-Release 2000) Karma German Limited Edition CD2 - Silence [Airscape Remix] Delerium - 1997 - (Re-Release 2000) Karma German Limited Edition CD2 - Silence [Dj Tiesto In Search Of Sunrise Remix] Delerium - 1997 - Karma (1st Press) - 'til The End Of Time Delerium - 1997 - Karma (1st Press) - Euphoria (Firefly) Delerium - 1997 - Karma (1st Press) - Forgotten Worlds Delerium - 1997 - Karma (1st Press) - Remembrance Delerium - 1997 - Karma (1st Press) - Silence Delerium - 1997 - Karma (1st Press) - Twilight Delerium - 1997 - Karma (1st Press) - Wisdom Delerium - 2000 - (Re-Release 2001) Poem Belgian Limited Edition CD2 - Innocente [Mr Sam's The Space Between Us Remix] (Featuring Leigh Nash) Delerium - 2000 - (Re-Release 2001) Poem Belgian Limited Edition CD2 - Silence [Dj Tiesto's In Search Of Sunrise Remix] (Featuring Sarah Mclachlan) Delerium - 2000 - (Re-Release 2001) Poem Belgian Limited Edition CD2 - Terra Firma (Featuring Aude) Delerium - 2000 - Poem Limited Edition CD1 - Innocente (Featuring Leigh Nash) Delerium - 2000 - Poem Limited Edition CD1 - Terra Firma (Featuring Aude) Delerium - 2000 - Poem Limited Edition CD1 - Underwater (Featuring Rani Kamal) Delerium - 2001 - Archives Vol 1 CD1 - Monuments Of Deceit [Faces, Forms & Illusions 1988] Delerium - 2001 - Archives Vol 1 CD1 - New Dawn [Faces, Forms & Illusions 1988] Delerium - 2001 - Archives Vol 1 CD1 - Somnolent [Morpheus 1989] Delerium - 2001 - Archives Vol 1 CD1 - Sword [Faces, Forms & Illusions 1988] Delerium - 2001 - Archives Vol 2 CD2 - Hypoxia [Spheres II 1994] Delerium - 2001 - Odyssey The Remix Collection CD1 - Silence [Dj Tiesto's In Search Of Sunrise Remix] Delerium - 2001 - Odyssey The Remix Collection CD1 - Underwater [Above And Beyond's 21st Century Mix] Delerium - 2001 - Odyssey The Remix Collection CD2 - Incantation [12'' Mix] (Edit) Delerium - 2001 - Odyssey The Remix Collection CD2 - Silence [Fade's Sanctuary Mix] Delerium - 2001 - Odyssey The Remix Collection CD2 - Underwater [Mauve's Dark Vocal Mix] Delerium - 2003 - (Re-Release) Chimera UK Limited Edition CD2 - After All [Amniotic Insomniac Remix By Adrian Shubert] (Featuring Jael) Delerium - 2003 - (Re-Release) Chimera UK Limited Edition CD2 - After All [Andrew Sega Mix] (Featuring Jael) Delerium - 2003 - (Re-Release) Chimera UK Limited Edition CD2 - After All [Satoshi Tomiie Remix] (Featuring Jael) Delerium - 2003 - (Re-Release) Chimera UK Limited Edition CD2 - Stopwatch Hearts (Featuring Emily Haines) Delerium - 2003 - After All (US Single 1) - After All [Album Edit] (Featuring Jael) Delerium - 2003 - After All (US Single 1) - After All [Amniotic Insomniac Mix By Adrian Schubert] (Featuring Jael) Delerium - 2003 - After All (US Single 1) - After All [Satoshie Tomiie Remix] (Featuring Jael) Delerium - 2003 - After All (US Single 1) - After All [Svenson & Gielen Remix] (Featuring Jael) Delerium - 2003 - Chimera Limited Edition CD1 - After All (Featuring Jael) Delerium - 2003 - Chimera Limited Edition CD1 - Fallen (Featuring Rani) Delerium - 2003 - Chimera Limited Edition CD1 - Returning (Featuring Kristy Thirsk) Delerium - 2003 - Chimera Limited Edition CD1 - Run For It (Featuring Leigh Nash) Delerium - 2003 - Chimera Limited Edition CD1 - Truly (Featuring Nerina Pallot) Delerium - 2003 - Chimera Limited Edition CD2 - After All [Andrew Sega Remix] (Featuring Jael) Delerium - 2003 - Chimera Limited Edition CD2 - Stopwatch Hearts (Featuring Emily Haines) Delerium - 2004 - The Best Of - After All (Featuring Jael) Delerium - 2004 - The Best Of - Euphoria (Firefly) (Featuring Jacqui Hunt) Delerium - 2004 - The Best Of - Incantation (Featuring Kristy Thirsk) Delerium - 2004 - The Best Of - Innocente (Falling In Love) (Featuring Leigh Nash) Delerium - 2004 - The Best Of - Remembrance (Instrumental) Delerium - 2004 - The Best Of - Run For It (Featuring Leigh Nash) Delerium - 2004 - The Best Of - Silence (Featuring Sarah Mclachlan) Delerium - 2004 - The Best Of - Terra Firma (Featuring Aude) Delerium - 2004 - The Best Of - Truly [Wise Buddah Radio Edit] (Featuring Nerina Pallot) Delerium - 2004 - The Best Of - Underwater [Above & Beyond's 21st Century Remix] (Featuring Rani) Delerium - 2006 - Nuages Du Monde - Indoctrination (Featuring Kiran Arwuhalia) Delerium - 2006 - Nuages Du Monde - Tectonic Shift Conjure One - Tears From The Moon (Album Version) Conjure One - Tears From The Moon (Hybrid Twisted On The Terrace Mix V.2) (Edit) Conjure One - Tears From The Moon (Hybrid Twisted On The Terrace Mix V.2) Conjure One - Tears From The Moon (Hybrid Twisted On The Terrace Mix) Conjure One - Tears From The Moon (Robbie Rivera Mix) Conjure One - Tears From The Moon (Tiesto In Search Of Sunrise Remix) Conjure One - Exilarch - Existential Exile Conjure One - Exilarch - I Dream In Colour Conjure One - Exilarch - Like Ice Conjure One - Exilarch - Nargis Conjure One - Exilarch - Nomadic Code Conjure One - Exilarch - Oligarch Conjure One - Exilarch - Places That Don't Exist Conjure One - Exilarch - Run For Cover Conjure One - Exilarch - The Distance Conjure One - Exilarch - Zephyr Conjure One - I Dream In Colour (Radio Edit) Conjure One - I Dream In Colour (Vegas Baby Radio Edit) Conjure One - Forever Lost Conjure One - Dying Light Enigma - 1990 - MCMXC AD - The Voice Of Enigma Enigma - 1990 - MCMXC AD - The Principles Of Lust Enigma - 1990 - MCMXC AD - Callas Went Away Enigma - 1990 - MCMXC AD - Mea Culpa Enigma - 1990 - MCMXC AD - The Voice & The Snake Enigma - 1990 - MCMXC AD - Knocking On Forbidden Doors Enigma - 1990 - MCMXC AD - Back To The Rivers Of Belief Enigma - 1993 - The Cross Of Changes - The Eyes Of Truth Enigma - 1993 - The Cross Of Changes - I Love You... I'll Kill You Enigma - 1993 - The Cross Of Changes - Age Of Loneliness (Carly's Song) Enigma - 1993 - The Cross Of Changes - Age Of Loneliness (Enigmatic Club Mix) Enigma - 1996 - Le Roi Est Mort, Vive Le Roi - Beyond The Invisible Enigma - 1996 - Le Roi Est Mort, Vive Le Roi - Shadows In Silence Enigma - 1996 - Le Roi Est Mort, Vive Le Roi - Almost Full Moon Enigma - 1996 - Le Roi Est Mort, Vive Le Roi - The Roundabout Enigma - 2000 - The Screen Behind The Mirror - The Gate Enigma - 2000 - The Screen Behind The Mirror - Push The Limits Enigma - 2000 - The Screen Behind The Mirror - Gravity Of Love Enigma - 2000 - The Screen Behind The Mirror - Smell Of Desire Enigma - 2000 - The Screen Behind The Mirror - Modern Crusaders Enigma - 2000 - The Screen Behind The Mirror - Traces (Light And Weight) Enigma - 2000 - The Screen Behind The Mirror - Endless Quest Enigma - 2000 - The Screen Behind The Mirror - Camera Obscura Enigma - 2000 - The Screen Behind The Mirror - Silence Must Be Heard Enigma - 2003 - Voyageur - Voyageur Enigma - 2003 - Voyageur - Page Of Cups Enigma - 2003 - Voyageur - Look Of Today
Lyrics: Jean Claude Ades feat. Sam Obernik - Work Of Art ... You're so beautiful, you love to give, I want more ... Lyrics: Dada, Sam Obernik, Paul Harris - Stereo Flo ... Get down, get down, get down, get it on show love and give it up What are you waiting on? Lyrics: Sam Obernik - Mr Butterfly ... i fly all night to beautify the world while you are sleeping i colour out the darkest clouds and stellify your dreams i'll be the rose in the mouth of a turtle dove cause i think you know that it's you i love i'll be the light in the tail of a fire fly we're gonna light up the sky, me and you mr butterfly any time i mess it up im gonna make it up to you my love i'll be the raindrops when the tears run dry i'm gonna fly with you my, mr you, mr high mr please what you do, mr mr mr butterfly flying out of sight flying to leave behind our loveless crimes ... Lyrics: Tim Hudson Feat. Sam Obernik - The Answer ... Question everything this aint no time to give up ... Lookin for answers, understand this, love is blind Here in the darkness, make a promise, eye to eye ... Lyrics: Huggy & Dean Newton feat. Sam Obernik - Get Lifted ... get lifted get lifted yeah live your life ... Lyrics: Sam Obernik - I Don't Love You (Club Mix) Rewind and replay the sound of space, we are erased, just woke up and i knew you always said jump and i fell, fell for you and i hurt myself, and now i'm through ... dont need no hand of destiny beggin the best of me fall (down) like i did at your feet (down) but that dont make me weak, ding ding do the extra round with me i hit the ground runnin free ...
An outstanding piece-of-art: 'Sam Obernik - I Don't Love You (Club Mix)' is nothing less than one absolutely fantastic smasher - NOT TO BE LISTEN IN QUALITY DIFFERENT THAN Extreme-Fidelity! Deep/High Density Dynamic Sound: Tomcraft Feat. Sam Obernik - The Noyz (Radio Edit) Tomcraft Feat. Sam Obernik - The Noyz (Lissat & Voltaxx Remix) Want to have a fine sound remembrance - what should I say: you don't feel the air around - volume up, forget for once 110+db volume limitations.
Viva Sam!
Solitary Man Lyrics Johnny Cash Melinda was mine, 'till the time, that I found her, holdin' Jim, and lovin' him. Then Sue came along, loved me strong, that's what I thought. Me and Sue, but that died too. Don't know that I will, but until, I can find me, a girl who'll stay, and won't play games behind me. I'll be what I am, a solitary man, a solitary man. I've had it to here, being where love's a small word, a part time thing, a paper ring. I know it's been done, havin' one, girl who loved me, right or wrong, weak or strong. Don't know that I will, but until, I can find me, the girl who'll stay, and won't play games behind me. I'll be what I am, a solitary man, a solitary man. Don't know that I will, but until, love can find me, and the girl who'll stay, and won't play games behind me. I'll be what I am, a solitary man, a solitary man, a solitary man. /SOLITARY MAN was written by Neil Diamond and first recorded and released by him in 1966. Cash's version is just perfect and he won a Grammy Award for "Best Male Vocal Peformance - Country". From the album "AMERICAN III: SOLITARY MAN"./
See these eyes so green I can stare for a thousand years Colder than the moon It's been so long And I've been putting out fire With gasoline Feel my blood enraged It's just the fear of losing you Don't you know my name Well, you been so long See these eyes so red Red like jungle burning bright Those who feel me near Pull the blinds and change their minds It's been so long Still this pulsing night A plague I call a heartbeat Just be still with me Ya wouldn't believe what I've been thru You've been so long Well it's been so long And I've been putting out fire with gasoline putting out fire with gasoline See these tears so blue An ageless heart that can never mend These tears can never dry A judgement made can never bend See these eyes so green I can stare for a thousand years Just be still with me You wouldn't believe what I've been thru You've been so long Well, it's been so long And I've been putting out fire with gasoline putting out fire with gasoline /Giorgio Moroder & David Bowie 'Cat People' OST final song - Cat People (Putting Out The Fire) LYRICS/ ... Time will crawl Till the 21st century lose ... I know a government man He was as blind as the moon and he He saw the sun in the night He took a top-gun pilot and he He made him fly thru a hole Till he grew real old and he And he never came down He just flew till he burst ... /David Bowie, 'Time Will Crawl' Lyrics/ (Hallo) Spaceboy, you're sleepy now Your silhouette (is) so stationary You're released but your custody calls And I want to be free Don't you want to be free Do you like girls or boys It's confusing these days But Moondust will cover you Cover you This chaos is killing me So bye bye love Yeah bye bye love Bye bye love Yeah bye bye love This chaos is killing me And the chaos is calling me Yeah bye bye love This chaos is killing me [x2] Yeah bye bye love Bye bye love Good time love Be sweet sweet dove Bye bye spaceboy Bye bye love Moondust will cover you/me ... /David Bowie, 'Hallo Spaceboy' Lyrics/A post of mine on http://forum.thefreedictionary.com/:
For reference: www.sanmayce.com/Fastest_Hash/index.html#GAMERA
The root page contains a brief 'GAMERA' overview: http://www.sanmayce.com/index.php#Section13Level
Country (131), Region (595), City (2124) : Areas in total (2375) | Visitors (13936) |
- (in total) | 1104 |
-, -, - | (+65) 1104 |
Afghanistan (in total) | 1 |
Afghanistan, Kabol, Kabul | 1 |
Albania (in total) | 3 |
Albania, -, - | 2 |
Albania, Tirane, Tirane | 1 |
Algeria (in total) | 10 |
Algeria, -, - | 3 |
Algeria, Alger, Algiers | (+1) 7 |
Andorra (in total) | 1 |
Andorra, Andorra La Vella, Andorra La Vella | 1 |
Argentina (in total) | 89 |
Argentina, -, - | 10 |
Argentina, Buenos Aires, Berazategui | 2 |
Argentina, Buenos Aires, Ezeiza | 1 |
Argentina, Buenos Aires, Haedo | 1 |
Argentina, Buenos Aires, La Plata | 2 |
Argentina, Buenos Aires, Mar Del Plata | 2 |
Argentina, Buenos Aires, San Isidro | 1 |
Argentina, Buenos Aires, Tres Arroyos | 1 |
Argentina, Corrientes, Paso De Los Libres | 1 |
Argentina, Distrito Federal, Buenos Aires | (+1) 59 |
Argentina, Entre Rios, Paraná | 1 |
Argentina, Mendoza, Mendoza | 1 |
Argentina, Santa Fe, Rosario | 4 |
Argentina, Santa Fe, Santa Fe | 3 |
Armenia (in total) | 3 |
Armenia, Yerevan, Yerevan | 3 |
Australia (in total) | 153 |
Australia, -, - | 13 |
Australia, Australian Capital Territory, Canberra | 4 |
Australia, New South Wales, Bondi | 1 |
Australia, New South Wales, Lismore | 1 |
Australia, New South Wales, Liverpool | 1 |
Australia, New South Wales, Mona Vale | 1 |
Australia, New South Wales, Parramatta | 2 |
Australia, New South Wales, Pyrmont | 1 |
Australia, New South Wales, Springwood | 1 |
Australia, New South Wales, Sydney | 42 |
Australia, Queensland, Brisbane | (+1) 21 |
Australia, Queensland, Gold Coast | 4 |
Australia, South Australia, Adelaide | 4 |
Australia, Tasmania, Hobart | 1 |
Australia, Victoria, Geelong | 1 |
Australia, Victoria, Melbourne | 42 |
Australia, Victoria, Wodonga | 1 |
Australia, Western Australia, Perth | 12 |
Austria (in total) | 57 |
Austria, -, - | (+1) 4 |
Austria, Niederosterreich, Baden | 1 |
Austria, Oberosterreich, Linz | 3 |
Austria, Oberosterreich, Steyr | 2 |
Austria, Salzburg, Salzburg | 4 |
Austria, Steiermark, Graz | 3 |
Austria, Tirol, Innsbruck | 5 |
Austria, Wien, Vienna | 31 |
Austria, Wien, Wien | 4 |
Azerbaijan (in total) | 5 |
Azerbaijan, -, - | 2 |
Azerbaijan, Abseron, Baku | 3 |
Bahrain (in total) | 2 |
Bahrain, Al Manamah, Manama | 2 |
Bangladesh (in total) | 4 |
Bangladesh, -, - | 1 |
Bangladesh, Dhaka, Dhaka | 3 |
Belarus (in total) | 33 |
Belarus, Minsk, Minsk | (+1) 33 |
Belgium (in total) | 87 |
Belgium, -, - | 17 |
Belgium, Antwerpen, Antwerp | 9 |
Belgium, Antwerpen, Berlaar | 1 |
Belgium, Antwerpen, Herentals | 1 |
Belgium, Antwerpen, Lierre | 2 |
Belgium, Antwerpen, Mechelen | 7 |
Belgium, Antwerpen, Mortsel | 4 |
Belgium, Brabant Wallon, Grimbergen | 2 |
Belgium, Brabant Wallon, Vilvoorde | 2 |
Belgium, Brussels Hoofdstedelijk Gewest, Brussels | (+1) 20 |
Belgium, Brussels Hoofdstedelijk Gewest, Leuven | 1 |
Belgium, Hainaut, Charleroi | 1 |
Belgium, Hainaut, La Louvière | 1 |
Belgium, Liege, Liege | 1 |
Belgium, Limburg, Hasselt | 3 |
Belgium, Namur, Rhisnes | 1 |
Belgium, Oost-Vlaanderen, Aalst | 1 |
Belgium, Oost-Vlaanderen, Gent | 8 |
Belgium, Oost-Vlaanderen, Lochristi | 1 |
Belgium, Oost-Vlaanderen, Maldegem | 2 |
Belgium, Oost-Vlaanderen, Oudenaarde | 1 |
Belgium, West-Vlaanderen, Brugge | 1 |
Bhutan (in total) | 1 |
Bhutan, -, - | 1 |
Bolivia (in total) | 4 |
Bolivia, Plurinational State Of, Plurinational State Of, Cochabamba | 1 |
Bolivia, Plurinational State Of, Plurinational State Of, La Paz | 1 |
Bolivia, Plurinational State Of, Plurinational State Of, Oruro | 1 |
Bolivia, Plurinational State Of, Plurinational State Of, Santa Cruz | 1 |
Bosnia And Herzegovina (in total) | 14 |
Bosnia And Herzegovina, -, - | 1 |
Bosnia And Herzegovina, Federation Of Bosnia And Herzegovina, Sarajevo | 10 |
Bosnia And Herzegovina, Republika Srpska, Banja Luka | 2 |
Bosnia And Herzegovina, Republika Srpska, Gradiska | 1 |
Brazil (in total) | 249 |
Brazil, -, - | (+1) 136 |
Brazil, Bahia, Salvador | 2 |
Brazil, Ceara, Fortaleza | 1 |
Brazil, Distrito Federal, Brasília | 6 |
Brazil, Mato Grosso Do Sul, Campo Grande | 1 |
Brazil, Minas Gerais, Belo Horizonte | 10 |
Brazil, Minas Gerais, Nova Lima | 1 |
Brazil, Minas Gerais, Uberlândia | 4 |
Brazil, Parana, Curitiba | 6 |
Brazil, Parana, Foz Do Iguaçu | 1 |
Brazil, Parana, Londrina | 2 |
Brazil, Pernambuco, Recife | 1 |
Brazil, Rio De Janeiro, Niterói | 2 |
Brazil, Rio De Janeiro, Nova Iguaçu | 2 |
Brazil, Rio De Janeiro, Rio De Janeiro | 8 |
Brazil, Rio De Janeiro, São Gonçalo | 2 |
Brazil, Rio De Janeiro, Volta Redonda | 1 |
Brazil, Rio Grande Do Norte, Natal | 1 |
Brazil, Rio Grande Do Sul, Caxias Do Sul | 2 |
Brazil, Rio Grande Do Sul, Pelotas | 4 |
Brazil, Rio Grande Do Sul, Porto Alegre | 1 |
Brazil, Rio Grande Do Sul, São Leopoldo | 1 |
Brazil, Santa Catarina, Florianópolis | 9 |
Brazil, Sao Paulo, Araraquara | 1 |
Brazil, Sao Paulo, Bragança Paulista | 3 |
Brazil, Sao Paulo, Campinas | 2 |
Brazil, Sao Paulo, Ribeirão Preto | 1 |
Brazil, Sao Paulo, Santos | 1 |
Brazil, Sao Paulo, São Carlos | 2 |
Brazil, Sao Paulo, São Paulo | (+1) 34 |
Brazil, Sao Paulo, Tremembe | 1 |
Bulgaria (in total) | 262 |
Bulgaria, -, - | (+2) 63 |
Bulgaria, Burgas, Burgas | 9 |
Bulgaria, Burgas, Sliven | 2 |
Bulgaria, Lovech, Troyan | 1 |
Bulgaria, Plovdiv, Plovdiv | 9 |
Bulgaria, Razgrad, Ruse | 5 |
Bulgaria, Sofiya, Blagoevgrad | 1 |
Bulgaria, Sofiya, Sofia | (+3) 152 |
Bulgaria, Stara Zagora, Kazanlak | 1 |
Bulgaria, Varna, Varna | 19 |
Cambodia (in total) | 3 |
Cambodia, Phnum Penh, Phnom Penh | 3 |
Canada (in total) | 450 |
Canada, -, - | 13 |
Canada, Alberta, Calgary | 18 |
Canada, Alberta, Camrose | 1 |
Canada, Alberta, Cold Lake | 1 |
Canada, Alberta, Edmonton | 14 |
Canada, Alberta, Edson | 1 |
Canada, Alberta, Lethbridge | 1 |
Canada, Alberta, Red Deer | 2 |
Canada, Alberta, Sherwood Park | 1 |
Canada, British Columbia, Abbotsford | 1 |
Canada, British Columbia, Burnaby | 14 |
Canada, British Columbia, Campbell River | 1 |
Canada, British Columbia, Kelowna | 2 |
Canada, British Columbia, Nanaimo | 1 |
Canada, British Columbia, North Vancouver | 2 |
Canada, British Columbia, Parksville | 1 |
Canada, British Columbia, Penticton | 1 |
Canada, British Columbia, Prince George | 4 |
Canada, British Columbia, Richmond | 4 |
Canada, British Columbia, Saanichton | 1 |
Canada, British Columbia, Surrey | 2 |
Canada, British Columbia, Vancouver | 21 |
Canada, British Columbia, Victoria | 10 |
Canada, Manitoba, Thompson | 1 |
Canada, Manitoba, Winnipeg | 6 |
Canada, New Brunswick, Fredericton | 1 |
Canada, New Brunswick, Moncton | 3 |
Canada, Newfoundland And Labrador, St. John's | 1 |
Canada, Nova Scotia, Antigonish | 1 |
Canada, Nova Scotia, Halifax | 7 |
Canada, Nova Scotia, Kentville | 1 |
Canada, Nova Scotia, Truro | 1 |
Canada, Ontario, Ajax | 2 |
Canada, Ontario, Aurora | 1 |
Canada, Ontario, Bancroft | 1 |
Canada, Ontario, Brampton | 6 |
Canada, Ontario, Burlington | 1 |
Canada, Ontario, Cambridge | 1 |
Canada, Ontario, Cobourg | 1 |
Canada, Ontario, Durham | 1 |
Canada, Ontario, Etobicoke | 1 |
Canada, Ontario, Guelph | 2 |
Canada, Ontario, Hamilton | 3 |
Canada, Ontario, Huntsville | 1 |
Canada, Ontario, Kingston | 2 |
Canada, Ontario, Kitchener | 9 |
Canada, Ontario, London | 8 |
Canada, Ontario, Markham | 3 |
Canada, Ontario, Midland | 1 |
Canada, Ontario, Milton | 2 |
Canada, Ontario, Mississauga | 4 |
Canada, Ontario, Niagara Falls | 2 |
Canada, Ontario, North Bay | 1 |
Canada, Ontario, Oakville | 52 |
Canada, Ontario, Oshawa | 1 |
Canada, Ontario, Ottawa | 34 |
Canada, Ontario, Peterborough | 1 |
Canada, Ontario, Richmond Hill | 4 |
Canada, Ontario, Scarborough | 3 |
Canada, Ontario, Thornhill | 3 |
Canada, Ontario, Timmins | 2 |
Canada, Ontario, Toronto | 51 |
Canada, Ontario, Waterloo | 31 |
Canada, Ontario, Whitby | 2 |
Canada, Ontario, Windsor | 4 |
Canada, Ontario, Woodbridge | 3 |
Canada, Prince Edward Island, Charlottetown | 1 |
Canada, Quebec, Gatineau | 2 |
Canada, Quebec, Joliette | 1 |
Canada, Quebec, Laval | 2 |
Canada, Quebec, Lévis | 1 |
Canada, Quebec, Montreal | (+1) 48 |
Canada, Quebec, Quebec | 5 |
Canada, Quebec, Verdun | 1 |
Canada, Saskatchewan, Regina | 3 |
Canada, Saskatchewan, Saskatoon | 2 |
Canada, Saskatchewan, Yorkton | 1 |
Cape Verde (in total) | 1 |
Cape Verde, Sao Vicente, Mindelo | 1 |
Cayman Islands (in total) | 1 |
Cayman Islands, -, - | 1 |
Chile (in total) | 47 |
Chile, -, - | 5 |
Chile, Antofagasta, Antofagasta | 1 |
Chile, Araucania, Temuco | 1 |
Chile, Bio-Bio, Concepcion | 1 |
Chile, Los Lagos, Valdivia | 1 |
Chile, Region Metropolitana, Santiago | 36 |
Chile, Valparaiso, Viña Del Mar | 2 |
China (in total) | 374 |
China, -, - | (+1) 3 |
China, Anhui, Hefei | 1 |
China, Beijing, Beijing | (+14) 288 |
China, Fujian, Fuzhou | 1 |
China, Guangdong, Guangdong | 2 |
China, Guangdong, Guangzhou | 17 |
China, Guangdong, Shenzhen | 15 |
China, Guangxi, Nanning | 2 |
China, Hebei, Hebei | 1 |
China, Henan, Zhengzhou | 1 |
China, Hubei, Wuhan | 6 |
China, Hunan, Changsha | 3 |
China, Jiangsu, Nanjing | 2 |
China, Jilin, Jilin | 1 |
China, Liaoning, Shenyang | 3 |
China, Shaanxi, Xian | 1 |
China, Shandong, Jinan | 1 |
China, Shanghai, Shanghai | 11 |
China, Sichuan, Chengdu | (+1) 3 |
China, Tianjin, Tianjin | (+2) 8 |
China, Zhejiang, Hangzhou | 3 |
China, Zhejiang, Wenzhou | 1 |
Colombia (in total) | 36 |
Colombia, -, - | 8 |
Colombia, Antioquia, Medellin | 2 |
Colombia, Atlantico, Barranquilla | 1 |
Colombia, Boyaca, Sogamoso | 1 |
Colombia, Cauca, Popayan | 1 |
Colombia, Distrito Especial, Madrid | 1 |
Colombia, Distrito Especial, Santafé De Bogotá | 18 |
Colombia, Norte De Santander, Cucuta | 1 |
Colombia, Valle Del Cauca, Cali | 3 |
Costa Rica (in total) | 4 |
Costa Rica, Cartago, Cartago | 1 |
Costa Rica, San Jose, San Jose | 3 |
Croatia (in total) | 37 |
Croatia, -, - | 5 |
Croatia, Dubrovacko-Neretvanska, Dubrovnik | 1 |
Croatia, Grad Zagreb, Zagreb | 27 |
Croatia, Istarska, Pula | 1 |
Croatia, Osjecko-Baranjska, Osijek | 1 |
Croatia, Primorsko-Goranska, Rijeka | 1 |
Croatia, Splitsko-Dalmatinska, Split | 1 |
Cuba (in total) | 1 |
Cuba, -, - | 1 |
Cyprus (in total) | 6 |
Cyprus, -, - | 1 |
Cyprus, Larnaca, Larnaca | 1 |
Cyprus, Limassol, Limassol | 1 |
Cyprus, Nicosia, Nicosia | 3 |
Czech Republic (in total) | 73 |
Czech Republic, -, - | 12 |
Czech Republic, Hlavni Mesto Praha, Prague | (+1) 44 |
Czech Republic, Jihomoravsky Kraj, Brno | 4 |
Czech Republic, Karlovarsky Kraj, Karlovy Vary | 1 |
Czech Republic, Moravskoslezsky Kraj, Opava | 1 |
Czech Republic, Moravskoslezsky Kraj, Ostrava | 4 |
Czech Republic, Pardubicky Kraj, Pardubice | 2 |
Czech Republic, Plzensky Kraj, Plzen | 3 |
Czech Republic, Ustecky Kraj, Teplice | 2 |
Denmark (in total) | 62 |
Denmark, -, - | 10 |
Denmark, Arhus, Grenaa | 1 |
Denmark, Arhus, Silkeborg | 1 |
Denmark, Arhus, Århus | 3 |
Denmark, Frederiksborg, Allerød | 1 |
Denmark, Frederiksborg, Frederikssund | 1 |
Denmark, Frederiksborg, Hørsholm | 1 |
Denmark, Fyn, Odense | 4 |
Denmark, Fyn, Svendborg | 1 |
Denmark, Kobenhavn, Copenhagen | (+1) 26 |
Denmark, Nordjylland, Frederikshavn | 1 |
Denmark, Ribe, Grindsted | 1 |
Denmark, Roskilde, Roskilde | 1 |
Denmark, Sonderjylland, Aabenraa | 1 |
Denmark, Vejle, Fredericia | 1 |
Denmark, Vejle, Horsens | 2 |
Denmark, Vejle, Vejle | 2 |
Denmark, Vestsjalland, Herning | 1 |
Denmark, Vestsjalland, Holbaek | 1 |
Denmark, Vestsjalland, Slagelse | 1 |
Denmark, Vestsjalland, Viborg | 1 |
Dominica (in total) | 1 |
Dominica, Saint George, Roseau | 1 |
Dominican Republic (in total) | 6 |
Dominican Republic, -, - | 1 |
Dominican Republic, Distrito Nacional, Santo Domingo | 4 |
Dominican Republic, Santiago, Santiago | 1 |
Ecuador (in total) | 6 |
Ecuador, Pichincha, Quito | 6 |
Egypt (in total) | 52 |
Egypt, -, - | 15 |
Egypt, Al Qahirah, Cairo | (+1) 37 |
El Salvador (in total) | 5 |
El Salvador, San Salvador, San Salvador | 5 |
Estonia (in total) | 29 |
Estonia, Harjumaa, Tallinn | 21 |
Estonia, Parnumaa, Parnu | 1 |
Estonia, Tartumaa, Tartu | (+1) 7 |
Ethiopia (in total) | 2 |
Ethiopia, -, - | 1 |
Ethiopia, Adis Abeba, Addis Ababa | 1 |
Finland (in total) | 95 |
Finland, -, - | 15 |
Finland, Eastern Finland, Joensuu | 3 |
Finland, Eastern Finland, Kuopio | 2 |
Finland, Eastern Finland, Mikkeli | 1 |
Finland, Lapland, Kemi | 1 |
Finland, Lapland, Rovaniemi | 1 |
Finland, Oulu, Oulu | 3 |
Finland, Oulu, Salo | 1 |
Finland, Southern Finland, Espoo | 3 |
Finland, Southern Finland, Heinola | 1 |
Finland, Southern Finland, Helsinki | (+2) 43 |
Finland, Southern Finland, Kouvola | 1 |
Finland, Southern Finland, Lahti | 1 |
Finland, Southern Finland, Porvoo | 1 |
Finland, Southern Finland, Tampere | 3 |
Finland, Southern Finland, Vantaa | (+1) 4 |
Finland, Western Finland, Pori | 1 |
Finland, Western Finland, Rauma | 1 |
Finland, Western Finland, Seinajoki | 1 |
Finland, Western Finland, Turku | 6 |
Finland, Western Finland, Vaasa | 2 |
France (in total) | 349 |
France, -, - | (+1) 67 |
France, Alsace, Colmar | 1 |
France, Alsace, Strasbourg | 5 |
France, Aquitaine, Bordeaux | (+1) 3 |
France, Aquitaine, Mérignac | 1 |
France, Aquitaine, Pau | 2 |
France, Auvergne, Clermont-Ferrand | 2 |
France, Basse-Normandie, Caen | 1 |
France, Bourgogne, Dijon | 3 |
France, Bretagne, Brest | 2 |
France, Bretagne, Rennes | 2 |
France, Centre, Tours | 3 |
France, Champagne-Ardenne, Troyes | 1 |
France, Haute-Normandie, Rouen (NEW) | 1 |
France, Ile-De-France, Boulogne-Billancourt | 3 |
France, Ile-De-France, Charenton-Le-Pont | 1 |
France, Ile-De-France, Issy-Les-Moulineaux | 2 |
France, Ile-De-France, Levallois-Perret | 2 |
France, Ile-De-France, Montgeron | 1 |
France, Ile-De-France, Montmorency (NEW) | 1 |
France, Ile-De-France, Nanterre | 2 |
France, Ile-De-France, Paris | (+5) 170 |
France, Ile-De-France, Versailles | 5 |
France, Languedoc-Roussillon, Beziers | 1 |
France, Languedoc-Roussillon, Carcassonne | 1 |
France, Languedoc-Roussillon, Montpellier | 4 |
France, Languedoc-Roussillon, Perpignan | 2 |
France, Limousin, Limoges | 2 |
France, Lorraine, Nancy | 2 |
France, Midi-Pyrenees, Toulouse | 4 |
France, Nord-Pas-De-Calais, Calais | 1 |
France, Nord-Pas-De-Calais, Chamonix | 2 |
France, Nord-Pas-De-Calais, Lille | 6 |
France, Pays De La Loire, Laval | 1 |
France, Pays De La Loire, Nantes | 3 |
France, Picardie, Amiens | 1 |
France, Picardie, Compiegne | 1 |
France, Provence-Alpes-Cote D'azur, Aix-En-Provence | 1 |
France, Provence-Alpes-Cote D'azur, Antibes | 2 |
France, Provence-Alpes-Cote D'azur, Avignon | 1 |
France, Provence-Alpes-Cote D'azur, Marseille | 8 |
France, Provence-Alpes-Cote D'azur, Nice | 9 |
France, Provence-Alpes-Cote D'azur, Orange | 1 |
France, Rhone-Alpes, Chambery | 2 |
France, Rhone-Alpes, Grenoble | 3 |
France, Rhone-Alpes, Lyon | 8 |
France, Rhone-Alpes, Villeurbanne | 2 |
Georgia (in total) | 23 |
Georgia, -, - | (+2) 23 |
Germany (in total) | 606 |
Germany, -, - | (+5) 110 |
Germany, Baden-Württemberg, Aalen | 2 |
Germany, Baden-Württemberg, Bad Wildbad | 1 |
Germany, Baden-Württemberg, Baden-Baden | 1 |
Germany, Baden-Württemberg, Esslingen | 1 |
Germany, Baden-Württemberg, Freiburg Im Breisgau | 1 |
Germany, Baden-Württemberg, Friedrichshafen | 1 |
Germany, Baden-Württemberg, Heilbronn | 2 |
Germany, Baden-Württemberg, Karlsruhe | (+1) 7 |
Germany, Baden-Württemberg, Kornwestheim | 1 |
Germany, Baden-Württemberg, Leinfelden-Echterdingen | 1 |
Germany, Baden-Württemberg, Leonberg | 1 |
Germany, Baden-Württemberg, Mannheim | 5 |
Germany, Baden-Württemberg, Meersburg | 1 |
Germany, Baden-Württemberg, Pforzheim | 2 |
Germany, Baden-Württemberg, Reutlingen | 2 |
Germany, Baden-Württemberg, Stuttgart | 10 |
Germany, Baden-Württemberg, Uberlingen | 1 |
Germany, Baden-Württemberg, Ulm | 2 |
Germany, Baden-Württemberg, Walldorf | 1 |
Germany, Bayern, Aschaffenburg | 1 |
Germany, Bayern, Augsburg | 5 |
Germany, Bayern, Bamberg | 2 |
Germany, Bayern, Burghausen | 1 |
Germany, Bayern, Coburg | 1 |
Germany, Bayern, Dachau | 1 |
Germany, Bayern, Erlangen | 3 |
Germany, Bayern, Feuchtwangen | 1 |
Germany, Bayern, Gunzenhausen | 7 |
Germany, Bayern, Helmbrechts | 1 |
Germany, Bayern, Munich | (+1) 23 |
Germany, Bayern, Nürnberg | 4 |
Germany, Bayern, Passau | 1 |
Germany, Bayern, Regensburg | 2 |
Germany, Bayern, Weiden | 1 |
Germany, Bayern, Wurzburg | 1 |
Germany, Berlin, Berlin | (+3) 185 |
Germany, Brandenburg, Potsdam | 2 |
Germany, Bremen, Bremen | 5 |
Germany, Bremen, Bremerhaven | 1 |
Germany, Hamburg, Hamburg | (+1) 37 |
Germany, Hessen, Bad Homburg | 1 |
Germany, Hessen, Bensheim | 1 |
Germany, Hessen, Darmstadt | 1 |
Germany, Hessen, Frankfurt | 15 |
Germany, Hessen, Fulda | 1 |
Germany, Hessen, Gießen | 2 |
Germany, Hessen, Gladenbach | 1 |
Germany, Hessen, Hanau | 3 |
Germany, Hessen, Idstein | 1 |
Germany, Hessen, Kassel | 2 |
Germany, Hessen, Lampertheim | 4 |
Germany, Hessen, Marburg | 2 |
Germany, Hessen, Oberursel | 2 |
Germany, Hessen, Offenbach | 1 |
Germany, Hessen, Wiesbaden | 3 |
Germany, Mecklenburg-Vorpommern, Rostock | 1 |
Germany, Niedersachsen, Emden | 2 |
Germany, Niedersachsen, Garbsen | 1 |
Germany, Niedersachsen, Göttingen | 2 |
Germany, Niedersachsen, Hameln | 1 |
Germany, Niedersachsen, Meppen | 1 |
Germany, Niedersachsen, Nienburg | 1 |
Germany, Niedersachsen, Oldenburg | 1 |
Germany, Niedersachsen, Osnabruck | 6 |
Germany, Nordrhein-Westfalen, Aachen | 1 |
Germany, Nordrhein-Westfalen, Bielefeld | 2 |
Germany, Nordrhein-Westfalen, Bochum | 9 |
Germany, Nordrhein-Westfalen, Bonn | 4 |
Germany, Nordrhein-Westfalen, Cologne | (+1) 9 |
Germany, Nordrhein-Westfalen, Dortmund | (+1) 9 |
Germany, Nordrhein-Westfalen, Dusseldorf | 1 |
Germany, Nordrhein-Westfalen, Essen | 9 |
Germany, Nordrhein-Westfalen, Gelsenkirchen | 2 |
Germany, Nordrhein-Westfalen, Guetersloh | 1 |
Germany, Nordrhein-Westfalen, Herne | 1 |
Germany, Nordrhein-Westfalen, Hilden | 2 |
Germany, Nordrhein-Westfalen, Kamp-Lintfort | 1 |
Germany, Nordrhein-Westfalen, Kempen | 1 |
Germany, Nordrhein-Westfalen, Koeln | 2 |
Germany, Nordrhein-Westfalen, Krefeld | 2 |
Germany, Nordrhein-Westfalen, Lengerich | 1 |
Germany, Nordrhein-Westfalen, Luedenscheid | 1 |
Germany, Nordrhein-Westfalen, Minden | 2 |
Germany, Nordrhein-Westfalen, Munster | 2 |
Germany, Nordrhein-Westfalen, Mönchengladbach | 2 |
Germany, Nordrhein-Westfalen, Paderborn | 3 |
Germany, Nordrhein-Westfalen, Ratingen | 1 |
Germany, Nordrhein-Westfalen, Siegen | 1 |
Germany, Nordrhein-Westfalen, Solingen | 2 |
Germany, Nordrhein-Westfalen, Viersen | 2 |
Germany, Nordrhein-Westfalen, Willich | 1 |
Germany, Nordrhein-Westfalen, Wuppertal | 5 |
Germany, Rheinland-Pfalz, Kaiserslautern | 1 |
Germany, Rheinland-Pfalz, Koblenz | 2 |
Germany, Rheinland-Pfalz, Mainz | (+1) 3 |
Germany, Rheinland-Pfalz, Worms | 1 |
Germany, Saarland, Homburg | 1 |
Germany, Saarland, Saarbrucken (NEW) | 1 |
Germany, Sachsen, Dresden | 3 |
Germany, Sachsen, Leipzig | 11 |
Germany, Sachsen-Anhalt, Magdeburg | 2 |
Germany, Schleswig-Holstein, Kiel | 1 |
Germany, Thuringen, Erfurt | 2 |
Germany, Thuringen, Jena | (+2) 4 |
Germany, Thuringen, Weimar | 1 |
Gibraltar (in total) | 1 |
Gibraltar, Gibraltar, Gibraltar | 1 |
Greece (in total) | 73 |
Greece, -, - | 7 |
Greece, Akhaia, Patras | 1 |
Greece, Attiki, Athens | (+1) 48 |
Greece, Attiki, Piraeus | 3 |
Greece, Iraklion, Irakleion (NEW) | 1 |
Greece, Messinia, Kalamata | 1 |
Greece, Thessaloniki, Thessaloniki | 12 |
Greenland (in total) | 1 |
Greenland, Vestgronland, Nuuk | 1 |
Guatemala (in total) | 9 |
Guatemala, -, - | 2 |
Guatemala, Guatemala, Guatemala | 7 |
Honduras (in total) | 2 |
Honduras, -, - | 1 |
Honduras, Atlantida, La Ceiba | 1 |
Hong Kong (in total) | 77 |
Hong Kong, -, - | 27 |
Hong Kong, Hong Kong (Sar), Hong Kong | (+1) 48 |
Hong Kong, Hong Kong (Sar), Kowloon | 2 |
Hungary (in total) | 77 |
Hungary, -, - | 6 |
Hungary, Baranya, Pecs | 1 |
Hungary, Borsod-Abauj-Zemplen, Miskolc | 1 |
Hungary, Budapest, Budapest | (+1) 55 |
Hungary, Csongrad, Szeged | 1 |
Hungary, Gyor, Gyor | 1 |
Hungary, Hajdu-Bihar, Debrecen | 2 |
Hungary, Jasz-Nagykun-Szolnok, Szolnok | 3 |
Hungary, Komarom-Esztergom, Esztergom | 1 |
Hungary, Pest, Nagykoros | 4 |
Hungary, Tolna, Szekszard | 1 |
Hungary, Zala, Zalaegerszeg | 1 |
Iceland (in total) | 5 |
Iceland, Reykjavik, Reykjavík | 5 |
India (in total) | 267 |
India, -, - | 31 |
India, Andhra Pradesh, Guntur | 1 |
India, Andhra Pradesh, Hyderabad | 9 |
India, Andhra Pradesh, Kakinada | 1 |
India, Andhra Pradesh, Vijayawada | 2 |
India, Assam, Noida | 1 |
India, Chandigarh, Chandigarh | 5 |
India, Delhi, Delhi | 12 |
India, Delhi, New Delhi | 73 |
India, Gujarat, Ahmedabad | 3 |
India, Gujarat, Rajkot | 1 |
India, Gujarat, Surat | 4 |
India, Haryana, Gurgaon | 3 |
India, Karnataka, Bangalore | (+1) 25 |
India, Karnataka, Belgaum | 1 |
India, Karnataka, Mangalore | 1 |
India, Kerala, Cochin | 1 |
India, Kerala, Kozhikode | 1 |
India, Kerala, Thrissur | 1 |
India, Madhya Pradesh, Bhopal | 2 |
India, Madhya Pradesh, Indore | 4 |
India, Maharashtra, Amravati | 1 |
India, Maharashtra, Mumbai | (+1) 35 |
India, Maharashtra, Nagpur | 3 |
India, Maharashtra, Pune | (+1) 9 |
India, Maharashtra, Sangli | 1 |
India, Maharashtra, Vasai | 1 |
India, Punjab, Amritsar | 1 |
India, Punjab, Jalandhar | 1 |
India, Punjab, Ludhiana | 2 |
India, Rajasthan, Jaipur | 2 |
India, Tamil Nadu, Chennai | 16 |
India, Tamil Nadu, Erode | 1 |
India, Tamil Nadu, Salem | 1 |
India, Tamil Nadu, Tiruchirappalli | 1 |
India, West Bengal, Calcutta | 9 |
India, West Bengal, Durgapur | 1 |
Indonesia (in total) | 109 |
Indonesia, -, - | 23 |
Indonesia, Bali, Denpasar | 2 |
Indonesia, Banten, Tangerang | 3 |
Indonesia, Jakarta Raya, Jakarta | 55 |
Indonesia, Jawa Barat, Bandung | 5 |
Indonesia, Jawa Barat, Bogor | 1 |
Indonesia, Jawa Tengah, Semarang | 1 |
Indonesia, Jawa Timur, Surabaya | 7 |
Indonesia, Kalimantan Barat, Pontianak | 2 |
Indonesia, Kalimantan Timur, Samarinda | 1 |
Indonesia, Riau, Pakanbaru | 1 |
Indonesia, Sulawesi Selatan, Ujung Pandang | (+1) 2 |
Indonesia, Sumatera Selatan, Palembang | 2 |
Indonesia, Sumatera Utara, Medan | 4 |
Iran (in total) | 13 |
Iran, Islamic Republic Of, Islamic Republic Of, - | 5 |
Iran, Islamic Republic Of, Islamic Republic Of, Azarbayjan-E Bakhtari | 1 |
Iran, Islamic Republic Of, Islamic Republic Of, Khorasan | 1 |
Iran, Islamic Republic Of, Islamic Republic Of, Tehran | 6 |
Iraq (in total) | 1 |
Iraq, -, - | 1 |
Ireland (in total) | 31 |
Ireland, -, - | 1 |
Ireland, Cork, Cork | 3 |
Ireland, Dublin, Dublin | 20 |
Ireland, Galway, Galway | 4 |
Ireland, Limerick, Limerick | 1 |
Ireland, Waterford, Waterford | 2 |
Israel (in total) | 61 |
Israel, -, - | 13 |
Israel, Hamerkaz, Modiin | 1 |
Israel, Hamerkaz, Petah Tiqva | 1 |
Israel, Hefa, Haifa | 1 |
Israel, Tel Aviv, Bat Yam | 1 |
Israel, Tel Aviv, Givatayim | 1 |
Israel, Tel Aviv, Herzliyya | 2 |
Israel, Tel Aviv, Holon | 1 |
Israel, Tel Aviv, Ono | 1 |
Israel, Tel Aviv, Ramat Gan | 2 |
Israel, Tel Aviv, Ramat Hasharon | 1 |
Israel, Tel Aviv, Rishon Le Zion | 2 |
Israel, Tel Aviv, Tel Aviv | 33 |
Israel, Yerushalayim, Jerusalem | 1 |
Italy (in total) | 303 |
Italy, -, - | 33 |
Italy, Abruzzi, Pescara | 5 |
Italy, Basilicata, Matera | 1 |
Italy, Basilicata, Potenza | 1 |
Italy, Calabria, Cosenza | 1 |
Italy, Calabria, Crotone | 1 |
Italy, Calabria, Lamezia Terme | 2 |
Italy, Campania, Caserta | 1 |
Italy, Campania, Napoli | 3 |
Italy, Emilia-Romagna, Bologna | 4 |
Italy, Emilia-Romagna, Cesena | 2 |
Italy, Emilia-Romagna, Forli | 1 |
Italy, Emilia-Romagna, Modena | 3 |
Italy, Emilia-Romagna, Parma | 3 |
Italy, Emilia-Romagna, Piacenza | 2 |
Italy, Emilia-Romagna, Rimini | 4 |
Italy, Friuli-Venezia Giulia, Pordenone | 2 |
Italy, Friuli-Venezia Giulia, Trieste | 4 |
Italy, Friuli-Venezia Giulia, Udine | 2 |
Italy, Lazio, Latina | 1 |
Italy, Lazio, Rome | (+1) 66 |
Italy, Liguria, Genoa | 2 |
Italy, Liguria, Genova | 3 |
Italy, Liguria, La Spezia | 1 |
Italy, Lombardia, Bergamo | 9 |
Italy, Lombardia, Brescia | 2 |
Italy, Lombardia, Cologno Monzese | 1 |
Italy, Lombardia, Como | 1 |
Italy, Lombardia, Milano | 41 |
Italy, Lombardia, Sondrio | 1 |
Italy, Lombardia, Vimercate | 1 |
Italy, Marche, Ancona | 1 |
Italy, Marche, Ascoli Piceno | 4 |
Italy, Marche, Pesaro | 1 |
Italy, Molise, Campobasso | 1 |
Italy, Piemonte, Ivrea | 7 |
Italy, Piemonte, Novara | 3 |
Italy, Piemonte, Torino | 3 |
Italy, Piemonte, Torre Pellice | 1 |
Italy, Piemonte, Trecate | 1 |
Italy, Piemonte, Turin | 12 |
Italy, Puglia, Bari | 2 |
Italy, Puglia, Foggia | 1 |
Italy, Puglia, Lecce | 1 |
Italy, Puglia, Taranto | 2 |
Italy, Sardegna, Cagliari | 7 |
Italy, Sardegna, Sassari | 1 |
Italy, Sicilia, Catania | 2 |
Italy, Sicilia, Messina | 2 |
Italy, Sicilia, Palermo | 3 |
Italy, Toscana, Arezzo | 2 |
Italy, Toscana, Cecina | 1 |
Italy, Toscana, Firenze | 2 |
Italy, Toscana, Florence | 4 |
Italy, Toscana, Follonica | 1 |
Italy, Toscana, Livorno | 2 |
Italy, Toscana, Lucca | 2 |
Italy, Toscana, Pisa | 4 |
Italy, Toscana, Prato | 1 |
Italy, Toscana, Siena | 2 |
Italy, Trentino-Alto Adige, Bolzano | 3 |
Italy, Trentino-Alto Adige, Trento | 1 |
Italy, Umbria, Perugia | 1 |
Italy, Veneto, Abano Terme | 1 |
Italy, Veneto, Padova | 3 |
Italy, Veneto, Treviso | 1 |
Italy, Veneto, Venice | 9 |
Italy, Veneto, Vicenza | 4 |
Jamaica (in total) | 3 |
Jamaica, -, - | 1 |
Jamaica, Kingston, Kingston | 2 |
Japan (in total) | 223 |
Japan, -, - | 21 |
Japan, Aichi, Hekinan | 1 |
Japan, Aichi, Nagoya | 2 |
Japan, Chiba, Chiba | 2 |
Japan, Chiba, Funabashi | 1 |
Japan, Chiba, Ichihara | 1 |
Japan, Chiba, Kashiwa | 1 |
Japan, Fukuoka, Kitakyushu | 1 |
Japan, Gifu, Tajimi | 1 |
Japan, Hokkaido, Sapporo | 3 |
Japan, Hyogo, Himeji | 2 |
Japan, Hyogo, Kobe | 3 |
Japan, Ibaraki, Mito | 1 |
Japan, Ibaraki, Tsukuba | 1 |
Japan, Kanagawa, Kawasaki | 2 |
Japan, Kanagawa, Yokohama | 4 |
Japan, Kyoto, Kyoto | 1 |
Japan, Miyagi, Sendai | 1 |
Japan, Nagano, Okaya | 1 |
Japan, Niigata, Nagaoka | 1 |
Japan, Niigata, Niigata | 1 |
Japan, Osaka, Osaka | 6 |
Japan, Shizuoka, Shizuoka | 2 |
Japan, Tokyo, Hachioji | 1 |
Japan, Tokyo, Nerima | 2 |
Japan, Tokyo, Tokyo | (+4) 159 |
Japan, Yamanashi, Kofu | 1 |
Jordan (in total) | 7 |
Jordan, -, - | 1 |
Jordan, Amman, Amman | (+1) 6 |
Kazakhstan (in total) | 18 |
Kazakhstan, -, - | 10 |
Kazakhstan, Almaty, Almaty | 7 |
Kazakhstan, Pavlodar, Pavlodar | 1 |
Kenya (in total) | 3 |
Kenya, -, - | 2 |
Kenya, Nairobi Area, Nairobi | 1 |
Korea (in total) | 67 |
Korea, Republic Of, Republic Of, - | (+1) 13 |
Korea, Republic Of, Republic Of, Kyonggi-Do | (+3) 54 |
Kuwait (in total) | 23 |
Kuwait, Al Kuwayt, Kuwait | (+2) 23 |
Kyrgyzstan (in total) | 2 |
Kyrgyzstan, Bishkek, Bishkek | 2 |
Lao People's Democratic Republic (in total) | 8 |
Lao People's Democratic Republic, Vientiane, Vientiane | 8 |
Latvia (in total) | 24 |
Latvia, -, - | 1 |
Latvia, Riga, Riga | (+1) 23 |
Lebanon (in total) | 4 |
Lebanon, Beyrouth, Beirut | 4 |
Libyan Arab Jamahiriya (in total) | 1 |
Libyan Arab Jamahiriya, Tarabulus, Tripoli | 1 |
Liechtenstein (in total) | 1 |
Liechtenstein, -, - | 1 |
Lithuania (in total) | 21 |
Lithuania, -, - | 1 |
Lithuania, Klaipedos Apskritis, Klaipeda | 5 |
Lithuania, Panevezio Apskritis, Panevezys | 1 |
Lithuania, Vilniaus Apskritis, Vilnius | 14 |
Luxembourg (in total) | 7 |
Luxembourg, -, - | (+1) 4 |
Luxembourg, Luxembourg, Luxembourg | 3 |
Macao (in total) | 1 |
Macao, Macau, Macau | 1 |
Macedonia (in total) | 12 |
Macedonia, The Former Yugoslav Republic Of, The Former Yugoslav Republic Of, - | 4 |
Macedonia, The Former Yugoslav Republic Of, The Former Yugoslav Republic Of, Aracinovo | 7 |
Macedonia, The Former Yugoslav Republic Of, The Former Yugoslav Republic Of, Ohrid | 1 |
Malaysia (in total) | 56 |
Malaysia, -, - | 11 |
Malaysia, Johor, Johor Baharu | 2 |
Malaysia, Johor, Kluang | 1 |
Malaysia, Johor, Kota Tinggi | 1 |
Malaysia, Negeri Sembilan, Seremban | 1 |
Malaysia, Perak, Ipoh | 2 |
Malaysia, Pulau Pinang, Penang | 1 |
Malaysia, Sabah, Kota Kinabalu | 2 |
Malaysia, Selangor, Puchong | 3 |
Malaysia, Selangor, Shah Alam | 1 |
Malaysia, Wilayah Persekutuan, Kuala Lumpur | 31 |
Maldives (in total) | 2 |
Maldives, Kaafu, Male | 2 |
Malta (in total) | 3 |
Malta, -, - | 2 |
Malta, Malta, Attard | 1 |
Mauritius (in total) | 3 |
Mauritius, -, - | 1 |
Mauritius, Plaines Wilhems, Quatre Bornes | 2 |
Mexico (in total) | 123 |
Mexico, -, - | 32 |
Mexico, Baja California, Tijuana | 3 |
Mexico, Chihuahua, Chihuahua | 2 |
Mexico, Coahuila De Zaragoza, Torreon | 1 |
Mexico, Distrito Federal, Mexico | (+1) 52 |
Mexico, Guanajuato, Leon | 1 |
Mexico, Guanajuato, Salamanca | 1 |
Mexico, Jalisco, Guadalajara | 9 |
Mexico, Jalisco, Zapopan | 3 |
Mexico, Morelos, Cuernavaca | 1 |
Mexico, Nuevo Leon, Monterrey | 2 |
Mexico, Oaxaca, Oaxaca | 1 |
Mexico, Puebla, Puebla | 1 |
Mexico, Quintana Roo, Cancun | 1 |
Mexico, Quintana Roo, Cozumel | 1 |
Mexico, Quintana Roo, Playa Del Carmen | 1 |
Mexico, San Luis Potosi, San Luis Potosí | 3 |
Mexico, Sinaloa, Culiacan | (+1) 2 |
Mexico, Sonora, Cananea | 1 |
Mexico, Sonora, Hermosillo | 1 |
Mexico, Veracruz-Llave, Veracruz | 2 |
Mexico, Veracruz-Llave, Xalapa | 1 |
Mexico, Zacatecas, Zacatecas | 1 |
Moldova (in total) | 17 |
Moldova, Republic Of, Republic Of, - | 4 |
Moldova, Republic Of, Republic Of, Chisinau | 9 |
Moldova, Republic Of, Republic Of, Stinga Nistrului | 4 |
Monaco (in total) | 4 |
Monaco, Monaco, Monaco | (+1) 4 |
Mongolia (in total) | 3 |
Mongolia, Ulaanbaatar, Ulaanbaatar | 3 |
Montenegro (in total) | 3 |
Montenegro, -, - | 3 |
Morocco (in total) | 16 |
Morocco, -, - | 4 |
Morocco, Casablanca, Casablanca | 2 |
Morocco, Marrakech, Marrakesh | 2 |
Morocco, Rabat-Sale, Rabat | 8 |
Mozambique (in total) | 1 |
Mozambique, -, - | 1 |
Myanmar (in total) | 1 |
Myanmar, Yangon, Yangon | 1 |
Nepal (in total) | 4 |
Nepal, -, - | 2 |
Nepal, Bagmati, Kathmandu | 2 |
Netherlands Antilles (in total) | 1 |
Netherlands Antilles, Curacao, Willemstad | 1 |
Netherlands (in total) | 203 |
Netherlands, -, - | 7 |
Netherlands, Drenthe, Assen | 1 |
Netherlands, Drenthe, Emmen | 1 |
Netherlands, Drenthe, Roden | 1 |
Netherlands, Flevoland, Almere | 3 |
Netherlands, Flevoland, Dronten | 1 |
Netherlands, Flevoland, Lelystad | 1 |
Netherlands, Gelderland, Apeldoorn | 2 |
Netherlands, Gelderland, Arnhem | 2 |
Netherlands, Gelderland, Barneveld | 1 |
Netherlands, Gelderland, Neede | 1 |
Netherlands, Gelderland, Nijmegen | 3 |
Netherlands, Gelderland, Wageningen | 1 |
Netherlands, Limburg, Geleen | 1 |
Netherlands, Limburg, Maastricht | 2 |
Netherlands, Limburg, Venray | 1 |
Netherlands, Limburg, Weert | 1 |
Netherlands, Noord-Brabant, 's-Hertogenbosch | 2 |
Netherlands, Noord-Brabant, Bergen Op Zoom | 4 |
Netherlands, Noord-Brabant, Breda | 2 |
Netherlands, Noord-Brabant, Eindhoven | 7 |
Netherlands, Noord-Brabant, Helmond | 1 |
Netherlands, Noord-Brabant, Oss | 2 |
Netherlands, Noord-Brabant, Roosendaal | 1 |
Netherlands, Noord-Brabant, Tilburg | 2 |
Netherlands, Noord-Brabant, Uden | 2 |
Netherlands, Noord-Brabant, Valkenswaard | 1 |
Netherlands, Noord-Holland, Amstelveen | 2 |
Netherlands, Noord-Holland, Amsterdam | 73 |
Netherlands, Noord-Holland, Den Helder | 1 |
Netherlands, Noord-Holland, Haarlem | (+1) 3 |
Netherlands, Noord-Holland, Heemskerk | 1 |
Netherlands, Noord-Holland, Heerhugowaard | 1 |
Netherlands, Noord-Holland, Hilversum | 1 |
Netherlands, Overijssel, Almelo | 1 |
Netherlands, Overijssel, Enschede | 3 |
Netherlands, Overijssel, Hengelo | 2 |
Netherlands, Overijssel, Raalte | 1 |
Netherlands, Overijssel, Zwolle | 3 |
Netherlands, Utrecht, Amersfoort | 3 |
Netherlands, Utrecht, De Bilt | 1 |
Netherlands, Utrecht, Nieuwegein | 1 |
Netherlands, Utrecht, Utrecht | 5 |
Netherlands, Zeeland, Goes | 1 |
Netherlands, Zeeland, Middelburg | 1 |
Netherlands, Zeeland, Vlissingen | 1 |
Netherlands, Zuid-Holland, Delft | 3 |
Netherlands, Zuid-Holland, Dordrecht | 4 |
Netherlands, Zuid-Holland, Katwijk | 2 |
Netherlands, Zuid-Holland, Leiden | (+1) 4 |
Netherlands, Zuid-Holland, Noordwijk (NEW) | 1 |
Netherlands, Zuid-Holland, Rotterdam | 14 |
Netherlands, Zuid-Holland, Spijkenisse | 2 |
Netherlands, Zuid-Holland, The Hague | 10 |
Netherlands, Zuid-Holland, Voorburg | 3 |
Netherlands, Zuid-Holland, Zoetermeer | 1 |
New Zealand (in total) | 34 |
New Zealand, -, - | 8 |
New Zealand, Auckland, Auckland | (+1) 17 |
New Zealand, Canterbury, Christchurch | 1 |
New Zealand, Manawatu-Wanganui, Palmerston North | 1 |
New Zealand, Wellington, Lower Hutt | 2 |
New Zealand, Wellington, Wellington | 5 |
Nicaragua (in total) | 1 |
Nicaragua, Managua, Managua | 1 |
Nigeria (in total) | 2 |
Nigeria, -, - | 1 |
Nigeria, Lagos, Lagos | 1 |
Norway (in total) | 55 |
Norway, -, - | 3 |
Norway, Aust-Agder, Arendal | 1 |
Norway, Buskerud, Drammen | 4 |
Norway, Buskerud, Kongsberg | 1 |
Norway, Hedmark, Elverum | 1 |
Norway, Hordaland, Bergen | (+1) 4 |
Norway, More Og Romsdal, Kristiansund | 1 |
Norway, More Og Romsdal, Molde | 1 |
Norway, Oslo, Oslo | 22 |
Norway, Ostfold, Moss | 1 |
Norway, Rogaland, Sandnes | 1 |
Norway, Sor-Trondelag, Trondheim | 8 |
Norway, Telemark, Notodden | 1 |
Norway, Telemark, Skien | 1 |
Norway, Troms, Harstad | 1 |
Norway, Vest-Agder, Kristiansand | 1 |
Norway, Vestfold, Horten | 1 |
Norway, Vestfold, Larvik | 1 |
Norway, Vestfold, Tønsberg | 1 |
Pakistan (in total) | 44 |
Pakistan, -, - | 1 |
Pakistan, Islamabad, Islamabad | 14 |
Pakistan, Punjab, Lahore | 14 |
Pakistan, Sindh, Karachi | 15 |
Paraguay (in total) | 5 |
Paraguay, -, - | 3 |
Paraguay, Central, Fernando De La Mora | 1 |
Paraguay, Nueva Asuncion, Asuncion | 1 |
Peru (in total) | 37 |
Peru, -, - | 4 |
Peru, Arequipa, Arequipa | 2 |
Peru, Lima, Lima | (+1) 31 |
Philippines (in total) | 81 |
Philippines, -, - | 34 |
Philippines, Batangas, Batangas | 1 |
Philippines, Cebu City, Cebu | 5 |
Philippines, Cebu, Lapu-Lapu City | 1 |
Philippines, Iloilo City, Iloilo | 1 |
Philippines, La Union, San Fernando | 1 |
Philippines, Leyte, Tacloban City | 3 |
Philippines, Manila, Makati | 2 |
Philippines, Manila, Manila | 19 |
Philippines, Manila, Quezon City | (+1) 4 |
Philippines, Negros Occidental, Bacolod | 2 |
Philippines, Quezon City, Quezon | 2 |
Philippines, Rizal, Cainta | 3 |
Philippines, Rizal, Muntinlupa | 1 |
Philippines, Sorsogon, San Juan | 1 |
Philippines, Zamboanga, Zamboanga City | 1 |
Poland (in total) | 132 |
Poland, -, - | 20 |
Poland, Dolnoslaskie, Wroclaw | (+1) 5 |
Poland, Kujawsko-Pomorskie, Bydgoszcz | 6 |
Poland, Lodzkie, Lodz | 5 |
Poland, Lodzkie, Tomaszow Mazowiecki | 1 |
Poland, Lubelskie, Lublin | 2 |
Poland, Malopolskie, Krakow | 14 |
Poland, Mazowieckie, Warsaw | (+1) 50 |
Poland, Podkarpackie, Rzeszow | 2 |
Poland, Podlaskie, Bialystok | 2 |
Poland, Pomorskie, Gdansk | 3 |
Poland, Pomorskie, Gdynia | 1 |
Poland, Slaskie, Gliwice | 1 |
Poland, Slaskie, Katowice | 5 |
Poland, Slaskie, Zawiercie | 1 |
Poland, Wielkopolskie, Poznan | 9 |
Poland, Zachodniopomorskie, Szczecin | 5 |
Portugal (in total) | 62 |
Portugal, -, - | (+2) 15 |
Portugal, Aveiro, Aveiro | 3 |
Portugal, Azores, Ponta Delgada (NEW) | 1 |
Portugal, Braga, Guimarães | 1 |
Portugal, Coimbra, Coimbra | 2 |
Portugal, Evora, Evora | 1 |
Portugal, Faro, Faro | 5 |
Portugal, Faro, Tavira | 1 |
Portugal, Lisboa, Amadora | 4 |
Portugal, Lisboa, Ericeira | 1 |
Portugal, Lisboa, Lisbon | (+1) 18 |
Portugal, Lisboa, Sintra | 1 |
Portugal, Madeira, Funchal | 1 |
Portugal, Porto, Maia | 1 |
Portugal, Porto, Matosinhos | 1 |
Portugal, Porto, Porto | 3 |
Portugal, Porto, Vila Nova De Gaia | 2 |
Portugal, Setubal, Almada | 1 |
Puerto Rico (in total) | 7 |
Puerto Rico, -, - (NEW) | 1 |
Puerto Rico, Puerto Rico, Caguas | 1 |
Puerto Rico, Puerto Rico, San Juan | (+1) 5 |
Qatar (in total) | 4 |
Qatar, Ad Dawhah, Doha | 4 |
Romania (in total) | 79 |
Romania, -, - | 1 |
Romania, Arad, Arad | 1 |
Romania, Arges, Pitesti | 1 |
Romania, Bihor, Oradea | 2 |
Romania, Brasov, Brasov | 1 |
Romania, Bucuresti, Bucharest | 54 |
Romania, Cluj, Cluj-Napoca | 6 |
Romania, Constanta, Constanta | 1 |
Romania, Dolj, Craiova | 2 |
Romania, Galati, Galati | 1 |
Romania, Prahova, Ploiesti | 1 |
Romania, Timis, Timisoara | 5 |
Romania, Tulcea, Tulcea | 3 |
Russian Federation (in total) | 713 |
Russian Federation, -, - | (+11) 229 |
Russian Federation, Altaisky Krai, Biysk | 1 |
Russian Federation, Bashkortostan, Ufa | 4 |
Russian Federation, Chelyabinsk, Chelyabinsk | 4 |
Russian Federation, Irkutsk, Irkutsk | 1 |
Russian Federation, Khabarovsk, Khabarovsk | 1 |
Russian Federation, Khanty-Mansiy, Surgut | 3 |
Russian Federation, Krasnodar, Krasnodar | 2 |
Russian Federation, Krasnodar, Krasnogorsk | (+1) 2 |
Russian Federation, Krasnoyarsk, Krasnoyarsk | 1 |
Russian Federation, Leningrad, Vyborg | 1 |
Russian Federation, Mariy-El, Yoshkar-Ola | 2 |
Russian Federation, Moscow City, Dubna | 1 |
Russian Federation, Moscow City, Troitsk | 1 |
Russian Federation, Moskva, Moscow | (+8) 398 |
Russian Federation, Murmansk, Murmansk | 5 |
Russian Federation, Nizhegorod, Nizhniy Novgorod | (+1) 3 |
Russian Federation, Novgorod, Novgorod | 2 |
Russian Federation, Novgorod, Novosibirsk | 3 |
Russian Federation, Orenburg, Orenburg | 2 |
Russian Federation, Penza, Penza | 1 |
Russian Federation, Rostov, Rostov-On-Don | 1 |
Russian Federation, Saint Petersburg City, St. Petersburg | 26 |
Russian Federation, Samara, Togliatti | 1 |
Russian Federation, Smolensk, Smolensk | 1 |
Russian Federation, Sverdlovsk, Ekaterinburg | 9 |
Russian Federation, Tambovskaya Oblast, Tambov | 1 |
Russian Federation, Tatarstan, Kazan | 2 |
Russian Federation, Tomsk, Tomsk | 1 |
Russian Federation, Volgograd, Cherepovets | 1 |
Russian Federation, Volgograd, Volgograd | 1 |
Russian Federation, Yaroslavl', Pereslavl'-Zalesskiy | 1 |
Russian Federation, Yaroslavl', Rybinsk (NEW) | 1 |
Saudi Arabia (in total) | 32 |
Saudi Arabia, -, - | (+1) 8 |
Saudi Arabia, Ar Riyad, Riyadh | 16 |
Saudi Arabia, Ash Sharqiyah, Dammam | 3 |
Saudi Arabia, Ash Sharqiyah, Jubail | 3 |
Saudi Arabia, Makkah, Jeddah | 2 |
Serbia And Montenegro (in total) | 15 |
Serbia And Montenegro, -, - | 15 |
Serbia (in total) | 44 |
Serbia, -, - | (+1) 44 |
Singapore (in total) | 138 |
Singapore, Singapore, Queenstown | 1 |
Singapore, Singapore, Singapore | (+1) 135 |
Singapore, Singapore, Woodlands | 2 |
Slovakia (in total) | 27 |
Slovakia, -, - | 2 |
Slovakia, Bratislava, Bratislava | 19 |
Slovakia, Kosice, Kosice | 2 |
Slovakia, Presov, Presov | 2 |
Slovakia, Trnava, Trnava | 2 |
Slovenia (in total) | 19 |
Slovenia, -, - | 5 |
Slovenia, Celje, Celje | 1 |
Slovenia, Ljubljana, Ljubljana | 11 |
Slovenia, Maribor, Maribor | 1 |
Slovenia, Trzic, Trzic | 1 |
South Africa (in total) | 28 |
South Africa, -, - | 5 |
South Africa, Gauteng, Johannesburg | 11 |
South Africa, Gauteng, Pretoria | 4 |
South Africa, Gauteng, Sandton | 1 |
South Africa, Kwazulu-Natal, Durban | 3 |
South Africa, Western Cape, Bellville | 1 |
South Africa, Western Cape, Cape Town | 2 |
South Africa, Western Cape, Stellenbosch | 1 |
Spain (in total) | 235 |
Spain, -, - | 12 |
Spain, Andalucia, Algeciras | 1 |
Spain, Andalucia, Cadiz | 1 |
Spain, Andalucia, Córdoba | 2 |
Spain, Andalucia, Granada | 3 |
Spain, Andalucia, Huelva | 1 |
Spain, Andalucia, Malaga | 3 |
Spain, Andalucia, Sevilla | 5 |
Spain, Aragon, Zaragoza | 4 |
Spain, Asturias, Gijon | 1 |
Spain, Asturias, Navia | 1 |
Spain, Asturias, Oviedo | 2 |
Spain, Canarias, Arrecife | 1 |
Spain, Canarias, Las Palmas | 2 |
Spain, Canarias, Puerto De La Cruz | 5 |
Spain, Canarias, Santa Cruz De Tenerife | 1 |
Spain, Castilla Y Leon, Leon | 3 |
Spain, Castilla Y Leon, Salamanca | 1 |
Spain, Castilla Y Leon, Valladolid | 1 |
Spain, Castilla-La Mancha, Cuenca | 1 |
Spain, Castilla-La Mancha, Toledo | 4 |
Spain, Catalonia, Barcelona | (+2) 57 |
Spain, Catalonia, Sabadell | 1 |
Spain, Comunidad Valenciana, Alicante | 6 |
Spain, Comunidad Valenciana, Torrevieja | 1 |
Spain, Comunidad Valenciana, Valencia | 4 |
Spain, Extremadura, Badajoz | 1 |
Spain, Galicia, A Coruña | 4 |
Spain, Galicia, Pontevedra | 1 |
Spain, Galicia, Vigo | 4 |
Spain, Islas Baleares, Palma De Mallorca | 6 |
Spain, La Rioja, Logroño | 1 |
Spain, Madrid, Madrid | (+1) 77 |
Spain, Murcia, Cartagena | 1 |
Spain, Murcia, Murcia | 3 |
Spain, Navarra, Pamplona | 3 |
Spain, Pais Vasco, Bilbao | 6 |
Spain, Pais Vasco, San Sebastian | 4 |
Sri Lanka (in total) | 32 |
Sri Lanka, -, - | 21 |
Sri Lanka, Colombo, Colombo | 8 |
Sri Lanka, Gampaha, Gampaha | 3 |
Sudan (in total) | 1 |
Sudan, Al Khartum, Khartoum | 1 |
Sweden (in total) | 178 |
Sweden, -, - | 45 |
Sweden, Blekinge Lan, Karlskrona | 1 |
Sweden, Blekinge Lan, Ronneby | 1 |
Sweden, Dalarnas Lan, Borlänge | 1 |
Sweden, Dalarnas Lan, Falun | (+1) 2 |
Sweden, Gotlands Lan, Visby | 2 |
Sweden, Hallands Lan, Halmstad | 4 |
Sweden, Jamtlands Lan, Östersund | 1 |
Sweden, Jonkopings Lan, Gislaved | 1 |
Sweden, Kronobergs Lan, Kallax | 1 |
Sweden, Kronobergs Lan, Piteå | 1 |
Sweden, Kronobergs Lan, Rönninge | 1 |
Sweden, Ostergotlands Lan, Linköping | 3 |
Sweden, Skane Lan, Helsingborg | 3 |
Sweden, Skane Lan, Landskrona | 1 |
Sweden, Skane Lan, Lund | 2 |
Sweden, Skane Lan, Malmö | 6 |
Sweden, Sodermanlands Lan, Eskilstuna | 1 |
Sweden, Sodermanlands Lan, Strängnäs | 1 |
Sweden, Stockholms Lan, Solna | 1 |
Sweden, Stockholms Lan, Stockholm | 63 |
Sweden, Stockholms Lan, Södertälje | 1 |
Sweden, Stockholms Lan, Taby | 1 |
Sweden, Stockholms Lan, Tyresö | 1 |
Sweden, Uppsala Lan, Uppsala | 3 |
Sweden, Varmlands Lan, Karlstad | 2 |
Sweden, Vasterbottens Lan, Skellefteå | 1 |
Sweden, Vasterbottens Lan, Umea | 4 |
Sweden, Vasternorrlands Lan, Sundsvall | 1 |
Sweden, Vastmanlands Lan, Västerås | 1 |
Sweden, Vastra Gotaland, Alingsås | 1 |
Sweden, Vastra Gotaland, Borås | 6 |
Sweden, Vastra Gotaland, Gothenburg | 11 |
Sweden, Vastra Gotaland, Kungälv | 1 |
Sweden, Vastra Gotaland, Mölndal | 2 |
Switzerland (in total) | 96 |
Switzerland, -, - | 9 |
Switzerland, Aargau, Aarau | 1 |
Switzerland, Aargau, Zofingen | 1 |
Switzerland, Basel-Landschaft, Liestal | 1 |
Switzerland, Basel-Stadt, Basel | 5 |
Switzerland, Bern, Bern | 9 |
Switzerland, Bern, Biel | (+1) 2 |
Switzerland, Bern, Thun | 1 |
Switzerland, Geneve, Geneva | (+1) 7 |
Switzerland, Sankt Gallen, Winterthur | 1 |
Switzerland, Schwyz, Schwyz | 1 |
Switzerland, Thurgau, Kreuzlingen | 1 |
Switzerland, Ticino, Lugano | 1 |
Switzerland, Valais, Martigny | 1 |
Switzerland, Valais, Sion | 2 |
Switzerland, Vaud, Lausanne | 8 |
Switzerland, Vaud, Vevey | 1 |
Switzerland, Vaud, Yverdon | 1 |
Switzerland, Zug, Baar | 2 |
Switzerland, Zug, Zug | 4 |
Switzerland, Zurich, Kloten | 1 |
Switzerland, Zurich, Uster | 1 |
Switzerland, Zurich, Zurich | 35 |
Syrian Arab Republic (in total) | 4 |
Syrian Arab Republic, -, - | 1 |
Syrian Arab Republic, Dimashq, Damascus | 3 |
Taiwan (in total) | 71 |
Taiwan, -, - | 11 |
Taiwan, Kao-Hsiung, Kaohsiung | 1 |
Taiwan, Kao-Hsiung, Tainan | 1 |
Taiwan, T'ai-Pei, Taipei | (+1) 58 |
Thailand (in total) | 34 |
Thailand, -, - | 8 |
Thailand, Chiang Mai, Chiang Mai | (+1) 5 |
Thailand, Krung Thep, Bangkok | 20 |
Thailand, Surat Thani, Koh Samui | 1 |
Trinidad And Tobago (in total) | 3 |
Trinidad And Tobago, -, - | 3 |
Tunisia (in total) | 5 |
Tunisia, -, - | 1 |
Tunisia, Tunis, Carthage | 1 |
Tunisia, Tunis, Tunis | 3 |
Turkey (in total) | 144 |
Turkey, -, - | 3 |
Turkey, Adana, Adana | 2 |
Turkey, Ankara, Ankara | (+2) 39 |
Turkey, Antalya, Antalya | 3 |
Turkey, Aydin, Aydin | 1 |
Turkey, Balikesir, Balikesir | 1 |
Turkey, Bursa, Bursa | 3 |
Turkey, Diyarbakir, Diyarbakir | 2 |
Turkey, Eskisehir, Eskisehir | 1 |
Turkey, Gaziantep, Gaziantep | 1 |
Turkey, Icel, Mersin | 1 |
Turkey, Istanbul, Istanbul | (+2) 69 |
Turkey, Izmir, Izmir | 10 |
Turkey, Kocaeli, Kocaeli | 1 |
Turkey, Manisa, Manisa | 1 |
Turkey, Nigde, Konya | 3 |
Turkey, Samsun, Samsun | 3 |
Turkmenistan (in total) | 1 |
Turkmenistan, -, - | 1 |
Ukraine (in total) | 260 |
Ukraine, -, - | (+3) 92 |
Ukraine, Dnipropetrovs'ka Oblast', Dnepropetrovsk | 4 |
Ukraine, Donets'ka Oblast', Donetsk | 5 |
Ukraine, Donets'ka Oblast', Mariupol | 1 |
Ukraine, Kharkivs'ka Oblast', Kharkiv | 4 |
Ukraine, Kyyiv, Kiev | (+2) 98 |
Ukraine, L'vivs'ka Oblast', Lviv | (+2) 11 |
Ukraine, Luhans'ka Oblast', Lugansk | 6 |
Ukraine, Mykolayivs'ka Oblast', Kherson | 2 |
Ukraine, Mykolayivs'ka Oblast', Nikolaev | 6 |
Ukraine, Odes'ka Oblast', Odessa | 15 |
Ukraine, Poltavs'ka Oblast', Poltava | 5 |
Ukraine, Rivnens'ka Oblast', Rivne | 2 |
Ukraine, Sevastopol', Sevastopol | 1 |
Ukraine, Zakarpats'ka Oblast', Uzhgorod | 1 |
Ukraine, Zaporiz'ka Oblast', Zaporizhzhya | 7 |
United Arab Emirates (in total) | 16 |
United Arab Emirates, Abu Dhabi, Abu Dhabi | 1 |
United Arab Emirates, Dubai, Dubai | (+1) 15 |
United Kingdom (in total) | 1360 |
United Kingdom, -, - | (+23) 987 |
United Kingdom, England, Ashford | 2 |
United Kingdom, England, Barnsley | 1 |
United Kingdom, England, Basingstoke | 1 |
United Kingdom, England, Bedford | 1 |
United Kingdom, England, Birmingham | 9 |
United Kingdom, England, Blackpool | 3 |
United Kingdom, England, Bolton | 3 |
United Kingdom, England, Bournemouth | 1 |
United Kingdom, England, Bradford | 1 |
United Kingdom, England, Brighton | 3 |
United Kingdom, England, Bristol | 11 |
United Kingdom, England, Burnley | 1 |
United Kingdom, England, Cambridge | 2 |
United Kingdom, England, Chatham | 1 |
United Kingdom, England, Chelmsford | 1 |
United Kingdom, England, Chorley | 1 |
United Kingdom, England, Coventry | (+1) 6 |
United Kingdom, England, Dartford | 1 |
United Kingdom, England, Derby | 1 |
United Kingdom, England, Dudley | 1 |
United Kingdom, England, Durham | 1 |
United Kingdom, England, Epsom | 1 |
United Kingdom, England, Fleet | 1 |
United Kingdom, England, Gosport | 1 |
United Kingdom, England, Grimsby | 4 |
United Kingdom, England, Guildford | 1 |
United Kingdom, England, Halifax (NEW) | 1 |
United Kingdom, England, Hertford | 1 |
United Kingdom, England, High Wycombe | 1 |
United Kingdom, England, Huddersfield | 1 |
United Kingdom, England, Ipswich | 1 |
United Kingdom, England, Kenilworth | 1 |
United Kingdom, England, Kettering | 1 |
United Kingdom, England, Kingston Upon Hull | 1 |
United Kingdom, England, Leeds | 9 |
United Kingdom, England, Leicester | 4 |
United Kingdom, England, Letchworth | 2 |
United Kingdom, England, Lincoln | 2 |
United Kingdom, England, Liverpool | 6 |
United Kingdom, England, London | (+4) 188 |
United Kingdom, England, Lowestoft | 1 |
United Kingdom, England, Luton | 1 |
United Kingdom, England, Maidstone | 1 |
United Kingdom, England, Manchester | 9 |
United Kingdom, England, Milton Keynes | 2 |
United Kingdom, England, Newcastle Upon Tyne | 1 |
United Kingdom, England, Northampton | 2 |
United Kingdom, England, Norwich | 3 |
United Kingdom, England, Nottingham | 5 |
United Kingdom, England, Oldham | 1 |
United Kingdom, England, Oxford | 4 |
United Kingdom, England, Plymouth | 1 |
United Kingdom, England, Portsmouth | 5 |
United Kingdom, England, Preston | 3 |
United Kingdom, England, Reading | 2 |
United Kingdom, England, Redditch | 2 |
United Kingdom, England, Rugby | 2 |
United Kingdom, England, Salisbury | 1 |
United Kingdom, England, Sheffield | 4 |
United Kingdom, England, Solihull | 2 |
United Kingdom, England, Southampton | 1 |
United Kingdom, England, Stafford | 3 |
United Kingdom, England, Stevenage | 1 |
United Kingdom, England, Stoke On Trent | 2 |
United Kingdom, England, Sutton | 1 |
United Kingdom, England, Swindon | 2 |
United Kingdom, England, Wakefield | 3 |
United Kingdom, England, Warrington | 2 |
United Kingdom, England, Wokingham | 2 |
United Kingdom, England, Wolverhampton | 1 |
United Kingdom, England, Worcester | 2 |
United Kingdom, England, Worthing | 1 |
United Kingdom, England, York | 1 |
United Kingdom, Northern Ireland, Belfast | 2 |
United Kingdom, Scotland, Aberdeen | 1 |
United Kingdom, Scotland, Dundee | 1 |
United Kingdom, Scotland, Edinburgh | 6 |
United Kingdom, Scotland, Glasgow | 5 |
United Kingdom, Scotland, Perth | 1 |
United Kingdom, Scotland, Stranraer | 1 |
United Kingdom, Wales, Cardiff | 1 |
United Kingdom, Wales, Mold | 1 |
United Kingdom, Wales, Swansea | 1 |
United States (in total) | 3622 |
United States, -, - | (+2) 133 |
United States, Alabama, Anniston | 1 |
United States, Alabama, Bessemer | 1 |
United States, Alabama, Birmingham | 1 |
United States, Alabama, Decatur | 1 |
United States, Alabama, Dothan | 1 |
United States, Alabama, Helena | 1 |
United States, Alabama, Madison | 3 |
United States, Alabama, Montgomery | 1 |
United States, Alabama, Phenix City | 1 |
United States, Alabama, Tuscaloosa | 1 |
United States, Alaska, Anchorage | 2 |
United States, Alaska, Eagle River | 1 |
United States, Alaska, Wasilla | 1 |
United States, Arizona, Cave Creek | 2 |
United States, Arizona, Chandler | 1 |
United States, Arizona, Gilbert (NEW) | 1 |
United States, Arizona, Glendale | 1 |
United States, Arizona, Mesa | 3 |
United States, Arizona, Phoenix | (+1) 13 |
United States, Arizona, Scottsdale | 6 |
United States, Arizona, Sierra Vista | 1 |
United States, Arizona, Springerville | 1 |
United States, Arizona, Tempe | 4 |
United States, Arizona, Tucson | (+1) 9 |
United States, Arizona, Waddell | 1 |
United States, Arizona, Yuma | 1 |
United States, Arkansas, Arkadelphia | 1 |
United States, Arkansas, Bentonville | 2 |
United States, Arkansas, Cabot | 1 |
United States, Arkansas, Fayetteville | 3 |
United States, Arkansas, Hot Springs National Park | 1 |
United States, Arkansas, Little Rock | 2 |
United States, Arkansas, Malvern | 1 |
United States, Arkansas, Mountain Home | 1 |
United States, Arkansas, Siloam Springs | 1 |
United States, Arkansas, Springdale | 3 |
United States, Arkansas, Yellville | 1 |
United States, California, Alhambra | 1 |
United States, California, Anaheim | 10 |
United States, California, Antioch | 3 |
United States, California, Bakersfield | 1 |
United States, California, Beaumont | 1 |
United States, California, Berkeley | 6 |
United States, California, Beverly Hills | 2 |
United States, California, Brea | 1 |
United States, California, Brisbane | 1 |
United States, California, Buena Park | 1 |
United States, California, Burbank | (+1) 3 |
United States, California, Burlingame | 6 |
United States, California, Campbell | 3 |
United States, California, Canoga Park | 1 |
United States, California, Canyon Country | 1 |
United States, California, Carlsbad | (+1) 2 |
United States, California, Carmel | 1 |
United States, California, Carson | 1 |
United States, California, Chino | 2 |
United States, California, Citrus Heights | 2 |
United States, California, Claremont | 17 |
United States, California, Concord | 2 |
United States, California, Corcoran | 2 |
United States, California, Corona | 1 |
United States, California, Costa Mesa | 4 |
United States, California, Crescent City | 1 |
United States, California, Culver City | 3 |
United States, California, Cupertino | (+1) 7 |
United States, California, Danville | 1 |
United States, California, Diamond Bar | 3 |
United States, California, Dublin | 3 |
United States, California, El Cajon | 3 |
United States, California, El Monte | 1 |
United States, California, Elk Grove | 1 |
United States, California, Emeryville | 2 |
United States, California, Escondido | 1 |
United States, California, Fair Oaks | 2 |
United States, California, Fallbrook | 2 |
United States, California, Fontana | 1 |
United States, California, Foster City | 3 |
United States, California, Fountain Valley | 2 |
United States, California, Frazier Park | 1 |
United States, California, Fremont | 5 |
United States, California, Fresno | 4 |
United States, California, Fullerton | 3 |
United States, California, Glendale | 1 |
United States, California, Hacienda Heights | 1 |
United States, California, Hanford | 1 |
United States, California, Harbor City | 1 |
United States, California, Hayward | 1 |
United States, California, Hemet | 1 |
United States, California, Hesperia | 2 |
United States, California, Hollister | 2 |
United States, California, Huntington Beach | 6 |
United States, California, Huntington Park | 1 |
United States, California, Irvine | 6 |
United States, California, Kerman | 1 |
United States, California, La Habra | 3 |
United States, California, La Jolla | 2 |
United States, California, La Mirada | 1 |
United States, California, Laguna Beach | 1 |
United States, California, Laguna Hills | 1 |
United States, California, Laguna Niguel | 1 |
United States, California, Lake Forest | 2 |
United States, California, Lakewood | 1 |
United States, California, Lancaster | 1 |
United States, California, Lincoln | 2 |
United States, California, Livermore | 1 |
United States, California, Lompoc | 1 |
United States, California, Long Beach | 8 |
United States, California, Los Alamitos | 1 |
United States, California, Los Altos | 4 |
United States, California, Los Angeles | (+4) 58 |
United States, California, Los Gatos | 16 |
United States, California, Lucerne | 1 |
United States, California, Malibu | 1 |
United States, California, Manhattan Beach | 2 |
United States, California, Marina Del Rey | 3 |
United States, California, Maywood | 1 |
United States, California, Menifee | 1 |
United States, California, Menlo Park | 2 |
United States, California, Merced | 1 |
United States, California, Mill Valley | 1 |
United States, California, Milpitas | 2 |
United States, California, Mission Viejo | 1 |
United States, California, Modesto | 3 |
United States, California, Monrovia | 1 |
United States, California, Montara | 7 |
United States, California, Monterey | 1 |
United States, California, Monterey Park | 1 |
United States, California, Montrose | 1 |
United States, California, Mountain View | (+17) 293 |
United States, California, Murrieta | 1 |
United States, California, Newark | 1 |
United States, California, Newport Beach | 1 |
United States, California, Northridge | 1 |
United States, California, Novato | 4 |
United States, California, Oakland | 12 |
United States, California, Oceanside | 2 |
United States, California, Ojai | 1 |
United States, California, Orange | 2 |
United States, California, Oroville | 2 |
United States, California, Pacific Palisades | 1 |
United States, California, Palmdale | 1 |
United States, California, Palo Alto | 8 |
United States, California, Paramount | 1 |
United States, California, Petaluma | 1 |
United States, California, Placentia | 1 |
United States, California, Pleasant Hill | 1 |
United States, California, Pleasanton | 1 |
United States, California, Poway | 1 |
United States, California, Rancho Cucamonga | 1 |
United States, California, Rancho Santa Margarita | 1 |
United States, California, Redlands | (+1) 2 |
United States, California, Redondo Beach | 1 |
United States, California, Redwood City | 8 |
United States, California, Reseda | 1 |
United States, California, Richmond | 1 |
United States, California, Riverbank | 1 |
United States, California, Riverside | 2 |
United States, California, Roseville | 2 |
United States, California, Rowland Heights | 2 |
United States, California, Sacramento | 5 |
United States, California, San Bernardino | 1 |
United States, California, San Carlos | 2 |
United States, California, San Diego | 36 |
United States, California, San Dimas | 1 |
United States, California, San Francisco | (+3) 68 |
United States, California, San Jose | (+1) 22 |
United States, California, San Juan Capistrano | 1 |
United States, California, San Leandro | 1 |
United States, California, San Lorenzo | 1 |
United States, California, San Luis Obispo | 6 |
United States, California, San Mateo | 3 |
United States, California, San Pedro | 1 |
United States, California, San Rafael | 2 |
United States, California, San Ramon | 1 |
United States, California, Santa Barbara | (+1) 8 |
United States, California, Santa Clara | (+6) 25 |
United States, California, Santa Cruz | 2 |
United States, California, Santa Maria | 1 |
United States, California, Santa Monica | 3 |
United States, California, Santa Rosa | 2 |
United States, California, Sausalito | 1 |
United States, California, Seaside | 1 |
United States, California, South Pasadena | 1 |
United States, California, Stanton | 1 |
United States, California, Studio City | 1 |
United States, California, Sunland | 1 |
United States, California, Sunnyvale | (+2) 72 |
United States, California, Temple City | 2 |
United States, California, Torrance | 6 |
United States, California, Truckee | 1 |
United States, California, Tujunga | 1 |
United States, California, Tustin | 4 |
United States, California, Union City | 2 |
United States, California, Upland | 2 |
United States, California, Valencia | 1 |
United States, California, Van Nuys | 1 |
United States, California, Venice | 1 |
United States, California, Victorville | 1 |
United States, California, Visalia | 1 |
United States, California, Vista | 1 |
United States, California, Walnut Creek | 1 |
United States, California, Watsonville | 1 |
United States, California, West Sacramento | 1 |
United States, California, Westminster | 1 |
United States, California, Wilmington | 1 |
United States, California, Windsor | 3 |
United States, California, Woodland | 1 |
United States, California, Yorba Linda | 1 |
United States, Colorado, Aurora | 5 |
United States, Colorado, Boulder | 3 |
United States, Colorado, Castle Rock | 1 |
United States, Colorado, Colorado Springs | 3 |
United States, Colorado, Conifer | 1 |
United States, Colorado, Denver | 23 |
United States, Colorado, Durango | 1 |
United States, Colorado, Englewood | 4 |
United States, Colorado, Ft. Collins | 2 |
United States, Colorado, Grand Junction | 1 |
United States, Colorado, Johnstown | 1 |
United States, Colorado, Las Animas | 2 |
United States, Colorado, Littleton | 7 |
United States, Colorado, Longmont | 3 |
United States, Colorado, Louisville | 1 |
United States, Colorado, Loveland | 1 |
United States, Colorado, Morrison | 1 |
United States, Colorado, Parker (NEW) | 1 |
United States, Colorado, Peyton | 1 |
United States, Colorado, Pueblo | 1 |
United States, Connecticut, Avon | 1 |
United States, Connecticut, Berlin | 1 |
United States, Connecticut, Bloomfield | 1 |
United States, Connecticut, Branford | 1 |
United States, Connecticut, Bridgeport | 2 |
United States, Connecticut, Danbury | 1 |
United States, Connecticut, Farmington | 1 |
United States, Connecticut, Glastonbury | 1 |
United States, Connecticut, Greenwich | 1 |
United States, Connecticut, Manchester | 1 |
United States, Connecticut, Meriden | 1 |
United States, Connecticut, Middletown | 1 |
United States, Connecticut, Naugatuck | 1 |
United States, Connecticut, New Britain | 2 |
United States, Connecticut, New Canaan | 1 |
United States, Connecticut, New Fairfield | 1 |
United States, Connecticut, New Haven | 4 |
United States, Connecticut, New London | 1 |
United States, Connecticut, South Windsor | 1 |
United States, Connecticut, Stamford | 1 |
United States, Connecticut, West Hartford | 1 |
United States, Connecticut, Weston | 1 |
United States, Connecticut, Willimantic (NEW) | 1 |
United States, Delaware, Georgetown | 1 |
United States, Delaware, Newark | 2 |
United States, Delaware, Rehoboth Beach | 1 |
United States, Delaware, Wilmington | 1 |
United States, District Of Columbia, Washington | 21 |
United States, Florida, Altamonte Springs | 1 |
United States, Florida, Auburndale | 1 |
United States, Florida, Boca Raton | 1 |
United States, Florida, Bonita Springs | 1 |
United States, Florida, Cape Coral | 1 |
United States, Florida, Clearwater | 3 |
United States, Florida, Davie | 2 |
United States, Florida, Daytona Beach | 2 |
United States, Florida, Deland | 2 |
United States, Florida, Ft. Myers | 2 |
United States, Florida, Gainesville | 7 |
United States, Florida, Hallandale | 1 |
United States, Florida, Hollywood | 1 |
United States, Florida, Homestead | 1 |
United States, Florida, Indiantown | 1 |
United States, Florida, Jacksonville | 4 |
United States, Florida, Kathleen | 3 |
United States, Florida, Kissimmee | 2 |
United States, Florida, Lakeland | 1 |
United States, Florida, Lithia | 1 |
United States, Florida, Longwood | 1 |
United States, Florida, Lutz | 1 |
United States, Florida, Lynn Haven | 1 |
United States, Florida, Miami | 6 |
United States, Florida, Naples | 1 |
United States, Florida, Navarre | 2 |
United States, Florida, Odessa | 1 |
United States, Florida, Orlando | 8 |
United States, Florida, Ormond Beach | 1 |
United States, Florida, Palm Harbor | 2 |
United States, Florida, Pensacola | 3 |
United States, Florida, Pompano Beach | 1 |
United States, Florida, Sarasota | 1 |
United States, Florida, Sebring | 1 |
United States, Florida, Stuart | 1 |
United States, Florida, Tallahassee | 6 |
United States, Florida, Tampa | 7 |
United States, Florida, Valrico | 1 |
United States, Florida, Venice | 1 |
United States, Florida, West Palm Beach | 1 |
United States, Florida, Weston | 1 |
United States, Florida, Winter Garden | 1 |
United States, Florida, Winter Haven | 1 |
United States, Florida, Winter Springs | 1 |
United States, Georgia, Alpharetta | 2 |
United States, Georgia, Athens | 7 |
United States, Georgia, Atlanta | 34 |
United States, Georgia, Augusta | 3 |
United States, Georgia, Blairsville | 1 |
United States, Georgia, Buford | 1 |
United States, Georgia, Canton | 2 |
United States, Georgia, Carrollton | 1 |
United States, Georgia, Conyers | 1 |
United States, Georgia, Dacula | 1 |
United States, Georgia, Demorest | 1 |
United States, Georgia, Dublin | 1 |
United States, Georgia, Griffin | 2 |
United States, Georgia, Kennesaw | 1 |
United States, Georgia, Lithia Springs | 1 |
United States, Georgia, Loganville | 1 |
United States, Georgia, Marietta (NEW) | 1 |
United States, Georgia, Morrow | 1 |
United States, Georgia, Norcross | 1 |
United States, Georgia, Powder Springs | 1 |
United States, Georgia, Rex | 1 |
United States, Georgia, Roswell | 9 |
United States, Georgia, Savannah | 1 |
United States, Georgia, Thomasville | 1 |
United States, Georgia, Thomson | 1 |
United States, Georgia, Waycross | 1 |
United States, Georgia, Woodstock | 1 |
United States, Hawaii, Honolulu | 4 |
United States, Idaho, Boise | 2 |
United States, Idaho, Coeur D Alene | 1 |
United States, Idaho, Meridian | 1 |
United States, Idaho, Moscow | 1 |
United States, Idaho, Nampa | 1 |
United States, Idaho, Rexburg | 1 |
United States, Illinois, Algonquin | 1 |
United States, Illinois, Alton | 1 |
United States, Illinois, Arlington Heights | 2 |
United States, Illinois, Aurora | 2 |
United States, Illinois, Bloomington (NEW) | 1 |
United States, Illinois, Bolingbrook | 1 |
United States, Illinois, Buffalo Grove | 2 |
United States, Illinois, Carbondale | 1 |
United States, Illinois, Chenoa | 1 |
United States, Illinois, Chicago | (+1) 44 |
United States, Illinois, Des Plaines | 1 |
United States, Illinois, East Peoria | 1 |
United States, Illinois, Evanston | 1 |
United States, Illinois, Glenview | (+1) 2 |
United States, Illinois, La Grange | 1 |
United States, Illinois, Lisle | 1 |
United States, Illinois, Lombard | 1 |
United States, Illinois, Mascoutah | 1 |
United States, Illinois, Mattoon | 2 |
United States, Illinois, Maywood | 1 |
United States, Illinois, Morton Grove | 1 |
United States, Illinois, Mt. Vernon | 1 |
United States, Illinois, Naperville | 4 |
United States, Illinois, Northbrook | 3 |
United States, Illinois, Oak Forest | 1 |
United States, Illinois, Palos Park | 1 |
United States, Illinois, Riverdale | 1 |
United States, Illinois, Rockford | 2 |
United States, Illinois, Schaumburg | 2 |
United States, Illinois, Shorewood | 1 |
United States, Illinois, Skokie | 2 |
United States, Illinois, South Elgin | 1 |
United States, Illinois, Tinley Park | 2 |
United States, Illinois, Toulon | 1 |
United States, Illinois, Urbana | 2 |
United States, Illinois, Westmont | 1 |
United States, Illinois, Wheaton | 1 |
United States, Illinois, Wheeling | 1 |
United States, Illinois, Woodstock | (+1) 3 |
United States, Indiana, Bloomington | 2 |
United States, Indiana, Clinton | 1 |
United States, Indiana, Crawfordsville | 2 |
United States, Indiana, Crown Point | 1 |
United States, Indiana, Evansville | 1 |
United States, Indiana, Fishers | 1 |
United States, Indiana, Greenwood | 1 |
United States, Indiana, Hammond | 1 |
United States, Indiana, Indianapolis | 3 |
United States, Indiana, Lafayette | 1 |
United States, Indiana, Marion | 1 |
United States, Indiana, Mishawaka | 2 |
United States, Indiana, Noblesville | 1 |
United States, Indiana, Pittsboro | 1 |
United States, Indiana, Portage | 1 |
United States, Indiana, South Bend | 2 |
United States, Indiana, Upland | 1 |
United States, Indiana, West Lafayette | 3 |
United States, Indiana, Wilkinson | 1 |
United States, Iowa, Cedar Rapids | 2 |
United States, Iowa, Des Moines | 3 |
United States, Iowa, Fairfield | 1 |
United States, Iowa, Johnston | 1 |
United States, Iowa, Sheldon | 1 |
United States, Iowa, Sioux Center | 2 |
United States, Iowa, Storm Lake | 1 |
United States, Iowa, Vinton | 1 |
United States, Iowa, Waterloo | 1 |
United States, Kansas, Emporia | 2 |
United States, Kansas, Garden City | 1 |
United States, Kansas, Girard | 1 |
United States, Kansas, Kansas City | 1 |
United States, Kansas, Lawrence | 2 |
United States, Kansas, Manhattan | 1 |
United States, Kansas, Mission | 1 |
United States, Kansas, Newton | 1 |
United States, Kansas, Olathe | 1 |
United States, Kansas, Overland Park | (+2) 5 |
United States, Kansas, Shawnee Mission | 1 |
United States, Kansas, Wichita | 3 |
United States, Kentucky, Bardstown | 1 |
United States, Kentucky, Baxter | 1 |
United States, Kentucky, Beattyville | 1 |
United States, Kentucky, Columbia | 1 |
United States, Kentucky, Erlanger | 1 |
United States, Kentucky, Frankfort | 1 |
United States, Kentucky, Leitchfield | 1 |
United States, Kentucky, Lexington | (+1) 4 |
United States, Kentucky, Louisville | 6 |
United States, Kentucky, Mayfield | 2 |
United States, Kentucky, Monticello | 1 |
United States, Kentucky, Paris | 1 |
United States, Kentucky, Radcliff | 1 |
United States, Kentucky, Richmond | 1 |
United States, Kentucky, Versailles | 1 |
United States, Louisiana, Baton Rouge | 4 |
United States, Louisiana, Kenner | 1 |
United States, Louisiana, Kinder | 1 |
United States, Louisiana, Lake Charles | 1 |
United States, Louisiana, Metairie (NEW) | 1 |
United States, Louisiana, Monroe | 2 |
United States, Louisiana, Morgan City | 1 |
United States, Louisiana, New Orleans | 4 |
United States, Louisiana, Ponchatoula | 1 |
United States, Louisiana, Sulphur | 1 |
United States, Maine, Bangor | 1 |
United States, Maine, Biddeford | 1 |
United States, Maine, Cape Elizabeth | 1 |
United States, Maine, Kennebunkport | 1 |
United States, Maine, Lewiston | 1 |
United States, Maine, Orono | 2 |
United States, Maine, Portland | 1 |
United States, Maine, Sanford | 1 |
United States, Maine, Skowhegan | 1 |
United States, Maine, South Portland | 1 |
United States, Maine, Unity | 2 |
United States, Maine, Warren | 1 |
United States, Maine, Westbrook | 1 |
United States, Maine, Windham | 1 |
United States, Maine, Yarmouth | 1 |
United States, Maryland, Accokeek | 2 |
United States, Maryland, Annapolis | 1 |
United States, Maryland, Baltimore | 7 |
United States, Maryland, Bel Air | 1 |
United States, Maryland, Bowie | 1 |
United States, Maryland, Burtonsville | 2 |
United States, Maryland, Catonsville | 1 |
United States, Maryland, Chevy Chase | 1 |
United States, Maryland, Cockeysville | 1 |
United States, Maryland, College Park | 1 |
United States, Maryland, Columbia | 3 |
United States, Maryland, Ellicott City | 1 |
United States, Maryland, Frederick | 3 |
United States, Maryland, Gaithersburg | 1 |
United States, Maryland, Glen Arm | 1 |
United States, Maryland, Hagerstown | 1 |
United States, Maryland, Hanover | 1 |
United States, Maryland, Hyattsville | 2 |
United States, Maryland, Jefferson | 1 |
United States, Maryland, Laurel (NEW) | 1 |
United States, Maryland, Middle River | 1 |
United States, Maryland, Nottingham | 1 |
United States, Maryland, Odenton | 1 |
United States, Maryland, Oxon Hill | 1 |
United States, Maryland, Parsonsburg | 1 |
United States, Maryland, Potomac | 1 |
United States, Maryland, Reisterstown | 1 |
United States, Maryland, Ridge | 1 |
United States, Maryland, Rockville | 2 |
United States, Maryland, Salisbury | 1 |
United States, Maryland, Severn | 2 |
United States, Maryland, Silver Spring | (+1) 6 |
United States, Massachusetts, Acton (NEW) | 1 |
United States, Massachusetts, Adams | 1 |
United States, Massachusetts, Arlington | 1 |
United States, Massachusetts, Belmont | 1 |
United States, Massachusetts, Beverly | 1 |
United States, Massachusetts, Billerica | 1 |
United States, Massachusetts, Boston | 8 |
United States, Massachusetts, Boxborough | 1 |
United States, Massachusetts, Brighton | 2 |
United States, Massachusetts, Brookline (NEW) | 2 |
United States, Massachusetts, Burlington | 3 |
United States, Massachusetts, Cambridge | (+15) 62 |
United States, Massachusetts, Canton | 1 |
United States, Massachusetts, Chestnut Hill | 1 |
United States, Massachusetts, Chicopee | 1 |
United States, Massachusetts, Dedham | 1 |
United States, Massachusetts, East Bridgewater | 1 |
United States, Massachusetts, Fall River | 1 |
United States, Massachusetts, Fitchburg | 1 |
United States, Massachusetts, Foxboro | 1 |
United States, Massachusetts, Framingham | 1 |
United States, Massachusetts, Franklin | 1 |
United States, Massachusetts, Groton | 1 |
United States, Massachusetts, Haverhill | 1 |
United States, Massachusetts, Hyde Park | 1 |
United States, Massachusetts, Lawrence | 1 |
United States, Massachusetts, Lee | 1 |
United States, Massachusetts, Lowell | 2 |
United States, Massachusetts, Mansfield | 1 |
United States, Massachusetts, Marshfield | 1 |
United States, Massachusetts, Maynard | 1 |
United States, Massachusetts, Melrose | 1 |
United States, Massachusetts, Nantucket | 1 |
United States, Massachusetts, Newton | 2 |
United States, Massachusetts, North Attleboro | 2 |
United States, Massachusetts, North Chelmsford | 1 |
United States, Massachusetts, North Reading | 1 |
United States, Massachusetts, Pittsfield | 1 |
United States, Massachusetts, Quincy | 3 |
United States, Massachusetts, Roslindale | 1 |
United States, Massachusetts, Rutland | 1 |
United States, Massachusetts, Sandwich | 1 |
United States, Massachusetts, Scituate | 1 |
United States, Massachusetts, Somerville | 2 |
United States, Massachusetts, South Easton | 1 |
United States, Massachusetts, Southbridge | 1 |
United States, Massachusetts, Springfield | 1 |
United States, Massachusetts, Tewksbury | 1 |
United States, Massachusetts, West Newton | (+1) 2 |
United States, Massachusetts, Westborough | 1 |
United States, Massachusetts, Westfield | 1 |
United States, Massachusetts, Williamstown | 1 |
United States, Massachusetts, Woburn | 1 |
United States, Massachusetts, Worcester | 2 |
United States, Michigan, Ann Arbor | 7 |
United States, Michigan, Baraga | 1 |
United States, Michigan, Big Rapids | 1 |
United States, Michigan, Cadillac | 1 |
United States, Michigan, Canton | 2 |
United States, Michigan, Clarkston | 1 |
United States, Michigan, Dearborn | 1 |
United States, Michigan, Detroit | 2 |
United States, Michigan, Grand Rapids | 1 |
United States, Michigan, Grant | 1 |
United States, Michigan, Grosse Pointe | 1 |
United States, Michigan, Haslett | 1 |
United States, Michigan, Highland Park (NEW) | 1 |
United States, Michigan, Holland | 2 |
United States, Michigan, Jackson | 1 |
United States, Michigan, Kalamazoo | 2 |
United States, Michigan, Lake Orion | 2 |
United States, Michigan, Lansing | 8 |
United States, Michigan, Macomb | 1 |
United States, Michigan, Manchester | 2 |
United States, Michigan, Marquette | 1 |
United States, Michigan, Metamora | 1 |
United States, Michigan, Midland | 1 |
United States, Michigan, Monroe | 1 |
United States, Michigan, Muskegon | 1 |
United States, Michigan, New Baltimore | 1 |
United States, Michigan, Novi | 1 |
United States, Michigan, Okemos | 1 |
United States, Michigan, Ortonville | 1 |
United States, Michigan, Oxford | 1 |
United States, Michigan, Pinckney | 1 |
United States, Michigan, Pinconning | 1 |
United States, Michigan, Rochester | 2 |
United States, Michigan, Roseville | 1 |
United States, Michigan, Saginaw | 1 |
United States, Michigan, Spring Lake | 1 |
United States, Michigan, Taylor | 1 |
United States, Michigan, Traverse City | 1 |
United States, Michigan, Trenton | 1 |
United States, Michigan, Troy | 3 |
United States, Michigan, West Bloomfield | 1 |
United States, Michigan, Westland | 1 |
United States, Minnesota, Austin | 2 |
United States, Minnesota, Buffalo | 1 |
United States, Minnesota, Champlin | 2 |
United States, Minnesota, Cokato | 1 |
United States, Minnesota, Eden Prairie | 1 |
United States, Minnesota, Farmington | 1 |
United States, Minnesota, Hutchinson | 1 |
United States, Minnesota, Longville | 1 |
United States, Minnesota, Mankato | 4 |
United States, Minnesota, Minneapolis | 10 |
United States, Minnesota, Moorhead | 1 |
United States, Minnesota, Northfield | 1 |
United States, Minnesota, Rochester | 2 |
United States, Minnesota, Sauk Rapids (NEW) | 1 |
United States, Minnesota, St. Cloud | 1 |
United States, Minnesota, St. Paul | 1 |
United States, Minnesota, Upsala | 1 |
United States, Minnesota, Wyoming | 1 |
United States, Mississippi, Batesville | 1 |
United States, Mississippi, Corinth | 1 |
United States, Mississippi, Mccomb | 1 |
United States, Mississippi, New Albany | 1 |
United States, Missouri, Branson | 1 |
United States, Missouri, Brookline Station | 1 |
United States, Missouri, Chesterfield | 1 |
United States, Missouri, Columbia | 2 |
United States, Missouri, Independence | 1 |
United States, Missouri, Kansas City | 3 |
United States, Missouri, Kearney | 1 |
United States, Missouri, Kirksville | 2 |
United States, Missouri, O Fallon | 2 |
United States, Missouri, Springfield | 3 |
United States, Missouri, St. Louis | (+1) 5 |
United States, Missouri, St. Peters | 1 |
United States, Missouri, Steedman | 1 |
United States, Missouri, Sullivan | 1 |
United States, Missouri, Wentzville | 1 |
United States, Montana, Helena | 1 |
United States, Montana, Kalispell | 1 |
United States, Montana, Stevensville | 2 |
United States, Nebraska, Beatrice | 1 |
United States, Nebraska, Bellevue | 1 |
United States, Nebraska, Lincoln | 5 |
United States, Nebraska, Omaha | 3 |
United States, Nebraska, Pilger | 1 |
United States, Nebraska, Scottsbluff | 1 |
United States, Nevada, Carson City | 1 |
United States, Nevada, Dayton | 1 |
United States, Nevada, Gerlach | 1 |
United States, Nevada, Las Vegas | 13 |
United States, Nevada, Reno | (+1) 8 |
United States, Nevada, Sparks | 1 |
United States, Nevada, Zephyr Cove | 1 |
United States, New Hampshire, Concord | 1 |
United States, New Hampshire, Derry | 1 |
United States, New Hampshire, Dover | (+1) 2 |
United States, New Hampshire, Durham | 1 |
United States, New Hampshire, Jaffrey | 1 |
United States, New Hampshire, Laconia | 2 |
United States, New Hampshire, Londonderry | 1 |
United States, New Hampshire, Manchester | 3 |
United States, New Hampshire, Moultonborough | 1 |
United States, New Jersey, Absecon | 5 |
United States, New Jersey, Beachwood | 1 |
United States, New Jersey, Bedminster | (+1) 17 |
United States, New Jersey, Blairstown | 1 |
United States, New Jersey, Bloomfield | 1 |
United States, New Jersey, Brick | 1 |
United States, New Jersey, Burlington | 1 |
United States, New Jersey, Chester | 1 |
United States, New Jersey, Clementon | 1 |
United States, New Jersey, East Brunswick | 2 |
United States, New Jersey, Edgewater | 1 |
United States, New Jersey, Elmwood Park | 1 |
United States, New Jersey, Englishtown | 1 |
United States, New Jersey, Freehold | 1 |
United States, New Jersey, Glenwood | 1 |
United States, New Jersey, Harrison | 1 |
United States, New Jersey, Highland Park | 1 |
United States, New Jersey, Hoboken | 1 |
United States, New Jersey, Irvington | 1 |
United States, New Jersey, Jackson | 1 |
United States, New Jersey, Jersey City | 7 |
United States, New Jersey, Kearny | 1 |
United States, New Jersey, Livingston | 15 |
United States, New Jersey, Maple Shade | 1 |
United States, New Jersey, Maplewood | 1 |
United States, New Jersey, Medford | 1 |
United States, New Jersey, Middletown | 2 |
United States, New Jersey, Milltown | 1 |
United States, New Jersey, Monmouth Junction | 1 |
United States, New Jersey, Montclair | 1 |
United States, New Jersey, Mt. Laurel | (+1) 24 |
United States, New Jersey, New Brunswick | 1 |
United States, New Jersey, New Providence | 1 |
United States, New Jersey, Newark | 2 |
United States, New Jersey, Oak Ridge | 1 |
United States, New Jersey, Oradell | 1 |
United States, New Jersey, Parsippany | 1 |
United States, New Jersey, Passaic | 1 |
United States, New Jersey, Paterson | 1 |
United States, New Jersey, Pennington | 1 |
United States, New Jersey, Princeton | 6 |
United States, New Jersey, Princeton Junction | 1 |
United States, New Jersey, Randolph | 1 |
United States, New Jersey, Sewell | 1 |
United States, New Jersey, Sicklerville | 1 |
United States, New Jersey, South Plainfield | 1 |
United States, New Jersey, Totowa | 1 |
United States, New Jersey, Trenton | 2 |
United States, New Jersey, Union City | 1 |
United States, New Jersey, Vincentown | 1 |
United States, New Jersey, Warren | 1 |
United States, New Jersey, West Orange | 1 |
United States, New Jersey, Westfield | 1 |
United States, New Jersey, Woodbine | 1 |
United States, New Jersey, Woodbridge | 1 |
United States, New Jersey, Woodcliff Lake | 1 |
United States, New Mexico, Albuquerque | 10 |
United States, New Mexico, Edgewood | 1 |
United States, New Mexico, Las Cruces | 1 |
United States, New Mexico, Ojo Caliente | 1 |
United States, New Mexico, Santa Fe | 1 |
United States, New York, Albany | 2 |
United States, New York, Albertson | 1 |
United States, New York, Alfred | 1 |
United States, New York, Amityville | 1 |
United States, New York, Astoria | 1 |
United States, New York, Bayside | 1 |
United States, New York, Beacon | 2 |
United States, New York, Bethpage | 1 |
United States, New York, Binghamton | 2 |
United States, New York, Bronx | 9 |
United States, New York, Brooklyn | 21 |
United States, New York, Buffalo | 7 |
United States, New York, Cambridge | 1 |
United States, New York, Cicero | 1 |
United States, New York, Clinton | 1 |
United States, New York, Corning | 1 |
United States, New York, Delhi | 1 |
United States, New York, East Aurora | 1 |
United States, New York, East Meadow | 1 |
United States, New York, Endicott | 1 |
United States, New York, Fairport | 2 |
United States, New York, Far Rockaway | 1 |
United States, New York, Farmingdale | 1 |
United States, New York, Flushing | 1 |
United States, New York, Forest Hills | 1 |
United States, New York, Ft. Drum | 1 |
United States, New York, Garden City | 1 |
United States, New York, Geneva | 1 |
United States, New York, Glen Cove | 1 |
United States, New York, Glens Falls | 1 |
United States, New York, Gloversville | 2 |
United States, New York, Great Neck | 1 |
United States, New York, Greenvale | 1 |
United States, New York, Hamilton | 1 |
United States, New York, Hampton Bays | 1 |
United States, New York, Hartsdale | 1 |
United States, New York, Hempstead | 1 |
United States, New York, Henrietta | 1 |
United States, New York, Hicksville | 3 |
United States, New York, High Falls | 2 |
United States, New York, Holbrook | 2 |
United States, New York, Hollis | 1 |
United States, New York, Huntington Station | 1 |
United States, New York, Hyde Park | 1 |
United States, New York, Islandia | 1 |
United States, New York, Ithaca | 2 |
United States, New York, Jackson Heights | 1 |
United States, New York, Jamaica | (+1) 3 |
United States, New York, Jericho | 1 |
United States, New York, Johnson City | 1 |
United States, New York, Katonah | 1 |
United States, New York, Kings Park | 2 |
United States, New York, Kingston | 1 |
United States, New York, Little Neck | 1 |
United States, New York, Liverpool | 1 |
United States, New York, Lockport | 1 |
United States, New York, Malone | 1 |
United States, New York, Manhasset | 1 |
United States, New York, Manlius | 1 |
United States, New York, Medford | 1 |
United States, New York, Merrick | 1 |
United States, New York, Middletown | 2 |
United States, New York, Monsey | 1 |
United States, New York, New Hartford | 1 |
United States, New York, New Hyde Park | 1 |
United States, New York, New Rochelle | (+1) 2 |
United States, New York, New Windsor | 5 |
United States, New York, New York | (+8) 138 |
United States, New York, Newark | 1 |
United States, New York, Northport | 1 |
United States, New York, Nyack | 1 |
United States, New York, Oceanside | 1 |
United States, New York, Old Westbury | 1 |
United States, New York, Oneonta | 1 |
United States, New York, Oswego | 1 |
United States, New York, Patchogue | 1 |
United States, New York, Pelham | 1 |
United States, New York, Plainview | 2 |
United States, New York, Poughkeepsie | 10 |
United States, New York, Rochester | 8 |
United States, New York, Roosevelt | 1 |
United States, New York, Rosedale | 2 |
United States, New York, Rosendale | 1 |
United States, New York, Rye | 1 |
United States, New York, Scarsdale | 2 |
United States, New York, Shelter Island | 1 |
United States, New York, Skaneateles | 1 |
United States, New York, Spring Valley | 1 |
United States, New York, Staten Island | (+1) 2 |
United States, New York, Stony Brook | 3 |
United States, New York, Syosset | 1 |
United States, New York, Syracuse | 4 |
United States, New York, Tappan | 1 |
United States, New York, Tarrytown | 1 |
United States, New York, Thornwood | 1 |
United States, New York, Utica | 1 |
United States, New York, Verplanck | 1 |
United States, New York, Wappingers Falls | 1 |
United States, New York, Waterloo | 2 |
United States, New York, Watertown | 1 |
United States, New York, West Babylon | 1 |
United States, New York, Westport | 1 |
United States, New York, White Plains | 1 |
United States, New York, Wurtsboro | 1 |
United States, New York, Yonkers | 4 |
United States, New York, Yorktown Heights | 1 |
United States, North Carolina, Angier | 1 |
United States, North Carolina, Asheville | 2 |
United States, North Carolina, Candler | 1 |
United States, North Carolina, Cary | 6 |
United States, North Carolina, Charlotte | 7 |
United States, North Carolina, Durham | 4 |
United States, North Carolina, Greensboro | 1 |
United States, North Carolina, Havelock | 1 |
United States, North Carolina, Hendersonville | 1 |
United States, North Carolina, Hope Mills | 1 |
United States, North Carolina, Huntersville | 1 |
United States, North Carolina, Iron Station | 1 |
United States, North Carolina, Knightdale | 2 |
United States, North Carolina, Lowell | 1 |
United States, North Carolina, Lumberton | 1 |
United States, North Carolina, Marion | 1 |
United States, North Carolina, Monroe | 1 |
United States, North Carolina, Mooresville | 1 |
United States, North Carolina, Nashville | 1 |
United States, North Carolina, New Bern | 1 |
United States, North Carolina, Pisgah Forest | 1 |
United States, North Carolina, Pittsboro | 1 |
United States, North Carolina, Raeford | 1 |
United States, North Carolina, Raleigh | 7 |
United States, North Carolina, Roanoke Rapids | 1 |
United States, North Carolina, Roxboro | 1 |
United States, North Carolina, Sherrills Ford | 1 |
United States, North Carolina, Whiteville | 1 |
United States, North Carolina, Wilmington | 1 |
United States, North Dakota, Belfield | 1 |
United States, North Dakota, Dickinson | 1 |
United States, North Dakota, Fargo | 1 |
United States, North Dakota, Grand Forks | 1 |
United States, North Dakota, Jamestown | 1 |
United States, Ohio, Akron | 1 |
United States, Ohio, Amelia | 1 |
United States, Ohio, Beachwood | 1 |
United States, Ohio, Bellbrook | 1 |
United States, Ohio, Boardman | 1 |
United States, Ohio, Chesterland | 1 |
United States, Ohio, Cincinnati | 5 |
United States, Ohio, Cleveland | 9 |
United States, Ohio, Columbus | (+1) 9 |
United States, Ohio, Dayton | 3 |
United States, Ohio, Gallipolis | 1 |
United States, Ohio, Germantown | 1 |
United States, Ohio, Groveport | 1 |
United States, Ohio, Hamilton | 1 |
United States, Ohio, Hilliard | 1 |
United States, Ohio, Lakewood | 1 |
United States, Ohio, Lebanon | 1 |
United States, Ohio, Logan | 2 |
United States, Ohio, Marietta | 1 |
United States, Ohio, Maumee | 1 |
United States, Ohio, Miamisburg | 1 |
United States, Ohio, Milford | 2 |
United States, Ohio, New Albany | 1 |
United States, Ohio, North Olmsted | 1 |
United States, Ohio, Northfield | 1 |
United States, Ohio, Portsmouth | 3 |
United States, Ohio, Sunbury | 1 |
United States, Ohio, Toledo | 2 |
United States, Ohio, Union City | 2 |
United States, Ohio, Warren | 1 |
United States, Ohio, West Chester | 1 |
United States, Ohio, Wooster | 1 |
United States, Oklahoma, Ada | 1 |
United States, Oklahoma, Broken Arrow | 1 |
United States, Oklahoma, Edmond (NEW) | 1 |
United States, Oklahoma, Jenks | 1 |
United States, Oklahoma, Lawton | 2 |
United States, Oklahoma, Oklahoma City | 4 |
United States, Oklahoma, Owasso | 1 |
United States, Oklahoma, Stillwater | 1 |
United States, Oklahoma, Taloga | 1 |
United States, Oklahoma, Tulsa | 2 |
United States, Oregon, Ashland | 1 |
United States, Oregon, Beaverton | 2 |
United States, Oregon, Corvallis | 1 |
United States, Oregon, Eugene | 2 |
United States, Oregon, Forest Grove | 1 |
United States, Oregon, Grants Pass | 1 |
United States, Oregon, Gresham | 1 |
United States, Oregon, Hillsboro | (+2) 7 |
United States, Oregon, Portland | (+2) 26 |
United States, Oregon, Salem | 2 |
United States, Oregon, West Linn | 1 |
United States, Oregon, Wilsonville | 2 |
United States, Pennsylvania, Altoona | 1 |
United States, Pennsylvania, Ambler | 1 |
United States, Pennsylvania, Ambridge | 2 |
United States, Pennsylvania, Beaver Falls | 1 |
United States, Pennsylvania, Blue Bell | 1 |
United States, Pennsylvania, Braddock | 1 |
United States, Pennsylvania, Butler | 1 |
United States, Pennsylvania, Carlisle | 2 |
United States, Pennsylvania, Conshohocken | 1 |
United States, Pennsylvania, Elizabeth | 1 |
United States, Pennsylvania, Ephrata | 1 |
United States, Pennsylvania, Erie | 1 |
United States, Pennsylvania, Etters | 1 |
United States, Pennsylvania, Glenmoore | 1 |
United States, Pennsylvania, Grove City | 1 |
United States, Pennsylvania, Harrisburg | 1 |
United States, Pennsylvania, Hershey | 3 |
United States, Pennsylvania, Hunlock Creek | 1 |
United States, Pennsylvania, Huntingdon Valley | 1 |
United States, Pennsylvania, Johnstown | 1 |
United States, Pennsylvania, Lancaster | 3 |
United States, Pennsylvania, Lansdowne (NEW) | 1 |
United States, Pennsylvania, Mechanicsburg | 1 |
United States, Pennsylvania, Meyersdale | 1 |
United States, Pennsylvania, Natrona Heights | 1 |
United States, Pennsylvania, New Kensington | 2 |
United States, Pennsylvania, Norwood | 1 |
United States, Pennsylvania, Palmerton | 1 |
United States, Pennsylvania, Palmyra | 1 |
United States, Pennsylvania, Philadelphia | 26 |
United States, Pennsylvania, Pittsburgh | 8 |
United States, Pennsylvania, Schwenksville | 1 |
United States, Pennsylvania, Scranton | 3 |
United States, Pennsylvania, Shenandoah | 1 |
United States, Pennsylvania, Shermans Dale | 1 |
United States, Pennsylvania, Spring City | 1 |
United States, Pennsylvania, Spring Grove | 1 |
United States, Pennsylvania, State College | 3 |
United States, Pennsylvania, Stroudsburg | 1 |
United States, Pennsylvania, Walnutport | 1 |
United States, Pennsylvania, Wayne | 2 |
United States, Pennsylvania, West Chester | 4 |
United States, Rhode Island, Cranston | 2 |
United States, Rhode Island, Cumberland | 1 |
United States, Rhode Island, Newport | 1 |
United States, Rhode Island, Providence | 4 |
United States, Rhode Island, Wakefield | 1 |
United States, Rhode Island, Warren | 1 |
United States, Rhode Island, Warwick | 1 |
United States, Rhode Island, Woonsocket | 1 |
United States, South Carolina, Chester | 1 |
United States, South Carolina, Columbia | 4 |
United States, South Carolina, Ft. Mill | 2 |
United States, South Carolina, Gaffney | 1 |
United States, South Carolina, Goose Creek | 1 |
United States, South Carolina, Greenville | 2 |
United States, South Carolina, Greer | 1 |
United States, South Carolina, Hartsville | 1 |
United States, South Carolina, Hilton Head Island | 3 |
United States, South Carolina, Lyman | 1 |
United States, South Carolina, Murrells Inlet | 1 |
United States, South Carolina, Myrtle Beach | 2 |
United States, South Carolina, Pelion | 2 |
United States, South Carolina, Rock Hill (NEW) | 1 |
United States, South Carolina, Simpsonville | 1 |
United States, South Carolina, Summerville | 1 |
United States, South Carolina, Woodruff | 1 |
United States, South Dakota, Aberdeen | 1 |
United States, South Dakota, Rapid City | 2 |
United States, South Dakota, Sioux Falls | 2 |
United States, Tennessee, Bartlett | 1 |
United States, Tennessee, Brentwood | 1 |
United States, Tennessee, Chapel Hill | 1 |
United States, Tennessee, Chattanooga | 1 |
United States, Tennessee, Christiana | 1 |
United States, Tennessee, Collierville | 1 |
United States, Tennessee, Crossville | 1 |
United States, Tennessee, Dayton | 1 |
United States, Tennessee, Franklin | 1 |
United States, Tennessee, Goodlettsville | 1 |
United States, Tennessee, Kingsport | 1 |
United States, Tennessee, Knoxville | 4 |
United States, Tennessee, Maryville | 1 |
United States, Tennessee, Memphis | 3 |
United States, Tennessee, Morristown | 1 |
United States, Tennessee, Murfreesboro | 1 |
United States, Tennessee, Nashville | (+1) 8 |
United States, Tennessee, Oak Ridge | 1 |
United States, Tennessee, Spring Hill | 1 |
United States, Tennessee, Tullahoma | 1 |
United States, Texas, Allen | 1 |
United States, Texas, Arlington | 3 |
United States, Texas, Austin | 25 |
United States, Texas, Beeville | 1 |
United States, Texas, Burleson | 1 |
United States, Texas, Canutillo | 1 |
United States, Texas, Carrollton | 2 |
United States, Texas, Coppell | 1 |
United States, Texas, Cypress | 1 |
United States, Texas, Dallas | (+3) 34 |
United States, Texas, Del Rio | 1 |
United States, Texas, Denton | 3 |
United States, Texas, Duncanville | 1 |
United States, Texas, El Paso | 4 |
United States, Texas, Frisco | 2 |
United States, Texas, Garland | 1 |
United States, Texas, Grand Prairie | 1 |
United States, Texas, Gunter | 1 |
United States, Texas, Helotes | 2 |
United States, Texas, Houston | 16 |
United States, Texas, Irving | 2 |
United States, Texas, Keller (NEW) | 1 |
United States, Texas, Lake Jackson | 1 |
United States, Texas, Laredo | 1 |
United States, Texas, Leander | 1 |
United States, Texas, Lewisville | 1 |
United States, Texas, Longview | 1 |
United States, Texas, Lubbock | 1 |
United States, Texas, Marble Falls | 1 |
United States, Texas, Missouri City | 4 |
United States, Texas, Munday | 1 |
United States, Texas, Pasadena | 1 |
United States, Texas, Pearland | 1 |
United States, Texas, Plano | (+1) 12 |
United States, Texas, Round Rock | 3 |
United States, Texas, San Antonio | 10 |
United States, Texas, Spring | 2 |
United States, Texas, Sugar Land | 1 |
United States, Texas, Sulphur Springs | 1 |
United States, Texas, The Colony | 1 |
United States, Texas, Tyler | 2 |
United States, Texas, Waco | 1 |
United States, Texas, Wichita Falls | 1 |
United States, Texas, Wylie | 1 |
United States, Utah, American Fork | 1 |
United States, Utah, Delta | 1 |
United States, Utah, Logan | 1 |
United States, Utah, Orem | (+1) 8 |
United States, Utah, Pleasant Grove | 1 |
United States, Utah, Provo | (+1) 3 |
United States, Utah, Riverton | 1 |
United States, Utah, Salt Lake City | 5 |
United States, Utah, Sandy | 1 |
United States, Utah, Springville | 1 |
United States, Vermont, Bristol | 1 |
United States, Vermont, Burlington | 3 |
United States, Vermont, Canaan | 1 |
United States, Vermont, Huntington | 1 |
United States, Virginia, Alexandria | 6 |
United States, Virginia, Arlington | 3 |
United States, Virginia, Ashburn | 1 |
United States, Virginia, Carrollton | 1 |
United States, Virginia, Centreville | 1 |
United States, Virginia, Chantilly | 1 |
United States, Virginia, Charlottesville | 7 |
United States, Virginia, Chesapeake | 3 |
United States, Virginia, Colonial Beach (NEW) | 1 |
United States, Virginia, Colonial Heights | 1 |
United States, Virginia, Fairfax | 2 |
United States, Virginia, Falls Church | 1 |
United States, Virginia, Fredericksburg | 1 |
United States, Virginia, Galax | 1 |
United States, Virginia, Hampton | 1 |
United States, Virginia, Herndon | 10 |
United States, Virginia, Manassas | 2 |
United States, Virginia, Mclean | (+1) 3 |
United States, Virginia, Mechanicsville | 3 |
United States, Virginia, Newport News | 1 |
United States, Virginia, Norfolk | (+1) 4 |
United States, Virginia, Phenix | 1 |
United States, Virginia, Portsmouth | 1 |
United States, Virginia, Quantico | 1 |
United States, Virginia, Reston | 11 |
United States, Virginia, Richmond | 12 |
United States, Virginia, Roanoke | 1 |
United States, Virginia, Ruckersville | 1 |
United States, Virginia, Salem | 1 |
United States, Virginia, Smithfield | 1 |
United States, Virginia, Springfield | 3 |
United States, Virginia, Stafford | 1 |
United States, Virginia, Stephens City | 1 |
United States, Virginia, Sterling | 6 |
United States, Virginia, Toano | 1 |
United States, Virginia, Vienna | 1 |
United States, Virginia, Vinton | 1 |
United States, Virginia, Virginia Beach | 4 |
United States, Virginia, Williamsburg | 2 |
United States, Virginia, Woodbridge | 1 |
United States, Washington, Auburn | 2 |
United States, Washington, Bellevue | 4 |
United States, Washington, Bellingham | 1 |
United States, Washington, Bremerton | 1 |
United States, Washington, Duvall | 1 |
United States, Washington, Ellensburg | 1 |
United States, Washington, Everett | 1 |
United States, Washington, Federal Way | 2 |
United States, Washington, Ferndale | 1 |
United States, Washington, Gig Harbor | 1 |
United States, Washington, Issaquah | 1 |
United States, Washington, Kenmore | 1 |
United States, Washington, Kirkland | (+1) 2 |
United States, Washington, Lakewood | 1 |
United States, Washington, Lynnwood | 1 |
United States, Washington, Mercer Island | 1 |
United States, Washington, Mountlake Terrace | 1 |
United States, Washington, Olympia | 1 |
United States, Washington, Ravensdale | 1 |
United States, Washington, Redmond | (+3) 318 |
United States, Washington, Renton | 4 |
United States, Washington, Richland | 2 |
United States, Washington, Sammamish | 1 |
United States, Washington, Seattle | 81 |
United States, Washington, Shelton | 1 |
United States, Washington, Spokane | 3 |
United States, Washington, Tacoma | 1 |
United States, Washington, Vancouver | 5 |
United States, Washington, Washougal | 1 |
United States, Washington, Wenatchee | 1 |
United States, Washington, Yakima | 1 |
United States, West Virginia, Charleston | 1 |
United States, West Virginia, Martinsburg | 1 |
United States, West Virginia, Shady Spring | 1 |
United States, West Virginia, True | 1 |
United States, Wisconsin, Danbury | 1 |
United States, Wisconsin, Dresser | 1 |
United States, Wisconsin, Eau Claire | 1 |
United States, Wisconsin, Fond Du Lac | 1 |
United States, Wisconsin, Grafton | 1 |
United States, Wisconsin, Greendale | 2 |
United States, Wisconsin, Janesville | 1 |
United States, Wisconsin, Lake Geneva | 1 |
United States, Wisconsin, Madison | 12 |
United States, Wisconsin, Menomonee Falls | 3 |
United States, Wisconsin, Milwaukee | 5 |
United States, Wisconsin, Monroe | 1 |
United States, Wisconsin, Neenah | 1 |
United States, Wisconsin, New Berlin | 1 |
United States, Wisconsin, Oak Creek | 2 |
United States, Wisconsin, Pardeeville (NEW) | 1 |
United States, Wisconsin, Plover | 1 |
United States, Wisconsin, Racine | 1 |
United States, Wisconsin, Rice Lake | 1 |
United States, Wisconsin, Salem | 1 |
United States, Wisconsin, Washburn | 1 |
United States, Wisconsin, Waukesha | 1 |
United States, Wisconsin, West Bend | 1 |
Uruguay (in total) | 10 |
Uruguay, -, - | 2 |
Uruguay, Maldonado, Maldonado | 1 |
Uruguay, Montevideo, Montevideo | 7 |
Uzbekistan (in total) | 10 |
Uzbekistan, -, - | 1 |
Uzbekistan, Toshkent, Tashkent | 9 |
Venezuela (in total) | 19 |
Venezuela, Bolivarian Republic Of, Bolivarian Republic Of, Carabobo | 4 |
Venezuela, Bolivarian Republic Of, Bolivarian Republic Of, Distrito Federal | 11 |
Venezuela, Bolivarian Republic Of, Bolivarian Republic Of, Lara | 1 |
Venezuela, Bolivarian Republic Of, Bolivarian Republic Of, Nueva Esparta | 1 |
Venezuela, Bolivarian Republic Of, Bolivarian Republic Of, Zulia | 2 |
Viet Nam (in total) | 30 |
Viet Nam, -, - | (+2) 16 |
Viet Nam, Ha Noi, Hanoi | 4 |
Viet Nam, Ho Chi Minh, Ho Chi Minh City | (+2) 10 |