diff --git a/README.md b/README.md
index 642eef2e..436c2f73 100644
--- a/README.md
+++ b/README.md
@@ -5,20 +5,20 @@ SMhasher
| Hash function | MiB/sec |cycl./hash|cycl./map | size| Quality problems |
|:----------------------------------------------|-------------:|---------:|-----------:|----:|--------------------------------|
-| [donothing32](doc/donothing32.txt) | 11149460.06 | 4.00 | -| 13 | bad seed 0, test NOP |
-| [donothing64](doc/donothing64.txt) | 11787676.42 | 4.00 | -| 13 | bad seed 0, test NOP |
-| [donothing128](doc/donothing128.txt) | 11745060.76 | 4.06 | -| 13 | bad seed 0, test NOP |
-| [NOP_OAAT_read64](doc/NOP_OAAT_read64.txt) | 11372846.37 | 14.00 | -| 47 | test NOP |
-| [BadHash](doc/BadHash.txt) | 769.94 | 73.97 | -| 47 | bad seed 0, test FAIL |
-| [sumhash](doc/sumhash.txt) | 10699.57 | 29.53 | -| 363 | bad seed 0, test FAIL |
-| [sumhash32](doc/sumhash32.txt) | 42877.79 | 23.12 | -| 863 | UB, test FAIL |
-| [multiply_shift](doc/multiply_shift.txt) | 8026.77 | 26.05 | 226.80 (8) | 345 | bad seeds & 0xfffffff0, fails most tests |
+| [donothing32](doc/donothing32.txt) | 11536809.55 | 4.00 | -| 13 | bad seed 0, test NOP |
+| [donothing64](doc/donothing64.txt) | 12269832.97 | 4.00 | -| 13 | bad seed 0, test NOP |
+| [donothing128](doc/donothing128.txt) | 11961841.48 | 4.08 | -| 13 | bad seed 0, test NOP |
+| [NOP_OAAT_read64](doc/NOP_OAAT_read64.txt) | 11652662.97 | 14.00 | -| 47 | test NOP |
+| [BadHash](doc/BadHash.txt) | 794.68 | 72.80 | -| 47 | bad seed 0, test FAIL |
+| [sumhash](doc/sumhash.txt) | 10184.67 | 29.40 | -| 363 | bad seed 0, test FAIL |
+| [sumhash32](doc/sumhash32.txt) | 44755.87 | 23.46 | -| 863 | UB, test FAIL |
+| [multiply_shift](doc/multiply_shift.txt) | 8286.63 | 25.39 | 209.06 (2) | 345 | bad seeds & 0xfffffff0, fails most tests |
| [pair_multiply_shift](doc/pair_multiply_shift)| 3716.95 | 40.22 | 186.34 (3) | 609 | fails most tests |
| -------------------------- | | | | | |
-| [crc32](doc/crc32.txt) | 383.12 | 134.21 | 257.50 (11)| 422 | insecure, 8590x collisions, distrib, PerlinNoise |
-| [md5_32](doc/md5_32.txt) | 350.53 | 644.31 | 894.12 (10)|4419 | |
-| [md5_64](doc/md5_64.txt) | 351.01 | 656.67 | 897.43 (12)|4419 | |
-| [md5-128](doc/md5-128.txt) | 350.89 | 681.88 | 894.03 (13)|4419 | |
+| [crc32](doc/crc32.txt) | 369.88 | 142.33 | 396.81 (101)| 422 | insecure, 8590x collisions, distrib, PerlinNoise |
+| [md5_32](doc/md5_32.txt) | 359.43 | 638.92 | 865.21 (6) |4419 | |
+| [md5_64](doc/md5_64.txt) | 360.20 | 640.38 | 869.55 (6) |4419 | |
+| [md5-128](doc/md5-128.txt) | 344.63 | 669.59 | 856.34 (5) |4419 | |
| [sha1_32](doc/sha1_32.txt) | 353.03 | 1385.80 |1759.94 (5) |5126 | Sanity, Cyclic low32, 36.6% distrib |
| [sha1_64](doc/sha1_64.txt) | 353.03 | 1385.80 |1759.94 (5) |5126 | Sanity, Cyclic low32, 36.6% distrib |
| [sha1-160](doc/sha1-160.txt) | 364.95 | 1470.55 |1794.16 (13)|5126 | Comb/Cyclic low32 |
@@ -26,16 +26,16 @@ SMhasher
| [sha2-224_64](doc/sha2-224_64.txt) | 147.60 | 1360.10 |1620.93 (13)| | Cyclic low32 |
| [sha2-256](doc/sha2-256.txt) | 147.80 | 1374.90 |1606.06 (16)| | |
| [sha2-256_64](doc/sha2-256_64.txt) | 148.01 | 1376.34 |1624.71 (16)| | |
-| [sha1ni](doc/sha1ni.txt) | 1601.21 | 174.16 | 397.28 (6) | 989 | insecure,sanity, Permutation, Zeroes, machine-specific |
-| [sha1ni_32](doc/sha1ni_32.txt) | 1576.17 | 174.04 | 405.56 (6) | 989 | machine-specific |
-| [sha2ni-256](doc/sha2ni-256.txt) | 1527.38 | 184.35 | 404.40 (4) |4241 | insecure,sanity, Permutation, Zeroes, machine-specific |
-| [sha2ni-256_64](doc/sha2ni-256_64.txt) | 1501.85 | 186.20 | 407.96 (5) |4241 | Zeroes, machine-specific |
-| [blake3_c](doc/blake3_c.txt) | 1288.84 | 357.69 | 582.89 (6) | | no 32bit portability |
-| [rmd128](doc/rmd128.txt) | 290.90 | 710.49 | 965.55 (6) | | |
+| [sha1ni](doc/sha1ni.txt) | 1632.88 | 170.77 | 379.84 (5) | 989 | insecure,sanity, Permutation, Zeroes, machine-specific |
+| [sha1ni_32](doc/sha1ni_32.txt) | 1583.50 | 172.17 | 387.70 (4) | 989 | machine-specific |
+| [sha2ni-256](doc/sha2ni-256.txt) | 1556.66 | 180.75 | 393.79 (5) |4241 | insecure,sanity, Permutation, Zeroes, machine-specific |
+| [sha2ni-256_64](doc/sha2ni-256_64.txt) | 1508.82 | 184.89 | 393.07 (6) |4241 | Zeroes, machine-specific |
+| [blake3_c](doc/blake3_c.txt) | 1298.04 | 354.25 | 563.63 (4) | | no 32bit portability |
+| [rmd128](doc/rmd128.txt) | 294.42 | 712.67 | 930.65 (4) | | |
| [rmd160](doc/rmd160.txt) | 202.16 | 1045.79 |1287.74 (16)| | Cyclic hi32 |
-| [rmd256](doc/rmd256.txt) | 364.81 | 584.86 | 835.02 (11)| | |
-| [edonr224](doc/edonr224.txt) | 864.69 | 303.42 | 526.94 (6) | | |
-| [edonr256](doc/edonr256.txt) | 847.85 | 305.79 | 510.01 (4) | | |
+| [rmd256](doc/rmd256.txt) | 366.21 | 615.39 | 830.04 (7) | | |
+| [edonr224](doc/edonr224.txt) | 863.77 | 304.76 | 496.66 (3) | | |
+| [edonr256](doc/edonr256.txt) | 870.97 | 296.40 | 517.82 (6) | | |
| [blake2s-128](doc/blake2s-128.txt) | 295.30 | 698.09 |1059.24 (51)| | |
| [blake2s-160](doc/blake2s-160.txt) | 215.01 | 1026.74 |1239.54 (11)| | |
| [blake2s-224](doc/blake2s-224.txt) | 207.06 | 1063.86 |1236.50 (20)| | |
@@ -46,87 +46,91 @@ SMhasher
| [blake2b-256](doc/blake2b-256.txt) | 355.97 | 1232.22 |1443.31 (19)| | |
| [blake2b-256_64](doc/blake2b-256_64.txt) | 356.97 | 1222.76 |1435.03 (9) | | |
| [asconhashv12](doc/asconhashv12.txt) | 144.98 | 885.02 |1324.23 (38)|4341 | |
-| [asconhashv12_64](doc/asconhashv12_64.txt) | 159.68 | 386.90 | 480.86 (4) |6490 | |
+| [asconhashv12_64](doc/asconhashv12_64.txt) | 159.33 | 402.54 | 473.15 (4) |6490 | |
| [sha3-256](doc/sha3-256.txt) | 100.58 | 3877.18 |4159.79 (37)| | PerlinNoise |
| [sha3-256_64](doc/sha3-256_64.txt) | 100.57 | 3909.00 |4174.63 (16)| | PerlinNoise |
-| [hasshe2](doc/hasshe2.txt) | 2773.89 | 64.35 | 282.30 (3) | 445 | Permutation,TwoBytes,Zeroes,Seed|
-| [poly_1_mersenne](doc/poly_1_mersenne.txt) | 1369.21 | 61.59 | 248.86 (4) | 479 | fails most tests |
-| [poly_2_mersenne](doc/poly_2_mersenne.txt) | 1364.03 | 70.30 | 261.00 (6) | 479 | |
-| [poly_3_mersenne](doc/poly_3_mersenne.txt) | 1342.82 | 80.22 | 268.79 (2) | 479 | |
-| [poly_4_mersenne](doc/poly_4_mersenne.txt) | 1343.19 | 89.13 | 277.52 (3) | 479 | |
-| [tabulation32](doc/tabulation32.txt) | 5781.16 | 40.00 | 241.79 (10) | 848 | collisions |
-| [tabulation](doc/tabulation.txt) | 7875.01 | 39.95 | 249.49 (3) | 554 | |
-| [crc32_hw](doc/crc32_hw.txt) | 6244.38 | 41.23 | 226.80 (2) | 653 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (SSE4.2/NEON) |
-| [crc32_hw1](doc/crc32_hw1.txt) | 7569.29 | 49.07 | 233.75 (3) | 671 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2) |
-| [crc64_hw](doc/crc64_hw.txt) | 6143.62 | 40.48 | 223.13 (2) | 652 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (SSE4.2/NEON) |
-| [crc32_pclmul](doc/crc32_pclmul.txt) | - | - | - | | insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2+PCLMUL) |
-| [o1hash](doc/o1hash.txt) | 11629440.57 | 18.15 | 199.35 (2) | 101 | insecure, no seed, zeros, fails all tests |
-| [fibonacci](doc/fibonacci.txt) | 16878.32 | 22.94 | 803.18 (15)|1692 | UB, zeros, fails all tests |
-| [FNV1a](doc/FNV1a.txt) | 760.52 | 73.83 | 254.29 (5) | 204 | bad seed, zeros, fails all tests |
-| [FNV1A_Totenschiff](doc/FNV1A_Totenschiff.txt)| 6274.78 | 26.23 | 251.13 (2) | 270 | UB, zeros, fails all tests |
-| [FNV1A_Pippip_Yurii](doc/FNV1A_Pippip_Yurii.txt)| 6172.14 | 27.55 | 244.80 (2) | 147 | UB, sanity, fails all tests |
-| [FNV1a_YT](doc/FNV1a_YT.txt) | 13486.49 | 30.50 | 237.43 (4) | 321 | bad seed, UB, fails all tests |
-| [FNV2](doc/FNV2.txt) | 6171.60 | 32.20 | 208.59 (4) | 278 | fails all tests |
-| [FNV64](doc/FNV64.txt) | 774.37 | 72.43 | 201.15 (2) | 79 | fails all tests |
-| [FNV128](doc/FNV128.txt) | 390.14 | 136.42 | 289.00 (3) | 171 | fails all tests |
-| [k-hash32](doc/k-hash32.txt) | 2230.42 | 53.05 | 264.64 (3) | 808 | insecure, zeros, UB, bad seeds, fails all tests |
-| [k-hash64](doc/k-hash64.txt) | 2451.88 | 48.66 | 249.44 (2) | 609 | insecure, zeros, UB, bad seeds, fails all tests |
-| [fletcher2](doc/fletcher2.txt) | 15552.61 | 20.61 | 335.31 (3) | 248 | bad seed 0, UB, fails all tests |
-| [fletcher4](doc/fletcher4.txt) | 15556.93 | 20.60 | 358.60 (3) | 371 | bad seed 0, UB, fails all tests |
-| [bernstein](doc/bernstein.txt) | 1045.97 | 58.31 | 225.78 (3) | 41 | bad seed 0, fails all tests |
-| [sdbm](doc/sdbm.txt) | 784.83 | 68.57 | 222.68 (5) | 41 | bad seed 0, fails all tests |
-| [x17](doc/x17.txt) | 748.75 | 74.13 | 236.00 (10) | 79 | 99.98% bias, fails all tests |
-| [libiberty](doc/libiberty.txt) | 628.66 | 84.95 | 225.07 (4) | 37 | insecure, 100% bias, fails all tests, bad seed |
-| [gcc](doc/gcc.txt) | 611.69 | 86.47 | 231.51 (5) | 39 | insecure, 100% bias, fails all tests, bad seed |
-| [JenkinsOOAT](doc/JenkinsOOAT.txt) | 627.64 | 107.04 | 252.79 (3) | 153 | bad seed 0, 53.5% bias, fails all tests |
-| [JenkinsOOAT_perl](doc/JenkinsOOAT_perl.txt) | 608.10 | 94.17 | 254.09 (4) | 65 | bad seed 0, 1.5-11.5% bias, 7.2x collisions, BIC, LongNeighbors |
-| [MicroOAAT](doc/MicroOAAT.txt) | 701.35 | 76.68 | 251.01 (3) | 68 | 100% bias, distrib, BIC |
-| [pearsonhash64](doc/pearsonhash64.txt) | 434.17 | 124.14 | 230.79 (4) | | Avalanche, Seed, SSSE3 only. broken MSVC |
-| [pearsonhash128](doc/pearsonhash128.txt) | 434.23 | 121.34 | 221.03 (7) | | Avalanche, Seed, SSSE3 only. broken MSVC |
-| [pearsonhash256](doc/pearsonhash256.txt) | 444.08 | 119.11 | 229.75 (4) | | Avalanche, Seed, SSSE3 only. broken MSVC |
-| [VHASH_32](doc/VHASH_32.txt) | 13053.40 | 65.84 | 289.86 (3) |1231 | sanity, Seed, MomentChi2 |
-| [VHASH_64](doc/VHASH_64.txt) | 13465.50 | 63.88 | 286.38 (5) |1231 | sanity, Seed, Sparse |
-| [farsh32](doc/farsh32.txt) | 27038.23 | 66.88 | 278.89 (5) | 944 | insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors |
-| [farsh64](doc/farsh64.txt) | 13829.32 | 112.46 | 332.59 (3) | 944 | insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors |
-| [farsh128](doc/farsh128.txt) | 6878.88 | 233.35 | 384.85 (3) | 944 | insecure: AppendedZeroes, collisions+bias, permut,combin,2bytes,zeroes,PerlinNoise |
-| [farsh256](doc/farsh256.txt) | 3467.37 | 440.40 | 593.57 (5) | 944 | insecure: AppendedZeroes, collisions+bias, permut,combin,2bytes,zeroes,PerlinNoise |
-| [jodyhash32](doc/jodyhash32.txt) | 1794.34 | 41.12 | 235.12 (4) | 102 | bias, collisions, distr, BIC LongNeighbors |
-| [jodyhash64](doc/jodyhash64.txt) | 4813.10 | 40.72 | 239.22 (6) | 118 | bias, collisions, distr, BIC, LongNeighbors |
-| [lookup3](doc/lookup3.txt) | 2475.35 | 39.65 | 240.10 (3) | 341 | UB, 28% bias, collisions, 30% distr, BIC |
-| [superfast](doc/superfast.txt) | 2058.22 | 49.56 | 254.12 (3) | 210 | UB, bad seed 0, 91% bias, 5273.01x collisions, 37% distr, BIC |
-| [MurmurOAAT](doc/MurmurOAAT.txt) | 506.66 | 103.33 | 236.89 (3) | 47 | bad seed 0, collisions, 99.998% distr., BIC, LongNeighbors |
-| [Crap8](doc/Crap8.txt) | 3041.14 | 37.25 | 247.87 (4) | 342 | UB, 2.42% bias, collisions, 2% distrib |
-| [Murmur1](doc/Murmur1.txt) | 2027.85 | 48.51 | 253.34 (3) | 358 | UB, 1 bad seed, 511x collisions, Diff, BIC |
-| [Murmur2](doc/Murmur2.txt) | 3089.18 | 41.22 | 238.42 (4) | 358 | UB, 1 bad seed, 1.7% bias, 81x coll, 1.7% distrib, BIC |
-| [Murmur2A](doc/Murmur2A.txt) | 3087.98 | 45.90 | 238.54 (4) | 407 | UB, 1 bad seed, 12.7% bias, LongNeighbors |
-| [Murmur2B](doc/Murmur2B.txt) | 5919.38 | 38.18 | 215.96 (3) | 433 | UB, 1.8% bias, collisions, 3.4% distrib, BIC |
-| [Murmur2C](doc/Murmur2C.txt) | 3810.98 | 49.09 | 218.51 (3) | 444 | UB, 2^32 bad seeds, 91% bias, collisions, distr, BIC, LongNeighbors |
-| [Murmur3A](doc/Murmur3A.txt) | 2982.67 | 49.08 | 245.78 (4) | 351 | UB, 1 bad seed, Moment Chi2 69 |
-| [PMurHash32](doc/PMurHash32.txt) | 3005.85 | 48.88 | 242.38 (3) |1862 | 1 bad seed, Moment Chi2 69 |
-| [Murmur3C](doc/Murmur3C.txt) | 4833.18 | 56.87 | 250.47 (6) | 859 | UB, LongNeighbors, Text, DiffDist |
+| [hasshe2](doc/hasshe2.txt) | 2879.93 | 62.47 | 272.34 (2) | 445 | Permutation,TwoBytes,Zeroes,Seed|
+| [poly_1_mersenne](doc/poly_1_mersenne.txt) | 1278.37 | 63.42 | 244.41 (1) | 479 | fails most tests |
+| [poly_2_mersenne](doc/poly_2_mersenne.txt) | 1391.90 | 69.97 | 255.44 (3) | 479 | |
+| [poly_3_mersenne](doc/poly_3_mersenne.txt) | 1320.15 | 80.81 | 263.12 (2) | 479 | |
+| [poly_4_mersenne](doc/poly_4_mersenne.txt) | 1393.93 | 89.07 | 262.97 (2) | 479 | |
+| [tabulation32](doc/tabulation32.txt) | 5819.40 | 40.16 | 233.00 (3) | 848 | collisions |
+| [tabulation](doc/tabulation.txt) | 7407.94 | 39.83 | 240.25 (4) | 554 | |
+| [crc32_hw](doc/crc32_hw.txt) | 5537.79 | 40.80 | 225.65 (3) | 653 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (SSE4.2/NEON) |
+| [crc32_hw1](doc/crc32_hw1.txt) | 7626.17 | 50.21 | 228.50 (2) | 671 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2) |
+| [crc64_hw](doc/crc64_hw.txt) | 5579.17 | 40.87 | 202.19 (1) | 652 | insecure, 100% bias, collisions, distrib, BIC, machine-specific (SSE4.2/NEON) |
+| [crc32_pclmul](doc/crc32_pclmul.txt) | 7963.20 | 106.02 | 567.70 (3) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2+PCLMUL) |
+| [crc64_jones1](doc/crc64_jones1.txt) | 1673.67 | 83.00 | 249.16 (2) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific |
+| [crc64_jones2](doc/crc64_jones2.txt) | 2968.07 | 314.60 | 253.01 (3) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific |
+| [crc64_jones3](doc/crc64_jones3.txt) | 3398.80 | 302.59 | 258.16 (8) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific |
+| [crc64_jones](doc/crc64_jones.txt) | 3432.19 | 82.23 | 265.68 (1) | | insecure, 100% bias, collisions, distrib, BIC, machine-specific |
+| [o1hash](doc/o1hash.txt) | 11530366.92 | 18.40 | 206.94 (1) | 101 | insecure, no seed, zeros, fails all tests |
+| [fibonacci](doc/fibonacci.txt) | 15409.62 | 22.67 | 872.83 (3) |1692 | UB, zeros, fails all tests |
+| [FNV1a](doc/FNV1a.txt) | 754.70 | 75.28 | 226.30 (2) | 204 | bad seed, zeros, fails all tests |
+| [FNV1A_Totenschiff](doc/FNV1A_Totenschiff.txt)| 6166.85 | 26.60 | 235.71 (2) | 270 | UB, zeros, fails all tests |
+| [FNV1A_Pippip_Yurii](doc/FNV1A_Pippip_Yurii.txt)| 6115.29 | 28.03 | 233.52 (2) | 147 | UB, sanity, fails all tests |
+| [FNV1a_YT](doc/FNV1a_YT.txt) | 13481.70 | 30.67 | 233.71 (7) | 321 | bad seed, UB, fails all tests |
+| [FNV2](doc/FNV2.txt) | 5630.87 | 32.09 | 207.08 (1) | 278 | fails all tests |
+| [FNV64](doc/FNV64.txt) | 747.70 | 74.18 | 189.18 (1) | 79 | fails all tests |
+| [FNV128](doc/FNV128.txt) | 408.59 | 130.82 | 299.47 (20)| 171 | fails all tests |
+| [k-hash32](doc/k-hash32.txt) | 2227.90 | 53.85 | 255.78 (2) | 808 | insecure, zeros, UB, bad seeds, fails all tests |
+| [k-hash64](doc/k-hash64.txt) | 2492.66 | 48.18 | 242.58 (2) | 609 | insecure, zeros, UB, bad seeds, fails all tests |
+| [fletcher2](doc/fletcher2.txt) | 15410.12 | 20.72 | 345.55 (5) | 248 | bad seed 0, UB, fails all tests |
+| [fletcher4](doc/fletcher4.txt) | 15603.68 | 21.24 | 320.09 (2) | 371 | bad seed 0, UB, fails all tests |
+| [bernstein](doc/bernstein.txt) | 1032.00 | 59.04 | 225.09 (3) | 41 | bad seed 0, fails all tests |
+| [sdbm](doc/sdbm.txt) | 772.01 | 71.67 | 220.09 (2) | 41 | bad seed 0, fails all tests |
+| [x17](doc/x17.txt) | 765.01 | 75.61 | 225.81 (2) | 79 | 99.98% bias, fails all tests |
+| [libiberty](doc/libiberty.txt) | 618.39 | 86.58 | 220.95 (2) | 37 | insecure, 100% bias, fails all tests, bad seed |
+| [gcc](doc/gcc.txt) | 612.10 | 88.44 | 224.62 (2) | 39 | insecure, 100% bias, fails all tests, bad seed |
+| [JenkinsOOAT](doc/JenkinsOOAT.txt) | 615.60 | 111.23 | 251.08 (2) | 153 | bad seed 0, 53.5% bias, fails all tests |
+| [JenkinsOOAT_perl](doc/JenkinsOOAT_perl.txt) | 631.79 | 93.13 | 232.44 (1) | 65 | bad seed 0, 1.5-11.5% bias, 7.2x collisions, BIC, LongNeighbors |
+| [MicroOAAT](doc/MicroOAAT.txt) | 730.89 | 78.25 | 236.07 (3) | 68 | 100% bias, distrib, BIC |
+| [pearsonhash64](doc/pearsonhash64.txt) | 439.85 | 123.07 | 213.68 (1) | | Avalanche, Seed, SSSE3 only. broken MSVC |
+| [pearsonhash128](doc/pearsonhash128.txt) | 438.49 | 123.81 | 212.89 (2) | | Avalanche, Seed, SSSE3 only. broken MSVC |
+| [pearsonhash256](doc/pearsonhash256.txt) | 440.63 | 120.72 | 224.63 (2) | | Avalanche, Seed, SSSE3 only. broken MSVC |
+| [VHASH_32](doc/VHASH_32.txt) | 13084.37 | 65.45 | 280.14 (2) |1231 | sanity, Seed, MomentChi2 |
+| [VHASH_64](doc/VHASH_64.txt) | 13217.64 | 64.90 | 270.04 (2) |1231 | sanity, Seed, Sparse |
+| [farsh32](doc/farsh32.txt) | 27583.89 | 65.65 | 266.64 (2) | 944 | insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors |
+| [farsh64](doc/farsh64.txt) | 13558.69 | 113.74 | 327.26 (3) | 944 | insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors |
+| [farsh128](doc/farsh128.txt) | 7055.39 | 229.42 | 375.57 (4) | 944 | insecure: AppendedZeroes, collisions+bias, permut,combin,2bytes,zeroes,PerlinNoise |
+| [farsh256](doc/farsh256.txt) | 3466.26 | 444.74 | 610.23 (4) | 944 | insecure: AppendedZeroes, collisions+bias, permut,combin,2bytes,zeroes,PerlinNoise |
+| [jodyhash32](doc/jodyhash32.txt) | 1762.46 | 42.66 | 236.09 (2) | 102 | bias, collisions, distr, BIC LongNeighbors |
+| [jodyhash64](doc/jodyhash64.txt) | 4861.84 | 44.05 | 234.35 (2) | 118 | bias, collisions, distr, BIC, LongNeighbors |
+| [lookup3](doc/lookup3.txt) | 2474.09 | 40.19 | 238.22 (3) | 341 | UB, 28% bias, collisions, 30% distr, BIC |
+| [superfast](doc/superfast.txt) | 2085.79 | 49.89 | 230.76 (3) | 210 | UB, bad seed 0, 91% bias, 5273.01x collisions, 37% distr, BIC |
+| [MurmurOAAT](doc/MurmurOAAT.txt) | 513.75 | 105.23 | 244.81 (4) | 47 | bad seed 0, collisions, 99.998% distr., BIC, LongNeighbors |
+| [Crap8](doc/Crap8.txt) | 3081.04 | 37.15 | 234.94 (2) | 342 | UB, 2.42% bias, collisions, 2% distrib |
+| [Murmur1](doc/Murmur1.txt) | 1955.36 | 48.84 | 236.25 (2) | 358 | UB, 1 bad seed, 511x collisions, Diff, BIC |
+| [Murmur2](doc/Murmur2.txt) | 3082.03 | 41.62 | 250.72 (4) | 358 | UB, 1 bad seed, 1.7% bias, 81x coll, 1.7% distrib, BIC |
+| [Murmur2A](doc/Murmur2A.txt) | 2850.40 | 46.60 | 284.58 (13)| 407 | UB, 1 bad seed, 12.7% bias, LongNeighbors |
+| [Murmur2B](doc/Murmur2B.txt) | 6039.96 | 38.70 | 212.23 (1) | 433 | UB, 1.8% bias, collisions, 3.4% distrib, BIC |
+| [Murmur2C](doc/Murmur2C.txt) | 3802.68 | 49.82 | 220.13 (2) | 444 | UB, 2^32 bad seeds, 91% bias, collisions, distr, BIC, LongNeighbors |
+| [Murmur3A](doc/Murmur3A.txt) | 3027.30 | 48.99 | 234.49 (2) | 351 | UB, 1 bad seed, Moment Chi2 69 |
+| [PMurHash32](doc/PMurHash32.txt) | 3001.44 | 48.99 | 240.35 (3) |1862 | 1 bad seed, Moment Chi2 69 |
+| [Murmur3C](doc/Murmur3C.txt) | 4824.95 | 57.39 | 243.91 (2) | 859 | UB, LongNeighbors, Text, DiffDist |
| [mirhash32low](doc/mirhash32low.txt) | 6145.39 | 36.95 | 235.09 (4) |1112 | UB, 4 bad seeds, Cyclic, LongNeighbors, machine-specific (32/64 differs) |
-| [PMPML_32](doc/PMPML_32.txt) | 6639.68 | 45.33 | 257.45 (3) |1084 | Avalanche >512, unseeded: Seed, BIC, MomentChi2, PerlinNoise |
-| [PMPML_64](doc/PMPML_64.txt) | 9833.77 | 50.00 | 251.64 (6) |1305 | unseeded: Seed, MomentChi2, BIC |
-| [xxHash32](doc/xxHash32.txt) | 5865.17 | 49.20 | 242.74 (3) | 738 | LongNeighbors, collisions with 4bit diff, MomentChi2 220 |
-| [metrohash64](doc/metrohash64.txt) | 14741.56 | 39.44 | 215.76 (2) | 624 | UB, LongNeighbors, BIC |
-| [metrohash64_1](doc/metrohash64_1.txt) | 14298.77 | 40.31 | 223.25 (4) | 624 | UB, LongNeighbors, BIC, MomentChi2 |
-| [metrohash64crc_1](doc/metrohash64crc_1.txt) | 6929.69 | 44.65 | 223.68 (3) | 632 | UB, Cyclic 8/8 byte, DiffDist, BIC, MomentChi2, machine-specific (SSE4.2/NEON) |
-| [metrohash64crc_2](doc/metrohash64crc_2.txt) | 8150.65 | 43.72 | 219.45 (5) | 632 | UB, Cyclic 8/8 byte, DiffDist, BIC, machine-specific (SSE4.2/NEON) |
-| [cmetrohash64_1o](doc/cmetrohash64_1o.txt) | 14921.73 | 38.95 | 213.25 (2) |3506 | UB, LongNeighbors, BIC, MomentChi2 |
-| [cmetrohash64_1](doc/cmetrohash64_1.txt) | 14151.73 | 40.90 | 211.89 (2) | 652 | UB, LongNeighbors, BIC, MomentChi2 |
-| [City64noSeed](doc/City64noSeed.txt) | 14209.19 | 31.80 | 225.90 (5) |1038 | Avalanche, Sparse, TwoBytes, MomentChi2, Seed |
-| [City64](doc/City64.txt) | 13887.84 | 46.32 | 239.77 (3) |1120 | Sparse, TwoBytes |
-| [t1ha1_64le](doc/t1ha1_64le.txt) | 13442.64 | 31.41 | 219.58 (3) | 517 | Avalanche |
-| [t1ha1_64be](doc/t1ha1_64be.txt) | 11586.02 | 32.74 | 232.55 (3) | 555 | Avalanche |
-| [t1ha0_32le](doc/t1ha0_32le.txt) | 7401.21 | 48.27 | 238.99 (3) | 509 | Sparse, LongNeighbors |
-| [t1ha0_32be](doc/t1ha0_32be.txt) | 6217.37 | 50.66 | 244.51 (3) | 533 | Sparse, LongNeighbors |
+| [PMPML_32](doc/PMPML_32.txt) | 6904.30 | 44.25 | 233.59 (2) |1084 | Avalanche >512, unseeded: Seed, BIC, MomentChi2, PerlinNoise |
+| [PMPML_64](doc/PMPML_64.txt) | 10030.67 | 49.22 | 239.07 (5) |1305 | unseeded: Seed, MomentChi2, BIC |
+| [xxHash32](doc/xxHash32.txt) | 6064.37 | 48.86 | 234.27 (3) | 738 | LongNeighbors, collisions with 4bit diff, MomentChi2 220 |
+| [metrohash64](doc/metrohash64.txt) | 14209.14 | 40.85 | 225.16 (2) | 624 | UB, LongNeighbors, BIC |
+| [metrohash64_1](doc/metrohash64_1.txt) | 14495.30 | 40.83 | 213.00 (2) | 624 | UB, LongNeighbors, BIC, MomentChi2 |
+| [metrohash64crc_1](doc/metrohash64crc_1.txt) | 8010.90 | 44.43 | 213.94 (2) | 632 | UB, Cyclic 8/8 byte, DiffDist, BIC, MomentChi2, machine-specific (SSE4.2/NEON) |
+| [metrohash64crc_2](doc/metrohash64crc_2.txt) | 7939.65 | 44.84 | 222.01 (2) | 632 | UB, Cyclic 8/8 byte, DiffDist, BIC, machine-specific (SSE4.2/NEON) |
+| [cmetrohash64_1o](doc/cmetrohash64_1o.txt) | 14678.56 | 40.33 | 216.44 (2) |3506 | UB, LongNeighbors, BIC, MomentChi2 |
+| [cmetrohash64_1](doc/cmetrohash64_1.txt) | 14332.75 | 41.04 | 216.05 (2) | 652 | UB, LongNeighbors, BIC, MomentChi2 |
+| [City64noSeed](doc/City64noSeed.txt) | 14023.27 | 33.37 | 223.59 (2) |1038 | Avalanche, Sparse, TwoBytes, MomentChi2, Seed |
+| [City64](doc/City64.txt) | 14390.09 | 46.69 | 231.99 (2) |1120 | Sparse, TwoBytes |
+| [t1ha1_64le](doc/t1ha1_64le.txt) | 13425.03 | 31.37 | 221.97 (2) | 517 | Avalanche |
+| [t1ha1_64be](doc/t1ha1_64be.txt) | 12002.50 | 31.57 | 226.52 (2) | 555 | Avalanche |
+| [t1ha0_32le](doc/t1ha0_32le.txt) | 7276.16 | 49.11 | 236.39 (2) | 509 | Sparse, LongNeighbors |
+| [t1ha0_32be](doc/t1ha0_32be.txt) | 6860.87 | 50.16 | 241.26 (2) | 533 | Sparse, LongNeighbors |
| [t1ha2_stream](doc/t1ha2_stream.txt) | 14011.63 | 80.72 | 275.17 (3) |1665 | Sparse, Permutation, LongNeighbors |
| [t1ha2_stream128](doc/t1ha2_stream128.txt) | 13136.06 | 97.80 | 306.11 (7) |1665 | Sparse, Permutation, LongNeighbors |
-| [aesnihash](doc/aesnihash.txt) | 5579.32 | 56.83 | 258.71 (5) |1209 | fails many tests, machine-specific (x64 AES-NI) |
-| [falkhash](doc/falkhash.txt) | 50631.69 | 123.02 | 322.14 (7) | 264 | Sparse, LongNeighbors, machine-specific (x64 AES-NI) |
-| [MeowHash](doc/MeowHash.txt) | 29969.40 | 64.96 | 274.29 (4) |1764 | Sparse, invertible, machine-specific (x64 AES-NI) |
-| [MeowHash64low](doc/MeowHash64low.txt) | 29485.59 | 65.98 | 278.05 (3) |1764 | Sparse, invertible, machine-specific (x64 AES-NI) |
-| [MeowHash32low](doc/MeowHash32low.txt) | 26944.58 | 65.95 | 292.79 (9) |1764 | Sparse, invertible, machine-specific (x64 AES-NI) |
+| [aesnihash](doc/aesnihash.txt) | 5365.60 | 57.21 | 255.87 (3) |1209 | fails many tests, machine-specific (x64 AES-NI) |
+| [falkhash](doc/falkhash.txt) | 52401.48 | 122.70 | 316.79 (4) | 264 | Sparse, LongNeighbors, machine-specific (x64 AES-NI) |
+| [MeowHash](doc/MeowHash.txt) | 29969.81 | 64.90 | 273.79 (8) |1764 | Sparse, invertible, machine-specific (x64 AES-NI) |
+| [MeowHash64low](doc/MeowHash64low.txt) | 29438.45 | 63.76 | 269.41 (4) |1764 | Sparse, invertible, machine-specific (x64 AES-NI) |
+| [MeowHash32low](doc/MeowHash32low.txt) | 30562.54 | 63.77 | 283.26 (3) |1764 | Sparse, invertible, machine-specific (x64 AES-NI) |
| -------------------------------------- | | | | | |
| [tifuhash_64](doc/tifuhash_64.txt) | 35.60 | 1679.52 |1212.75 (15)| 276 | Cyclic low32 |
| [floppsyhash](doc/floppsyhash.txt) | 35.72 | 1868.92 |1411.07 (7) | 623 | |
@@ -140,9 +144,9 @@ SMhasher
| [SipHash](doc/SipHash.txt) | 943.53 | 147.15 | 338.74 (4) |1071 | |
| [HalfSipHash](doc/HalfSipHash.txt) | 1141.57 | 79.65 | 263.96 (3) | 700 | zeroes |
| [GoodOAAT](doc/GoodOAAT.txt) | 743.81 | 85.62 | 231.22 (3) | 237 | |
-| [pearsonbhash64](doc/pearsonbhash64.txt) | 1794.83 | 97.80 | 268.90 (8) | 683 | |
-| [pearsonbhash128](doc/pearsonbhash128.txt) | 1691.62 | 104.57 | 272.38 (4) |1134 | |
-| [pearsonbhash256](doc/pearsonbhash256.txt) | 1442.59 | 126.04 | 309.34 (4) | 844 | |
+| [pearsonbhash64](doc/pearsonbhash64.txt) | 1749.98 | 99.84 | 257.11 (2) | 683 | |
+| [pearsonbhash128](doc/pearsonbhash128.txt) | 1656.68 | 106.78 | 276.92 (3) |1134 | |
+| [pearsonbhash256](doc/pearsonbhash256.txt) | 1418.61 | 123.68 | 301.26 (3) | 844 | |
| [prvhash64_64m](doc/prvhash64_64m.txt) | 3077.18 | 47.31 | 241.92 (3) | 349 | |
| [prvhash64_64](doc/prvhash64_64.txt) | 3015.08 | 48.03 | 240.64 (3) | 384 | |
| [prvhash64_128](doc/prvhash64_128.txt) | 3353.81 | 67.64 | 266.32 (2) | 718 | |
@@ -163,27 +167,28 @@ SMhasher
| [mirhashstrict32low](doc/mirhashstrict32low.txt)| 3441.35 | 50.60 | 247.19 (3) |1112 | 1 bad seed, MomentChi2 9 |
| [fasthash32](doc/fasthash32.txt) | 6128.28 | 40.30 | 241.64 (4) | 566 | UB |
| [fasthash64](doc/fasthash64.txt) | 5818.92 | 38.70 | 220.74 (2) | 509 | UB |
-| [aesni](doc/aesni.txt) | 31232.34 | 29.21 | 230.14 (4) | 519 | machine-specific (x64 AES-NI) |
-| [aesni-low](doc/aesni-low.txt) | 31221.14 | 29.64 | 226.18 (3) | 519 | machine-specific (x64 AES-NI) |
+| [aesni](doc/aesni.txt) | 31185.98 | 29.45 | 226.75 (2) | 519 | machine-specific (x64 AES-NI) |
+| [aesni-low](doc/aesni-low.txt) | 31027.39 | 29.47 | 232.54 (2) | 519 | machine-specific (x64 AES-NI) |
| [mx3](doc/mx3.txt) | 9034.90 | 48.71 | 227.89 (2) | 734 | UB |
| [pengyhash](doc/pengyhash.txt) | 13428.80 | 74.24 | 275.42 (5) | 421 | |
-| [City32](doc/City32.txt) | 5551.28 | 54.40 | 261.64 (2) |1319 | |
+| [City32](doc/City32.txt) | 5745.83 | 52.44 | 242.69 (2) |1319 | |
| [City64low](doc/City64low.txt) | 13904.10 | 46.24 | 260.08 (3) |1120| |
| [City128](doc/City128.txt) | 14031.96 | 89.09 | 290.05 (10)|1841 | |
| [CityCrc128](doc/CityCrc128.txt) | 7916.44 | 55.50 | 240.79 (2) | 295 | |
+| [CityCrc256](doc/CityCrc256.txt) | 7916.44 | 55.50 | 240.79 (2) | | |
| [FarmHash32](doc/FarmHash32.txt) | 21755.58 | 47.54 | 258.35 (3) |11489| machine-specific (x64 SSE4/AVX) |
| [FarmHash64](doc/FarmHash64.txt) | 12845.53 | 47.11 | 251.58 (3) |3758 | |
| [FarmHash128](doc/FarmHash128.txt) | 13913.65 | 70.25 | 263.06 (3) | 163 | |
| [farmhash32_c](doc/farmhash32_c.txt) | 21601.86 | 47.38 | 273.00 (3) | 762 | machine-specific (x64 SSE4/AVX) |
| [farmhash64_c](doc/farmhash64_c.txt) | 12834.10 | 47.23 | 246.20 (2) |3688 | |
| [farmhash128_c](doc/farmhash128_c.txt) | 13753.24 | 68.96 | 263.76 (3) |1890 | |
-| [metrohash64_2](doc/metrohash64_2.txt) | 14316.37 | 40.23 | 218.28 (3) | 627 | UB, LongNeighbors |
-| [cmetrohash64_2](doc/cmetrohash64_2.txt) | 14294.26 | 40.76 | 221.40 (4) | 655 | LongNeighbors |
-| [metrohash128](doc/metrohash128.txt) | 15634.66 | 73.28 | 261.23 (4) | 773 | UB, LongNeighbors |
-| [metrohash128_1](doc/metrohash128_1.txt) | 15806.97 | 72.30 | 260.90 (4) | 773 | UB, LongNeighbors |
-| [metrohash128_2](doc/metrohash128_2.txt) | 15822.60 | 72.30 | 255.34 (3) | 773 | UB, LongNeighbors |
-| [metrohash128crc_1](doc/metrohash128crc_1.txt)| 8009.23 | 78.72 | 281.55 (13)| 723 | UB, machine-specific (SSE4.2/NEON) |
-| [metrohash128crc_2](doc/metrohash128crc_2.txt)| 7878.22 | 79.90 | 275.22 (4) | 723 | UB, machine-specific (SSE4.2/NEON) |
+| [metrohash64_2](doc/metrohash64_2.txt) | 14359.39 | 41.09 | 215.53 (2) | 627 | UB, LongNeighbors |
+| [cmetrohash64_2](doc/cmetrohash64_2.txt) | 14498.20 | 40.87 | 219.65 (2) | 655 | LongNeighbors |
+| [metrohash128](doc/metrohash128.txt) | 15847.63 | 72.33 | 266.54 (2) | 773 | UB, LongNeighbors |
+| [metrohash128_1](doc/metrohash128_1.txt) | 15556.40 | 73.49 | 259.05 (2) | 773 | UB, LongNeighbors |
+| [metrohash128_2](doc/metrohash128_2.txt) | 15408.56 | 74.36 | 259.57 (2) | 773 | UB, LongNeighbors |
+| [metrohash128crc_1](doc/metrohash128crc_1.txt)| 8182.02 | 77.38 | 256.80 (2) | 723 | UB, machine-specific (SSE4.2/NEON) |
+| [metrohash128crc_2](doc/metrohash128crc_2.txt)| 7996.33 | 78.81 | 262.53 (2) | 723 | UB, machine-specific (SSE4.2/NEON) |
| [xxHash64](doc/xxHash64.txt) | 12108.87 | 49.78 | 228.83 (2) |1999 | |
| [Spooky32](doc/Spooky32.txt) | 13108.95 | 56.27 | 255.36 (3) |2221 | UB |
| [Spooky64](doc/Spooky64.txt) | 13529.36 | 58.76 | 236.31 (3) |2221 | UB |
@@ -204,6 +209,7 @@ SMhasher
| [wyhash32](doc/wyhash32.txt) | 2532.89 | 48.40 | 484.57 (1) | 426 | 4 bad and broken seeds, 32-bit |
| [wyhash32low](doc/wyhash32low.txt) | 22393.77 | 29.04 | 243.40 (3) | 474 | 5 bad seeds |
| [wyhash](doc/wyhash.txt) | 22540.23 | 28.87 | 236.16 (8) | 474 | |
+| [w1hash](doc/w1hash.txt) | | | | | |
| [rapidhash](doc/rapidhash.txt) | 23789.79 | 22.80 | 138.71 (7) | 574 | |
| [rapidhash_unrolled](doc/rapidhash_unrolled.txt)| 23892.88 | 23.41 | 139.47 (12)| 782 | |
| [umash32](doc/umash32.txt) | 21427.57 | 42.12 | 255.55 (5) |1530 | |
@@ -220,6 +226,7 @@ SMhasher
| [k-hashv64](doc/k-hashv32.txt) | 7850.92 | 46.94 | 193.94 (1) |1279 | |
| [komihash](doc/komihash.txt) | 12242.78 | 33.02 | 236.07 (2) |1323 | |
| [polymur](doc/polymur.txt) | 9676.33 | 42.70 | 246.53 (3) |1128 | |
+| [gxhash64](doc/gxhash64.txt) | | | | | |
The sortable table variants:
diff --git a/doc/BadHash.txt b/doc/BadHash.txt
index 3dcd7485..5055c3fe 100644
--- a/doc/BadHash.txt
+++ b/doc/BadHash.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x10295701b18 - 0x10295701ad0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.183 bytes/cycle - 524.82 MiB/sec @ 3 ghz
-Alignment 6 - 0.183 bytes/cycle - 524.82 MiB/sec @ 3 ghz
-Alignment 5 - 0.183 bytes/cycle - 524.81 MiB/sec @ 3 ghz
-Alignment 4 - 0.183 bytes/cycle - 524.81 MiB/sec @ 3 ghz
-Alignment 3 - 0.183 bytes/cycle - 524.81 MiB/sec @ 3 ghz
-Alignment 2 - 0.183 bytes/cycle - 524.82 MiB/sec @ 3 ghz
-Alignment 1 - 0.183 bytes/cycle - 524.81 MiB/sec @ 3 ghz
-Alignment 0 - 0.183 bytes/cycle - 524.81 MiB/sec @ 3 ghz
-Average - 0.183 bytes/cycle - 524.81 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 13.65 cycles/hash
-Small key speed test - 2-byte keys - 19.32 cycles/hash
-Small key speed test - 3-byte keys - 24.97 cycles/hash
-Small key speed test - 4-byte keys - 30.72 cycles/hash
-Small key speed test - 5-byte keys - 35.92 cycles/hash
-Small key speed test - 6-byte keys - 41.68 cycles/hash
-Small key speed test - 7-byte keys - 46.99 cycles/hash
-Small key speed test - 8-byte keys - 52.25 cycles/hash
-Small key speed test - 9-byte keys - 57.57 cycles/hash
-Small key speed test - 10-byte keys - 63.00 cycles/hash
-Small key speed test - 11-byte keys - 68.60 cycles/hash
-Small key speed test - 12-byte keys - 74.36 cycles/hash
-Small key speed test - 13-byte keys - 79.77 cycles/hash
-Small key speed test - 14-byte keys - 85.50 cycles/hash
-Small key speed test - 15-byte keys - 90.93 cycles/hash
-Small key speed test - 16-byte keys - 96.00 cycles/hash
-Small key speed test - 17-byte keys - 101.79 cycles/hash
-Small key speed test - 18-byte keys - 107.00 cycles/hash
-Small key speed test - 19-byte keys - 112.20 cycles/hash
-Small key speed test - 20-byte keys - 118.00 cycles/hash
-Small key speed test - 21-byte keys - 123.73 cycles/hash
-Small key speed test - 22-byte keys - 129.00 cycles/hash
-Small key speed test - 23-byte keys - 134.76 cycles/hash
-Small key speed test - 24-byte keys - 140.00 cycles/hash
-Small key speed test - 25-byte keys - 145.87 cycles/hash
-Small key speed test - 26-byte keys - 151.00 cycles/hash
-Small key speed test - 27-byte keys - 156.38 cycles/hash
-Small key speed test - 28-byte keys - 162.00 cycles/hash
-Small key speed test - 29-byte keys - 167.82 cycles/hash
-Small key speed test - 30-byte keys - 173.00 cycles/hash
-Small key speed test - 31-byte keys - 178.38 cycles/hash
-Average 96.198 cycles/hash
+Alignment 7 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 6 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 5 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 4 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 3 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 2 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 1 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 0 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Average - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 14.94 cycles/hash
+Small key speed test - 2-byte keys - 18.67 cycles/hash
+Small key speed test - 3-byte keys - 22.00 cycles/hash
+Small key speed test - 4-byte keys - 26.00 cycles/hash
+Small key speed test - 5-byte keys - 30.00 cycles/hash
+Small key speed test - 6-byte keys - 33.17 cycles/hash
+Small key speed test - 7-byte keys - 37.00 cycles/hash
+Small key speed test - 8-byte keys - 41.00 cycles/hash
+Small key speed test - 9-byte keys - 44.76 cycles/hash
+Small key speed test - 10-byte keys - 48.24 cycles/hash
+Small key speed test - 11-byte keys - 52.00 cycles/hash
+Small key speed test - 12-byte keys - 55.98 cycles/hash
+Small key speed test - 13-byte keys - 59.91 cycles/hash
+Small key speed test - 14-byte keys - 63.44 cycles/hash
+Small key speed test - 15-byte keys - 67.46 cycles/hash
+Small key speed test - 16-byte keys - 71.00 cycles/hash
+Small key speed test - 17-byte keys - 74.69 cycles/hash
+Small key speed test - 18-byte keys - 78.86 cycles/hash
+Small key speed test - 19-byte keys - 82.41 cycles/hash
+Small key speed test - 20-byte keys - 86.00 cycles/hash
+Small key speed test - 21-byte keys - 89.47 cycles/hash
+Small key speed test - 22-byte keys - 93.28 cycles/hash
+Small key speed test - 23-byte keys - 97.00 cycles/hash
+Small key speed test - 24-byte keys - 100.00 cycles/hash
+Small key speed test - 25-byte keys - 104.00 cycles/hash
+Small key speed test - 26-byte keys - 108.30 cycles/hash
+Small key speed test - 27-byte keys - 111.54 cycles/hash
+Small key speed test - 28-byte keys - 117.04 cycles/hash
+Small key speed test - 29-byte keys - 120.83 cycles/hash
+Small key speed test - 30-byte keys - 124.20 cycles/hash
+Small key speed test - 31-byte keys - 126.51 cycles/hash
+Small key speed test - 32-byte keys - 130.00 cycles/hash
+Average 72.802 cycles/hash
+Average, weighted by key length freq. 72.618 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 57.518 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/NOP_OAAT_read64.txt b/doc/NOP_OAAT_read64.txt
index 37ceccc1..8f2191da 100644
--- a/doc/NOP_OAAT_read64.txt
+++ b/doc/NOP_OAAT_read64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xfeaaa5e09c - 0xfeaaa5e054). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 9.794 bytes/cycle - 28022.20 MiB/sec @ 3 ghz
-Alignment 6 - 9.797 bytes/cycle - 28028.50 MiB/sec @ 3 ghz
-Alignment 5 - 9.796 bytes/cycle - 28025.61 MiB/sec @ 3 ghz
-Alignment 4 - 9.795 bytes/cycle - 28023.05 MiB/sec @ 3 ghz
-Alignment 3 - 9.796 bytes/cycle - 28027.91 MiB/sec @ 3 ghz
-Alignment 2 - 9.794 bytes/cycle - 28020.14 MiB/sec @ 3 ghz
-Alignment 1 - 9.794 bytes/cycle - 28021.28 MiB/sec @ 3 ghz
-Alignment 0 - 11.035 bytes/cycle - 31571.29 MiB/sec @ 3 ghz
-Average - 9.950 bytes/cycle - 28467.50 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 16.00 cycles/hash
-Small key speed test - 2-byte keys - 16.00 cycles/hash
-Small key speed test - 3-byte keys - 17.00 cycles/hash
-Small key speed test - 4-byte keys - 17.00 cycles/hash
-Small key speed test - 5-byte keys - 18.00 cycles/hash
-Small key speed test - 6-byte keys - 18.00 cycles/hash
-Small key speed test - 7-byte keys - 19.00 cycles/hash
-Small key speed test - 8-byte keys - 19.00 cycles/hash
-Small key speed test - 9-byte keys - 19.99 cycles/hash
-Small key speed test - 10-byte keys - 20.58 cycles/hash
-Small key speed test - 11-byte keys - 20.58 cycles/hash
-Small key speed test - 12-byte keys - 21.29 cycles/hash
-Small key speed test - 13-byte keys - 21.26 cycles/hash
-Small key speed test - 14-byte keys - 23.00 cycles/hash
-Small key speed test - 15-byte keys - 22.00 cycles/hash
-Small key speed test - 16-byte keys - 13.00 cycles/hash
+Alignment 7 - 4040.786 bytes/cycle - 11560782.86 MiB/sec @ 3 ghz
+Alignment 6 - 4058.518 bytes/cycle - 11611513.91 MiB/sec @ 3 ghz
+Alignment 5 - 4079.755 bytes/cycle - 11672273.10 MiB/sec @ 3 ghz
+Alignment 4 - 4080.518 bytes/cycle - 11674454.83 MiB/sec @ 3 ghz
+Alignment 3 - 4077.469 bytes/cycle - 11665732.79 MiB/sec @ 3 ghz
+Alignment 2 - 4088.925 bytes/cycle - 11698507.84 MiB/sec @ 3 ghz
+Alignment 1 - 4073.665 bytes/cycle - 11654848.54 MiB/sec @ 3 ghz
+Alignment 0 - 4083.571 bytes/cycle - 11683189.92 MiB/sec @ 3 ghz
+Average - 4072.901 bytes/cycle - 11652662.97 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 14.00 cycles/hash
+Small key speed test - 2-byte keys - 14.00 cycles/hash
+Small key speed test - 3-byte keys - 14.00 cycles/hash
+Small key speed test - 4-byte keys - 14.00 cycles/hash
+Small key speed test - 5-byte keys - 14.00 cycles/hash
+Small key speed test - 6-byte keys - 14.00 cycles/hash
+Small key speed test - 7-byte keys - 14.00 cycles/hash
+Small key speed test - 8-byte keys - 14.00 cycles/hash
+Small key speed test - 9-byte keys - 14.00 cycles/hash
+Small key speed test - 10-byte keys - 14.00 cycles/hash
+Small key speed test - 11-byte keys - 14.00 cycles/hash
+Small key speed test - 12-byte keys - 14.00 cycles/hash
+Small key speed test - 13-byte keys - 14.00 cycles/hash
+Small key speed test - 14-byte keys - 14.00 cycles/hash
+Small key speed test - 15-byte keys - 14.00 cycles/hash
+Small key speed test - 16-byte keys - 14.00 cycles/hash
Small key speed test - 17-byte keys - 14.00 cycles/hash
Small key speed test - 18-byte keys - 14.00 cycles/hash
-Small key speed test - 19-byte keys - 15.00 cycles/hash
-Small key speed test - 20-byte keys - 15.00 cycles/hash
-Small key speed test - 21-byte keys - 16.00 cycles/hash
-Small key speed test - 22-byte keys - 17.00 cycles/hash
-Small key speed test - 23-byte keys - 17.00 cycles/hash
-Small key speed test - 24-byte keys - 19.00 cycles/hash
-Small key speed test - 25-byte keys - 18.57 cycles/hash
-Small key speed test - 26-byte keys - 19.49 cycles/hash
-Small key speed test - 27-byte keys - 19.97 cycles/hash
-Small key speed test - 28-byte keys - 21.00 cycles/hash
-Small key speed test - 29-byte keys - 21.00 cycles/hash
-Small key speed test - 30-byte keys - 22.07 cycles/hash
-Small key speed test - 31-byte keys - 22.00 cycles/hash
-Average 18.478 cycles/hash
+Small key speed test - 19-byte keys - 14.00 cycles/hash
+Small key speed test - 20-byte keys - 14.00 cycles/hash
+Small key speed test - 21-byte keys - 14.00 cycles/hash
+Small key speed test - 22-byte keys - 14.00 cycles/hash
+Small key speed test - 23-byte keys - 14.00 cycles/hash
+Small key speed test - 24-byte keys - 14.00 cycles/hash
+Small key speed test - 25-byte keys - 14.00 cycles/hash
+Small key speed test - 26-byte keys - 14.00 cycles/hash
+Small key speed test - 27-byte keys - 14.00 cycles/hash
+Small key speed test - 28-byte keys - 14.00 cycles/hash
+Small key speed test - 29-byte keys - 14.00 cycles/hash
+Small key speed test - 30-byte keys - 14.00 cycles/hash
+Small key speed test - 31-byte keys - 14.00 cycles/hash
+Small key speed test - 32-byte keys - 14.00 cycles/hash
+Average 14.000 cycles/hash
+Average, weighted by key length freq. 14.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 14.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/air.html b/doc/air.html
index 920dfb06..af0b75eb 100644
--- a/doc/air.html
+++ b/doc/air.html
@@ -248,6 +248,22 @@
SMhasher
+edonr224
+525.27
+365.89
+504.28 (4)
+
+
+
+
+edonr256
+525.27
+365.89
+504.28 (4)
+
+
+
+
blake2s-128
306.43
670.08
@@ -440,6 +456,38 @@ SMhasher
insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
o1hash
5525178.01
15.81
@@ -1080,6 +1128,46 @@ SMhasher
0.9% bias
+discohash1
+4131.12
+199.00
+398.35 (5)
+1294
+bad seeds
+
+
+discohash1-128
+4072.95
+234.17
+438.43 (5)
+1294
+
+
+
+discohash2
+3986.52
+207.52
+421.99 (2)
+1294
+
+
+
+discohash2-128
+4094.73
+236.61
+433.35 (4)
+1294
+
+
+
+discoNONG
+3698.45
+399.67
+597.78 (9)
+
+bad seeds
+
+
TSip
4218.38
52.96
@@ -1088,6 +1176,22 @@ SMhasher
!msvc
+aesni
+32360.68
+25.66
+629.14 (50)
+519
+machine-specific (x64 AES-NI)
+
+
+aesni-low
+34262.67
+25.92
+642.08 (68)
+519
+machine-specific (x64 AES-NI)
+
+
seahash
7848.36
62.64
@@ -1248,6 +1352,14 @@ SMhasher
+CityCrc256
+19603.25
+42.27
+149.40 (4)
+
+
+
+
FarmHash32
11957.83
42.76
@@ -1496,6 +1608,30 @@ SMhasher
5 bad seeds
+w1hash
+2532.89
+37.95
+222.17 (4)
+
+
+
+
+rapidhash
+23789.79
+22.80
+138.71 (7)
+574
+
+
+
+rapidhash_unrolled
+23892.88
+23.41
+139.47 (12)
+782
+
+
+
umash32
15939.18
44.41
@@ -1575,14 +1711,56 @@ SMhasher
1494
+
+k-hashv32
+10843.74
+38.41
+157.94 (2)
+1280
+
+
+
+k-hashv64
+10820.69
+37.75
+129.51 (2)
+1279
+
+
+
+komihash
+18568.42
+24.53
+128.57 (1)
+728
+
+
+
+polymur
+1017.15
+178.25
+313.64 (9)
+1128
+
+
+
+gxhash64
+1017.15
+178.25
+313.64 (9)
+
+
+
Other timings:
diff --git a/doc/asconhashv12.txt b/doc/asconhashv12.txt
index 2421d48c..7ebfc414 100644
--- a/doc/asconhashv12.txt
+++ b/doc/asconhashv12.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xdca534e3a04 - 0xdca534e39bc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-Alignment 6 - 0.030 bytes/cycle - 86.72 MiB/sec @ 3 ghz
-Alignment 5 - 0.030 bytes/cycle - 86.72 MiB/sec @ 3 ghz
-Alignment 4 - 0.030 bytes/cycle - 86.71 MiB/sec @ 3 ghz
-Alignment 3 - 0.030 bytes/cycle - 86.71 MiB/sec @ 3 ghz
-Alignment 2 - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-Alignment 1 - 0.030 bytes/cycle - 86.71 MiB/sec @ 3 ghz
-Alignment 0 - 0.030 bytes/cycle - 86.78 MiB/sec @ 3 ghz
-Average - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1079.61 cycles/hash
-Small key speed test - 2-byte keys - 1079.75 cycles/hash
-Small key speed test - 3-byte keys - 1079.57 cycles/hash
-Small key speed test - 4-byte keys - 1079.55 cycles/hash
-Small key speed test - 5-byte keys - 1079.80 cycles/hash
-Small key speed test - 6-byte keys - 1079.84 cycles/hash
-Small key speed test - 7-byte keys - 1079.78 cycles/hash
-Small key speed test - 8-byte keys - 1334.20 cycles/hash
-Small key speed test - 9-byte keys - 1350.22 cycles/hash
-Small key speed test - 10-byte keys - 1350.24 cycles/hash
-Small key speed test - 11-byte keys - 1364.23 cycles/hash
-Small key speed test - 12-byte keys - 1350.31 cycles/hash
-Small key speed test - 13-byte keys - 1350.25 cycles/hash
-Small key speed test - 14-byte keys - 1350.22 cycles/hash
-Small key speed test - 15-byte keys - 1350.23 cycles/hash
-Small key speed test - 16-byte keys - 1596.39 cycles/hash
-Small key speed test - 17-byte keys - 1612.31 cycles/hash
-Small key speed test - 18-byte keys - 1612.20 cycles/hash
-Small key speed test - 19-byte keys - 1612.29 cycles/hash
-Small key speed test - 20-byte keys - 1612.28 cycles/hash
-Small key speed test - 21-byte keys - 1612.37 cycles/hash
-Small key speed test - 22-byte keys - 1612.32 cycles/hash
-Small key speed test - 23-byte keys - 1612.36 cycles/hash
-Small key speed test - 24-byte keys - 1859.12 cycles/hash
-Small key speed test - 25-byte keys - 1874.60 cycles/hash
-Small key speed test - 26-byte keys - 1874.55 cycles/hash
-Small key speed test - 27-byte keys - 1874.58 cycles/hash
-Small key speed test - 28-byte keys - 1874.61 cycles/hash
-Small key speed test - 29-byte keys - 1874.56 cycles/hash
-Small key speed test - 30-byte keys - 1874.47 cycles/hash
-Small key speed test - 31-byte keys - 1874.61 cycles/hash
-Average 1491.014 cycles/hash
+Alignment 7 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 6 - 0.057 bytes/cycle - 163.58 MiB/sec @ 3 ghz
+Alignment 5 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 4 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 3 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 2 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 1 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 0 - 0.056 bytes/cycle - 158.84 MiB/sec @ 3 ghz
+Average - 0.057 bytes/cycle - 162.99 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 615.11 cycles/hash
+Small key speed test - 2-byte keys - 615.40 cycles/hash
+Small key speed test - 3-byte keys - 613.57 cycles/hash
+Small key speed test - 4-byte keys - 613.52 cycles/hash
+Small key speed test - 5-byte keys - 614.58 cycles/hash
+Small key speed test - 6-byte keys - 613.61 cycles/hash
+Small key speed test - 7-byte keys - 613.04 cycles/hash
+Small key speed test - 8-byte keys - 737.62 cycles/hash
+Small key speed test - 9-byte keys - 749.98 cycles/hash
+Small key speed test - 10-byte keys - 751.57 cycles/hash
+Small key speed test - 11-byte keys - 750.38 cycles/hash
+Small key speed test - 12-byte keys - 751.39 cycles/hash
+Small key speed test - 13-byte keys - 750.54 cycles/hash
+Small key speed test - 14-byte keys - 750.91 cycles/hash
+Small key speed test - 15-byte keys - 750.54 cycles/hash
+Small key speed test - 16-byte keys - 878.00 cycles/hash
+Small key speed test - 17-byte keys - 893.94 cycles/hash
+Small key speed test - 18-byte keys - 895.42 cycles/hash
+Small key speed test - 19-byte keys - 894.63 cycles/hash
+Small key speed test - 20-byte keys - 894.72 cycles/hash
+Small key speed test - 21-byte keys - 894.33 cycles/hash
+Small key speed test - 22-byte keys - 894.11 cycles/hash
+Small key speed test - 23-byte keys - 893.64 cycles/hash
+Small key speed test - 24-byte keys - 1025.10 cycles/hash
+Small key speed test - 25-byte keys - 1036.57 cycles/hash
+Small key speed test - 26-byte keys - 1037.38 cycles/hash
+Small key speed test - 27-byte keys - 1036.56 cycles/hash
+Small key speed test - 28-byte keys - 1036.63 cycles/hash
+Small key speed test - 29-byte keys - 1035.20 cycles/hash
+Small key speed test - 30-byte keys - 1037.21 cycles/hash
+Small key speed test - 31-byte keys - 1038.41 cycles/hash
+Small key speed test - 32-byte keys - 1175.82 cycles/hash
+Average 840.294 cycles/hash
+Average, weighted by key length freq. 838.178 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 793.330 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/asconhashv12_64.txt b/doc/asconhashv12_64.txt
index 5b1f4975..db82c5f5 100644
--- a/doc/asconhashv12_64.txt
+++ b/doc/asconhashv12_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xe69238de300 - 0xe69238de294). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.030 bytes/cycle - 86.72 MiB/sec @ 3 ghz
-Alignment 6 - 0.030 bytes/cycle - 86.72 MiB/sec @ 3 ghz
-Alignment 5 - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-Alignment 4 - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-Alignment 3 - 0.030 bytes/cycle - 86.72 MiB/sec @ 3 ghz
-Alignment 2 - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-Alignment 1 - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-Alignment 0 - 0.030 bytes/cycle - 86.78 MiB/sec @ 3 ghz
-Average - 0.030 bytes/cycle - 86.73 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 276.25 cycles/hash
-Small key speed test - 2-byte keys - 276.25 cycles/hash
-Small key speed test - 3-byte keys - 276.00 cycles/hash
-Small key speed test - 4-byte keys - 276.00 cycles/hash
-Small key speed test - 5-byte keys - 276.00 cycles/hash
-Small key speed test - 6-byte keys - 276.00 cycles/hash
-Small key speed test - 7-byte keys - 276.00 cycles/hash
-Small key speed test - 8-byte keys - 528.06 cycles/hash
-Small key speed test - 9-byte keys - 542.88 cycles/hash
-Small key speed test - 10-byte keys - 542.83 cycles/hash
-Small key speed test - 11-byte keys - 542.89 cycles/hash
-Small key speed test - 12-byte keys - 542.95 cycles/hash
-Small key speed test - 13-byte keys - 542.87 cycles/hash
-Small key speed test - 14-byte keys - 542.81 cycles/hash
-Small key speed test - 15-byte keys - 542.91 cycles/hash
-Small key speed test - 16-byte keys - 789.71 cycles/hash
-Small key speed test - 17-byte keys - 805.05 cycles/hash
-Small key speed test - 18-byte keys - 804.91 cycles/hash
-Small key speed test - 19-byte keys - 805.05 cycles/hash
-Small key speed test - 20-byte keys - 804.94 cycles/hash
-Small key speed test - 21-byte keys - 805.05 cycles/hash
-Small key speed test - 22-byte keys - 805.02 cycles/hash
-Small key speed test - 23-byte keys - 805.10 cycles/hash
-Small key speed test - 24-byte keys - 1051.14 cycles/hash
-Small key speed test - 25-byte keys - 1066.93 cycles/hash
-Small key speed test - 26-byte keys - 1066.75 cycles/hash
-Small key speed test - 27-byte keys - 1066.89 cycles/hash
-Small key speed test - 28-byte keys - 1066.87 cycles/hash
-Small key speed test - 29-byte keys - 1066.97 cycles/hash
-Small key speed test - 30-byte keys - 1066.80 cycles/hash
-Small key speed test - 31-byte keys - 1066.88 cycles/hash
-Average 684.025 cycles/hash
+Alignment 7 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 6 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 5 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 4 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 3 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 2 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 1 - 0.055 bytes/cycle - 158.22 MiB/sec @ 3 ghz
+Alignment 0 - 0.055 bytes/cycle - 158.07 MiB/sec @ 3 ghz
+Average - 0.056 bytes/cycle - 159.33 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 166.51 cycles/hash
+Small key speed test - 2-byte keys - 166.48 cycles/hash
+Small key speed test - 3-byte keys - 166.48 cycles/hash
+Small key speed test - 4-byte keys - 166.49 cycles/hash
+Small key speed test - 5-byte keys - 166.45 cycles/hash
+Small key speed test - 6-byte keys - 166.47 cycles/hash
+Small key speed test - 7-byte keys - 166.51 cycles/hash
+Small key speed test - 8-byte keys - 305.01 cycles/hash
+Small key speed test - 9-byte keys - 314.07 cycles/hash
+Small key speed test - 10-byte keys - 314.09 cycles/hash
+Small key speed test - 11-byte keys - 314.06 cycles/hash
+Small key speed test - 12-byte keys - 314.02 cycles/hash
+Small key speed test - 13-byte keys - 314.00 cycles/hash
+Small key speed test - 14-byte keys - 314.05 cycles/hash
+Small key speed test - 15-byte keys - 314.07 cycles/hash
+Small key speed test - 16-byte keys - 450.20 cycles/hash
+Small key speed test - 17-byte keys - 459.25 cycles/hash
+Small key speed test - 18-byte keys - 459.23 cycles/hash
+Small key speed test - 19-byte keys - 459.01 cycles/hash
+Small key speed test - 20-byte keys - 459.26 cycles/hash
+Small key speed test - 21-byte keys - 458.73 cycles/hash
+Small key speed test - 22-byte keys - 458.63 cycles/hash
+Small key speed test - 23-byte keys - 458.72 cycles/hash
+Small key speed test - 24-byte keys - 588.70 cycles/hash
+Small key speed test - 25-byte keys - 602.91 cycles/hash
+Small key speed test - 26-byte keys - 602.95 cycles/hash
+Small key speed test - 27-byte keys - 602.94 cycles/hash
+Small key speed test - 28-byte keys - 603.59 cycles/hash
+Small key speed test - 29-byte keys - 602.96 cycles/hash
+Small key speed test - 30-byte keys - 602.86 cycles/hash
+Small key speed test - 31-byte keys - 602.81 cycles/hash
+Small key speed test - 32-byte keys - 739.82 cycles/hash
+Average 402.541 cycles/hash
+Average, weighted by key length freq. 402.632 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 359.746 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2b-160.txt b/doc/blake2b-160.txt
index 2cff1b51..3d4a4105 100644
--- a/doc/blake2b-160.txt
+++ b/doc/blake2b-160.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 144 (0x90) ticks (0xbccfa0988f8 - 0xbccfa098868). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 6 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 5 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 4 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 3 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 2 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 1 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 0 - 0.129 bytes/cycle - 369.60 MiB/sec @ 3 ghz
-Average - 0.129 bytes/cycle - 368.85 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1154.61 cycles/hash
-Small key speed test - 2-byte keys - 1151.35 cycles/hash
-Small key speed test - 3-byte keys - 1150.73 cycles/hash
-Small key speed test - 4-byte keys - 1155.13 cycles/hash
-Small key speed test - 5-byte keys - 1153.00 cycles/hash
-Small key speed test - 6-byte keys - 1153.00 cycles/hash
-Small key speed test - 7-byte keys - 1153.00 cycles/hash
-Small key speed test - 8-byte keys - 1172.01 cycles/hash
-Small key speed test - 9-byte keys - 1174.28 cycles/hash
-Small key speed test - 10-byte keys - 1174.34 cycles/hash
-Small key speed test - 11-byte keys - 1173.93 cycles/hash
-Small key speed test - 12-byte keys - 1173.96 cycles/hash
-Small key speed test - 13-byte keys - 1173.29 cycles/hash
-Small key speed test - 14-byte keys - 1173.24 cycles/hash
-Small key speed test - 15-byte keys - 1173.47 cycles/hash
-Small key speed test - 16-byte keys - 1174.46 cycles/hash
-Small key speed test - 17-byte keys - 1173.90 cycles/hash
-Small key speed test - 18-byte keys - 1174.00 cycles/hash
-Small key speed test - 19-byte keys - 1173.75 cycles/hash
-Small key speed test - 20-byte keys - 1174.03 cycles/hash
-Small key speed test - 21-byte keys - 1173.78 cycles/hash
-Small key speed test - 22-byte keys - 1173.78 cycles/hash
-Small key speed test - 23-byte keys - 1173.77 cycles/hash
-Small key speed test - 24-byte keys - 1177.99 cycles/hash
-Small key speed test - 25-byte keys - 1177.49 cycles/hash
-Small key speed test - 26-byte keys - 1177.49 cycles/hash
-Small key speed test - 27-byte keys - 1177.51 cycles/hash
-Small key speed test - 28-byte keys - 1177.93 cycles/hash
-Small key speed test - 29-byte keys - 1177.50 cycles/hash
-Small key speed test - 30-byte keys - 1177.50 cycles/hash
-Small key speed test - 31-byte keys - 1177.49 cycles/hash
-Average 1170.056 cycles/hash
+Alignment 7 - 0.201 bytes/cycle - 576.31 MiB/sec @ 3 ghz
+Alignment 6 - 0.202 bytes/cycle - 578.71 MiB/sec @ 3 ghz
+Alignment 5 - 0.202 bytes/cycle - 578.66 MiB/sec @ 3 ghz
+Alignment 4 - 0.202 bytes/cycle - 578.70 MiB/sec @ 3 ghz
+Alignment 3 - 0.202 bytes/cycle - 578.80 MiB/sec @ 3 ghz
+Alignment 2 - 0.202 bytes/cycle - 578.02 MiB/sec @ 3 ghz
+Alignment 1 - 0.202 bytes/cycle - 578.69 MiB/sec @ 3 ghz
+Alignment 0 - 0.202 bytes/cycle - 578.70 MiB/sec @ 3 ghz
+Average - 0.202 bytes/cycle - 578.32 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 761.73 cycles/hash
+Small key speed test - 2-byte keys - 766.80 cycles/hash
+Small key speed test - 3-byte keys - 769.83 cycles/hash
+Small key speed test - 4-byte keys - 768.27 cycles/hash
+Small key speed test - 5-byte keys - 762.93 cycles/hash
+Small key speed test - 6-byte keys - 762.12 cycles/hash
+Small key speed test - 7-byte keys - 760.45 cycles/hash
+Small key speed test - 8-byte keys - 791.85 cycles/hash
+Small key speed test - 9-byte keys - 784.32 cycles/hash
+Small key speed test - 10-byte keys - 784.39 cycles/hash
+Small key speed test - 11-byte keys - 784.01 cycles/hash
+Small key speed test - 12-byte keys - 791.16 cycles/hash
+Small key speed test - 13-byte keys - 782.13 cycles/hash
+Small key speed test - 14-byte keys - 783.65 cycles/hash
+Small key speed test - 15-byte keys - 783.19 cycles/hash
+Small key speed test - 16-byte keys - 781.72 cycles/hash
+Small key speed test - 17-byte keys - 779.29 cycles/hash
+Small key speed test - 18-byte keys - 776.97 cycles/hash
+Small key speed test - 19-byte keys - 777.00 cycles/hash
+Small key speed test - 20-byte keys - 786.39 cycles/hash
+Small key speed test - 21-byte keys - 780.20 cycles/hash
+Small key speed test - 22-byte keys - 779.53 cycles/hash
+Small key speed test - 23-byte keys - 777.67 cycles/hash
+Small key speed test - 24-byte keys - 790.50 cycles/hash
+Small key speed test - 25-byte keys - 785.74 cycles/hash
+Small key speed test - 26-byte keys - 786.46 cycles/hash
+Small key speed test - 27-byte keys - 786.63 cycles/hash
+Small key speed test - 28-byte keys - 790.77 cycles/hash
+Small key speed test - 29-byte keys - 785.11 cycles/hash
+Small key speed test - 30-byte keys - 786.28 cycles/hash
+Small key speed test - 31-byte keys - 785.46 cycles/hash
+Small key speed test - 32-byte keys - 801.69 cycles/hash
+Average 780.445 cycles/hash
+Average, weighted by key length freq. 783.019 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 782.230 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2b-224.txt b/doc/blake2b-224.txt
index c034e015..c2eb0e27 100644
--- a/doc/blake2b-224.txt
+++ b/doc/blake2b-224.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xc4e4306bedc - 0xc4e4306be70). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 6 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 5 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 4 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 3 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 2 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 1 - 0.129 bytes/cycle - 368.74 MiB/sec @ 3 ghz
-Alignment 0 - 0.129 bytes/cycle - 369.58 MiB/sec @ 3 ghz
-Average - 0.129 bytes/cycle - 368.85 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1156.76 cycles/hash
-Small key speed test - 2-byte keys - 1152.14 cycles/hash
-Small key speed test - 3-byte keys - 1152.12 cycles/hash
-Small key speed test - 4-byte keys - 1160.77 cycles/hash
-Small key speed test - 5-byte keys - 1160.66 cycles/hash
-Small key speed test - 6-byte keys - 1160.94 cycles/hash
-Small key speed test - 7-byte keys - 1160.59 cycles/hash
-Small key speed test - 8-byte keys - 1175.22 cycles/hash
-Small key speed test - 9-byte keys - 1175.29 cycles/hash
-Small key speed test - 10-byte keys - 1175.36 cycles/hash
-Small key speed test - 11-byte keys - 1175.32 cycles/hash
-Small key speed test - 12-byte keys - 1174.82 cycles/hash
-Small key speed test - 13-byte keys - 1175.03 cycles/hash
-Small key speed test - 14-byte keys - 1175.09 cycles/hash
-Small key speed test - 15-byte keys - 1174.66 cycles/hash
-Small key speed test - 16-byte keys - 1174.93 cycles/hash
-Small key speed test - 17-byte keys - 1173.91 cycles/hash
-Small key speed test - 18-byte keys - 1173.88 cycles/hash
-Small key speed test - 19-byte keys - 1173.75 cycles/hash
-Small key speed test - 20-byte keys - 1174.34 cycles/hash
-Small key speed test - 21-byte keys - 1172.98 cycles/hash
-Small key speed test - 22-byte keys - 1172.98 cycles/hash
-Small key speed test - 23-byte keys - 1172.98 cycles/hash
-Small key speed test - 24-byte keys - 1177.75 cycles/hash
-Small key speed test - 25-byte keys - 1177.65 cycles/hash
-Small key speed test - 26-byte keys - 1177.65 cycles/hash
-Small key speed test - 27-byte keys - 1177.57 cycles/hash
-Small key speed test - 28-byte keys - 1177.79 cycles/hash
-Small key speed test - 29-byte keys - 1177.67 cycles/hash
-Small key speed test - 30-byte keys - 1177.68 cycles/hash
-Small key speed test - 31-byte keys - 1177.65 cycles/hash
-Average 1171.482 cycles/hash
+Alignment 7 - 0.204 bytes/cycle - 582.55 MiB/sec @ 3 ghz
+Alignment 6 - 0.203 bytes/cycle - 579.48 MiB/sec @ 3 ghz
+Alignment 5 - 0.200 bytes/cycle - 573.37 MiB/sec @ 3 ghz
+Alignment 4 - 0.203 bytes/cycle - 580.27 MiB/sec @ 3 ghz
+Alignment 3 - 0.202 bytes/cycle - 578.74 MiB/sec @ 3 ghz
+Alignment 2 - 0.202 bytes/cycle - 578.88 MiB/sec @ 3 ghz
+Alignment 1 - 0.202 bytes/cycle - 577.76 MiB/sec @ 3 ghz
+Alignment 0 - 0.202 bytes/cycle - 577.48 MiB/sec @ 3 ghz
+Average - 0.202 bytes/cycle - 578.57 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 762.85 cycles/hash
+Small key speed test - 2-byte keys - 768.42 cycles/hash
+Small key speed test - 3-byte keys - 766.96 cycles/hash
+Small key speed test - 4-byte keys - 766.95 cycles/hash
+Small key speed test - 5-byte keys - 759.01 cycles/hash
+Small key speed test - 6-byte keys - 761.20 cycles/hash
+Small key speed test - 7-byte keys - 762.11 cycles/hash
+Small key speed test - 8-byte keys - 791.54 cycles/hash
+Small key speed test - 9-byte keys - 782.69 cycles/hash
+Small key speed test - 10-byte keys - 788.86 cycles/hash
+Small key speed test - 11-byte keys - 783.29 cycles/hash
+Small key speed test - 12-byte keys - 791.21 cycles/hash
+Small key speed test - 13-byte keys - 782.70 cycles/hash
+Small key speed test - 14-byte keys - 767.69 cycles/hash
+Small key speed test - 15-byte keys - 758.43 cycles/hash
+Small key speed test - 16-byte keys - 758.34 cycles/hash
+Small key speed test - 17-byte keys - 763.90 cycles/hash
+Small key speed test - 18-byte keys - 766.08 cycles/hash
+Small key speed test - 19-byte keys - 765.18 cycles/hash
+Small key speed test - 20-byte keys - 758.11 cycles/hash
+Small key speed test - 21-byte keys - 764.73 cycles/hash
+Small key speed test - 22-byte keys - 762.59 cycles/hash
+Small key speed test - 23-byte keys - 764.18 cycles/hash
+Small key speed test - 24-byte keys - 767.41 cycles/hash
+Small key speed test - 25-byte keys - 759.22 cycles/hash
+Small key speed test - 26-byte keys - 760.13 cycles/hash
+Small key speed test - 27-byte keys - 761.05 cycles/hash
+Small key speed test - 28-byte keys - 764.01 cycles/hash
+Small key speed test - 29-byte keys - 762.39 cycles/hash
+Small key speed test - 30-byte keys - 758.48 cycles/hash
+Small key speed test - 31-byte keys - 763.97 cycles/hash
+Small key speed test - 32-byte keys - 764.38 cycles/hash
+Average 767.440 cycles/hash
+Average, weighted by key length freq. 770.444 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 771.449 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2b-256.txt b/doc/blake2b-256.txt
index 0e8c1040..7b3ca3c3 100644
--- a/doc/blake2b-256.txt
+++ b/doc/blake2b-256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xccda100cd44 - 0xccda100ccfc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.209 bytes/cycle - 597.06 MiB/sec @ 3 ghz
-Alignment 6 - 0.209 bytes/cycle - 597.89 MiB/sec @ 3 ghz
-Alignment 5 - 0.209 bytes/cycle - 597.63 MiB/sec @ 3 ghz
-Alignment 4 - 0.209 bytes/cycle - 597.89 MiB/sec @ 3 ghz
-Alignment 3 - 0.209 bytes/cycle - 597.87 MiB/sec @ 3 ghz
-Alignment 2 - 0.208 bytes/cycle - 595.60 MiB/sec @ 3 ghz
-Alignment 1 - 0.207 bytes/cycle - 591.32 MiB/sec @ 3 ghz
-Alignment 0 - 0.185 bytes/cycle - 529.05 MiB/sec @ 3 ghz
-Average - 0.206 bytes/cycle - 588.04 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 744.48 cycles/hash
-Small key speed test - 2-byte keys - 751.44 cycles/hash
-Small key speed test - 3-byte keys - 749.51 cycles/hash
-Small key speed test - 4-byte keys - 748.15 cycles/hash
-Small key speed test - 5-byte keys - 743.56 cycles/hash
-Small key speed test - 6-byte keys - 744.97 cycles/hash
-Small key speed test - 7-byte keys - 742.13 cycles/hash
-Small key speed test - 8-byte keys - 769.17 cycles/hash
-Small key speed test - 9-byte keys - 772.36 cycles/hash
-Small key speed test - 10-byte keys - 764.64 cycles/hash
-Small key speed test - 11-byte keys - 762.07 cycles/hash
-Small key speed test - 12-byte keys - 766.97 cycles/hash
-Small key speed test - 13-byte keys - 764.21 cycles/hash
-Small key speed test - 14-byte keys - 765.57 cycles/hash
-Small key speed test - 15-byte keys - 765.41 cycles/hash
-Small key speed test - 16-byte keys - 771.03 cycles/hash
-Small key speed test - 17-byte keys - 772.86 cycles/hash
-Small key speed test - 18-byte keys - 768.48 cycles/hash
-Small key speed test - 19-byte keys - 769.67 cycles/hash
-Small key speed test - 20-byte keys - 770.24 cycles/hash
-Small key speed test - 21-byte keys - 769.36 cycles/hash
-Small key speed test - 22-byte keys - 760.45 cycles/hash
-Small key speed test - 23-byte keys - 759.89 cycles/hash
-Small key speed test - 24-byte keys - 774.39 cycles/hash
-Small key speed test - 25-byte keys - 761.49 cycles/hash
-Small key speed test - 26-byte keys - 764.74 cycles/hash
-Small key speed test - 27-byte keys - 767.61 cycles/hash
-Small key speed test - 28-byte keys - 770.63 cycles/hash
-Small key speed test - 29-byte keys - 765.31 cycles/hash
-Small key speed test - 30-byte keys - 775.36 cycles/hash
-Small key speed test - 31-byte keys - 779.89 cycles/hash
-Average 763.099 cycles/hash
+Alignment 7 - 0.204 bytes/cycle - 582.66 MiB/sec @ 3 ghz
+Alignment 6 - 0.204 bytes/cycle - 582.68 MiB/sec @ 3 ghz
+Alignment 5 - 0.204 bytes/cycle - 582.50 MiB/sec @ 3 ghz
+Alignment 4 - 0.204 bytes/cycle - 582.64 MiB/sec @ 3 ghz
+Alignment 3 - 0.204 bytes/cycle - 582.55 MiB/sec @ 3 ghz
+Alignment 2 - 0.203 bytes/cycle - 581.89 MiB/sec @ 3 ghz
+Alignment 1 - 0.204 bytes/cycle - 582.54 MiB/sec @ 3 ghz
+Alignment 0 - 0.204 bytes/cycle - 582.43 MiB/sec @ 3 ghz
+Average - 0.204 bytes/cycle - 582.49 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 741.67 cycles/hash
+Small key speed test - 2-byte keys - 751.89 cycles/hash
+Small key speed test - 3-byte keys - 750.57 cycles/hash
+Small key speed test - 4-byte keys - 744.22 cycles/hash
+Small key speed test - 5-byte keys - 737.41 cycles/hash
+Small key speed test - 6-byte keys - 737.91 cycles/hash
+Small key speed test - 7-byte keys - 738.44 cycles/hash
+Small key speed test - 8-byte keys - 762.73 cycles/hash
+Small key speed test - 9-byte keys - 761.67 cycles/hash
+Small key speed test - 10-byte keys - 760.93 cycles/hash
+Small key speed test - 11-byte keys - 759.49 cycles/hash
+Small key speed test - 12-byte keys - 766.41 cycles/hash
+Small key speed test - 13-byte keys - 758.61 cycles/hash
+Small key speed test - 14-byte keys - 762.06 cycles/hash
+Small key speed test - 15-byte keys - 759.88 cycles/hash
+Small key speed test - 16-byte keys - 763.35 cycles/hash
+Small key speed test - 17-byte keys - 760.25 cycles/hash
+Small key speed test - 18-byte keys - 760.60 cycles/hash
+Small key speed test - 19-byte keys - 762.97 cycles/hash
+Small key speed test - 20-byte keys - 761.28 cycles/hash
+Small key speed test - 21-byte keys - 760.50 cycles/hash
+Small key speed test - 22-byte keys - 756.80 cycles/hash
+Small key speed test - 23-byte keys - 762.10 cycles/hash
+Small key speed test - 24-byte keys - 761.99 cycles/hash
+Small key speed test - 25-byte keys - 762.22 cycles/hash
+Small key speed test - 26-byte keys - 761.54 cycles/hash
+Small key speed test - 27-byte keys - 760.52 cycles/hash
+Small key speed test - 28-byte keys - 761.99 cycles/hash
+Small key speed test - 29-byte keys - 763.03 cycles/hash
+Small key speed test - 30-byte keys - 761.81 cycles/hash
+Small key speed test - 31-byte keys - 765.63 cycles/hash
+Small key speed test - 32-byte keys - 763.76 cycles/hash
+Average 757.633 cycles/hash
+Average, weighted by key length freq. 760.928 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 760.674 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2b-256_64.txt b/doc/blake2b-256_64.txt
index 3763380b..b261e444 100644
--- a/doc/blake2b-256_64.txt
+++ b/doc/blake2b-256_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xd4b53e86ed8 - 0xd4b53e86e6c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 6 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 5 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 4 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 3 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 2 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 1 - 0.129 bytes/cycle - 368.73 MiB/sec @ 3 ghz
-Alignment 0 - 0.129 bytes/cycle - 369.61 MiB/sec @ 3 ghz
-Average - 0.129 bytes/cycle - 368.84 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1177.60 cycles/hash
-Small key speed test - 2-byte keys - 1181.24 cycles/hash
-Small key speed test - 3-byte keys - 1181.11 cycles/hash
-Small key speed test - 4-byte keys - 1182.49 cycles/hash
-Small key speed test - 5-byte keys - 1182.49 cycles/hash
-Small key speed test - 6-byte keys - 1182.57 cycles/hash
-Small key speed test - 7-byte keys - 1182.37 cycles/hash
-Small key speed test - 8-byte keys - 1204.89 cycles/hash
-Small key speed test - 9-byte keys - 1202.90 cycles/hash
-Small key speed test - 10-byte keys - 1202.90 cycles/hash
-Small key speed test - 11-byte keys - 1202.89 cycles/hash
-Small key speed test - 12-byte keys - 1202.50 cycles/hash
-Small key speed test - 13-byte keys - 1202.94 cycles/hash
-Small key speed test - 14-byte keys - 1202.89 cycles/hash
-Small key speed test - 15-byte keys - 1202.87 cycles/hash
-Small key speed test - 16-byte keys - 1200.21 cycles/hash
-Small key speed test - 17-byte keys - 1204.33 cycles/hash
-Small key speed test - 18-byte keys - 1202.63 cycles/hash
-Small key speed test - 19-byte keys - 1202.56 cycles/hash
-Small key speed test - 20-byte keys - 1205.74 cycles/hash
-Small key speed test - 21-byte keys - 1202.71 cycles/hash
-Small key speed test - 22-byte keys - 1202.72 cycles/hash
-Small key speed test - 23-byte keys - 1202.74 cycles/hash
-Small key speed test - 24-byte keys - 1203.14 cycles/hash
-Small key speed test - 25-byte keys - 1202.44 cycles/hash
-Small key speed test - 26-byte keys - 1202.46 cycles/hash
-Small key speed test - 27-byte keys - 1202.46 cycles/hash
-Small key speed test - 28-byte keys - 1202.51 cycles/hash
-Small key speed test - 29-byte keys - 1202.50 cycles/hash
-Small key speed test - 30-byte keys - 1202.50 cycles/hash
-Small key speed test - 31-byte keys - 1202.52 cycles/hash
-Average 1198.027 cycles/hash
+Alignment 7 - 0.202 bytes/cycle - 579.26 MiB/sec @ 3 ghz
+Alignment 6 - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+Alignment 5 - 0.202 bytes/cycle - 579.27 MiB/sec @ 3 ghz
+Alignment 4 - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+Alignment 3 - 0.202 bytes/cycle - 579.26 MiB/sec @ 3 ghz
+Alignment 2 - 0.202 bytes/cycle - 579.30 MiB/sec @ 3 ghz
+Alignment 1 - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+Alignment 0 - 0.202 bytes/cycle - 579.29 MiB/sec @ 3 ghz
+Average - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 744.08 cycles/hash
+Small key speed test - 2-byte keys - 742.96 cycles/hash
+Small key speed test - 3-byte keys - 745.75 cycles/hash
+Small key speed test - 4-byte keys - 752.87 cycles/hash
+Small key speed test - 5-byte keys - 755.51 cycles/hash
+Small key speed test - 6-byte keys - 763.55 cycles/hash
+Small key speed test - 7-byte keys - 757.01 cycles/hash
+Small key speed test - 8-byte keys - 764.13 cycles/hash
+Small key speed test - 9-byte keys - 759.89 cycles/hash
+Small key speed test - 10-byte keys - 767.60 cycles/hash
+Small key speed test - 11-byte keys - 759.92 cycles/hash
+Small key speed test - 12-byte keys - 762.00 cycles/hash
+Small key speed test - 13-byte keys - 760.35 cycles/hash
+Small key speed test - 14-byte keys - 761.03 cycles/hash
+Small key speed test - 15-byte keys - 762.77 cycles/hash
+Small key speed test - 16-byte keys - 765.27 cycles/hash
+Small key speed test - 17-byte keys - 768.51 cycles/hash
+Small key speed test - 18-byte keys - 767.82 cycles/hash
+Small key speed test - 19-byte keys - 760.80 cycles/hash
+Small key speed test - 20-byte keys - 763.82 cycles/hash
+Small key speed test - 21-byte keys - 764.50 cycles/hash
+Small key speed test - 22-byte keys - 762.94 cycles/hash
+Small key speed test - 23-byte keys - 760.87 cycles/hash
+Small key speed test - 24-byte keys - 777.56 cycles/hash
+Small key speed test - 25-byte keys - 779.40 cycles/hash
+Small key speed test - 26-byte keys - 778.01 cycles/hash
+Small key speed test - 27-byte keys - 777.29 cycles/hash
+Small key speed test - 28-byte keys - 780.21 cycles/hash
+Small key speed test - 29-byte keys - 777.71 cycles/hash
+Small key speed test - 30-byte keys - 776.85 cycles/hash
+Small key speed test - 31-byte keys - 777.15 cycles/hash
+Small key speed test - 32-byte keys - 782.70 cycles/hash
+Average 765.025 cycles/hash
+Average, weighted by key length freq. 765.123 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 762.826 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2s-128.txt b/doc/blake2s-128.txt
index e7a32ef1..f9e84858 100644
--- a/doc/blake2s-128.txt
+++ b/doc/blake2s-128.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x9895a602254 - 0x9895a6021e8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 6 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 5 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 4 - 0.077 bytes/cycle - 221.06 MiB/sec @ 3 ghz
-Alignment 3 - 0.077 bytes/cycle - 221.06 MiB/sec @ 3 ghz
-Alignment 2 - 0.077 bytes/cycle - 221.06 MiB/sec @ 3 ghz
-Alignment 1 - 0.077 bytes/cycle - 221.06 MiB/sec @ 3 ghz
-Alignment 0 - 0.077 bytes/cycle - 221.27 MiB/sec @ 3 ghz
-Average - 0.077 bytes/cycle - 221.08 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 966.00 cycles/hash
-Small key speed test - 2-byte keys - 970.00 cycles/hash
-Small key speed test - 3-byte keys - 970.00 cycles/hash
-Small key speed test - 4-byte keys - 961.00 cycles/hash
-Small key speed test - 5-byte keys - 961.88 cycles/hash
-Small key speed test - 6-byte keys - 961.59 cycles/hash
-Small key speed test - 7-byte keys - 961.51 cycles/hash
-Small key speed test - 8-byte keys - 984.74 cycles/hash
-Small key speed test - 9-byte keys - 984.00 cycles/hash
-Small key speed test - 10-byte keys - 984.00 cycles/hash
-Small key speed test - 11-byte keys - 984.00 cycles/hash
-Small key speed test - 12-byte keys - 984.80 cycles/hash
-Small key speed test - 13-byte keys - 982.98 cycles/hash
-Small key speed test - 14-byte keys - 982.98 cycles/hash
-Small key speed test - 15-byte keys - 982.98 cycles/hash
-Small key speed test - 16-byte keys - 976.83 cycles/hash
-Small key speed test - 17-byte keys - 974.00 cycles/hash
-Small key speed test - 18-byte keys - 974.00 cycles/hash
-Small key speed test - 19-byte keys - 974.95 cycles/hash
-Small key speed test - 20-byte keys - 977.38 cycles/hash
-Small key speed test - 21-byte keys - 977.36 cycles/hash
-Small key speed test - 22-byte keys - 977.36 cycles/hash
-Small key speed test - 23-byte keys - 977.35 cycles/hash
-Small key speed test - 24-byte keys - 973.00 cycles/hash
-Small key speed test - 25-byte keys - 973.00 cycles/hash
-Small key speed test - 26-byte keys - 973.00 cycles/hash
-Small key speed test - 27-byte keys - 973.00 cycles/hash
-Small key speed test - 28-byte keys - 973.00 cycles/hash
-Small key speed test - 29-byte keys - 973.28 cycles/hash
-Small key speed test - 30-byte keys - 973.00 cycles/hash
-Small key speed test - 31-byte keys - 973.00 cycles/hash
-Average 974.709 cycles/hash
+Alignment 7 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 6 - 0.120 bytes/cycle - 342.12 MiB/sec @ 3 ghz
+Alignment 5 - 0.120 bytes/cycle - 342.10 MiB/sec @ 3 ghz
+Alignment 4 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 3 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 2 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 1 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 0 - 0.120 bytes/cycle - 343.33 MiB/sec @ 3 ghz
+Average - 0.120 bytes/cycle - 342.97 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 618.76 cycles/hash
+Small key speed test - 2-byte keys - 620.18 cycles/hash
+Small key speed test - 3-byte keys - 621.20 cycles/hash
+Small key speed test - 4-byte keys - 619.45 cycles/hash
+Small key speed test - 5-byte keys - 627.85 cycles/hash
+Small key speed test - 6-byte keys - 623.64 cycles/hash
+Small key speed test - 7-byte keys - 622.54 cycles/hash
+Small key speed test - 8-byte keys - 640.83 cycles/hash
+Small key speed test - 9-byte keys - 639.96 cycles/hash
+Small key speed test - 10-byte keys - 641.56 cycles/hash
+Small key speed test - 11-byte keys - 641.14 cycles/hash
+Small key speed test - 12-byte keys - 642.18 cycles/hash
+Small key speed test - 13-byte keys - 640.79 cycles/hash
+Small key speed test - 14-byte keys - 641.05 cycles/hash
+Small key speed test - 15-byte keys - 641.86 cycles/hash
+Small key speed test - 16-byte keys - 629.39 cycles/hash
+Small key speed test - 17-byte keys - 647.10 cycles/hash
+Small key speed test - 18-byte keys - 649.18 cycles/hash
+Small key speed test - 19-byte keys - 649.29 cycles/hash
+Small key speed test - 20-byte keys - 642.98 cycles/hash
+Small key speed test - 21-byte keys - 638.67 cycles/hash
+Small key speed test - 22-byte keys - 639.40 cycles/hash
+Small key speed test - 23-byte keys - 638.05 cycles/hash
+Small key speed test - 24-byte keys - 640.20 cycles/hash
+Small key speed test - 25-byte keys - 645.43 cycles/hash
+Small key speed test - 26-byte keys - 644.98 cycles/hash
+Small key speed test - 27-byte keys - 644.73 cycles/hash
+Small key speed test - 28-byte keys - 643.45 cycles/hash
+Small key speed test - 29-byte keys - 645.34 cycles/hash
+Small key speed test - 30-byte keys - 652.75 cycles/hash
+Small key speed test - 31-byte keys - 653.12 cycles/hash
+Small key speed test - 32-byte keys - 655.42 cycles/hash
+Average 638.826 cycles/hash
+Average, weighted by key length freq. 641.703 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 635.196 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2s-160.txt b/doc/blake2s-160.txt
index 5ce8c0c4..e18f9871 100644
--- a/doc/blake2s-160.txt
+++ b/doc/blake2s-160.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x9fa9eebce24 - 0x9fa9eebcdb8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.077 bytes/cycle - 221.03 MiB/sec @ 3 ghz
-Alignment 6 - 0.077 bytes/cycle - 221.03 MiB/sec @ 3 ghz
-Alignment 5 - 0.077 bytes/cycle - 221.03 MiB/sec @ 3 ghz
-Alignment 4 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 3 - 0.077 bytes/cycle - 220.99 MiB/sec @ 3 ghz
-Alignment 2 - 0.077 bytes/cycle - 220.99 MiB/sec @ 3 ghz
-Alignment 1 - 0.077 bytes/cycle - 220.99 MiB/sec @ 3 ghz
-Alignment 0 - 0.077 bytes/cycle - 221.36 MiB/sec @ 3 ghz
-Average - 0.077 bytes/cycle - 221.06 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 978.00 cycles/hash
-Small key speed test - 2-byte keys - 972.00 cycles/hash
-Small key speed test - 3-byte keys - 972.59 cycles/hash
-Small key speed test - 4-byte keys - 969.72 cycles/hash
-Small key speed test - 5-byte keys - 973.56 cycles/hash
-Small key speed test - 6-byte keys - 969.81 cycles/hash
-Small key speed test - 7-byte keys - 973.61 cycles/hash
-Small key speed test - 8-byte keys - 992.98 cycles/hash
-Small key speed test - 9-byte keys - 987.77 cycles/hash
-Small key speed test - 10-byte keys - 987.92 cycles/hash
-Small key speed test - 11-byte keys - 987.92 cycles/hash
-Small key speed test - 12-byte keys - 993.00 cycles/hash
-Small key speed test - 13-byte keys - 991.13 cycles/hash
-Small key speed test - 14-byte keys - 991.14 cycles/hash
-Small key speed test - 15-byte keys - 991.14 cycles/hash
-Small key speed test - 16-byte keys - 986.41 cycles/hash
-Small key speed test - 17-byte keys - 985.00 cycles/hash
-Small key speed test - 18-byte keys - 985.00 cycles/hash
-Small key speed test - 19-byte keys - 985.00 cycles/hash
-Small key speed test - 20-byte keys - 987.00 cycles/hash
-Small key speed test - 21-byte keys - 987.05 cycles/hash
-Small key speed test - 22-byte keys - 987.05 cycles/hash
-Small key speed test - 23-byte keys - 987.04 cycles/hash
-Small key speed test - 24-byte keys - 987.06 cycles/hash
-Small key speed test - 25-byte keys - 987.02 cycles/hash
-Small key speed test - 26-byte keys - 987.02 cycles/hash
-Small key speed test - 27-byte keys - 987.02 cycles/hash
-Small key speed test - 28-byte keys - 987.06 cycles/hash
-Small key speed test - 29-byte keys - 987.02 cycles/hash
-Small key speed test - 30-byte keys - 987.03 cycles/hash
-Small key speed test - 31-byte keys - 987.03 cycles/hash
-Average 984.456 cycles/hash
+Alignment 7 - 0.119 bytes/cycle - 341.78 MiB/sec @ 3 ghz
+Alignment 6 - 0.119 bytes/cycle - 341.77 MiB/sec @ 3 ghz
+Alignment 5 - 0.119 bytes/cycle - 341.78 MiB/sec @ 3 ghz
+Alignment 4 - 0.119 bytes/cycle - 341.77 MiB/sec @ 3 ghz
+Alignment 3 - 0.119 bytes/cycle - 341.72 MiB/sec @ 3 ghz
+Alignment 2 - 0.119 bytes/cycle - 341.76 MiB/sec @ 3 ghz
+Alignment 1 - 0.119 bytes/cycle - 341.78 MiB/sec @ 3 ghz
+Alignment 0 - 0.119 bytes/cycle - 341.54 MiB/sec @ 3 ghz
+Average - 0.119 bytes/cycle - 341.74 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 640.15 cycles/hash
+Small key speed test - 2-byte keys - 642.06 cycles/hash
+Small key speed test - 3-byte keys - 642.24 cycles/hash
+Small key speed test - 4-byte keys - 641.03 cycles/hash
+Small key speed test - 5-byte keys - 646.11 cycles/hash
+Small key speed test - 6-byte keys - 644.73 cycles/hash
+Small key speed test - 7-byte keys - 644.77 cycles/hash
+Small key speed test - 8-byte keys - 661.67 cycles/hash
+Small key speed test - 9-byte keys - 662.72 cycles/hash
+Small key speed test - 10-byte keys - 661.12 cycles/hash
+Small key speed test - 11-byte keys - 661.94 cycles/hash
+Small key speed test - 12-byte keys - 661.13 cycles/hash
+Small key speed test - 13-byte keys - 661.98 cycles/hash
+Small key speed test - 14-byte keys - 661.31 cycles/hash
+Small key speed test - 15-byte keys - 661.14 cycles/hash
+Small key speed test - 16-byte keys - 650.81 cycles/hash
+Small key speed test - 17-byte keys - 671.35 cycles/hash
+Small key speed test - 18-byte keys - 672.32 cycles/hash
+Small key speed test - 19-byte keys - 670.50 cycles/hash
+Small key speed test - 20-byte keys - 664.66 cycles/hash
+Small key speed test - 21-byte keys - 660.61 cycles/hash
+Small key speed test - 22-byte keys - 659.70 cycles/hash
+Small key speed test - 23-byte keys - 658.39 cycles/hash
+Small key speed test - 24-byte keys - 662.71 cycles/hash
+Small key speed test - 25-byte keys - 666.23 cycles/hash
+Small key speed test - 26-byte keys - 667.28 cycles/hash
+Small key speed test - 27-byte keys - 666.39 cycles/hash
+Small key speed test - 28-byte keys - 662.45 cycles/hash
+Small key speed test - 29-byte keys - 666.63 cycles/hash
+Small key speed test - 30-byte keys - 667.45 cycles/hash
+Small key speed test - 31-byte keys - 666.30 cycles/hash
+Small key speed test - 32-byte keys - 669.27 cycles/hash
+Average 659.286 cycles/hash
+Average, weighted by key length freq. 662.619 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 656.554 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2s-224.txt b/doc/blake2s-224.txt
index a9f07fcb..04b164a8 100644
--- a/doc/blake2s-224.txt
+++ b/doc/blake2s-224.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xa6f08318a20 - 0xa6f083189b4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 6 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 5 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 4 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 3 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 2 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 1 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 0 - 0.077 bytes/cycle - 221.27 MiB/sec @ 3 ghz
-Average - 0.077 bytes/cycle - 221.07 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 970.98 cycles/hash
-Small key speed test - 2-byte keys - 977.00 cycles/hash
-Small key speed test - 3-byte keys - 977.00 cycles/hash
-Small key speed test - 4-byte keys - 972.00 cycles/hash
-Small key speed test - 5-byte keys - 972.00 cycles/hash
-Small key speed test - 6-byte keys - 972.00 cycles/hash
-Small key speed test - 7-byte keys - 972.28 cycles/hash
-Small key speed test - 8-byte keys - 994.30 cycles/hash
-Small key speed test - 9-byte keys - 988.86 cycles/hash
-Small key speed test - 10-byte keys - 988.84 cycles/hash
-Small key speed test - 11-byte keys - 988.86 cycles/hash
-Small key speed test - 12-byte keys - 993.93 cycles/hash
-Small key speed test - 13-byte keys - 994.09 cycles/hash
-Small key speed test - 14-byte keys - 994.08 cycles/hash
-Small key speed test - 15-byte keys - 994.08 cycles/hash
-Small key speed test - 16-byte keys - 986.59 cycles/hash
-Small key speed test - 17-byte keys - 985.00 cycles/hash
-Small key speed test - 18-byte keys - 985.00 cycles/hash
-Small key speed test - 19-byte keys - 985.00 cycles/hash
-Small key speed test - 20-byte keys - 986.35 cycles/hash
-Small key speed test - 21-byte keys - 986.08 cycles/hash
-Small key speed test - 22-byte keys - 986.08 cycles/hash
-Small key speed test - 23-byte keys - 986.07 cycles/hash
-Small key speed test - 24-byte keys - 983.00 cycles/hash
-Small key speed test - 25-byte keys - 984.54 cycles/hash
-Small key speed test - 26-byte keys - 984.72 cycles/hash
-Small key speed test - 27-byte keys - 984.71 cycles/hash
-Small key speed test - 28-byte keys - 983.00 cycles/hash
-Small key speed test - 29-byte keys - 984.81 cycles/hash
-Small key speed test - 30-byte keys - 984.82 cycles/hash
-Small key speed test - 31-byte keys - 984.81 cycles/hash
-Average 984.222 cycles/hash
+Alignment 7 - 0.118 bytes/cycle - 338.31 MiB/sec @ 3 ghz
+Alignment 6 - 0.118 bytes/cycle - 338.34 MiB/sec @ 3 ghz
+Alignment 5 - 0.118 bytes/cycle - 338.70 MiB/sec @ 3 ghz
+Alignment 4 - 0.118 bytes/cycle - 338.69 MiB/sec @ 3 ghz
+Alignment 3 - 0.118 bytes/cycle - 338.69 MiB/sec @ 3 ghz
+Alignment 2 - 0.118 bytes/cycle - 338.70 MiB/sec @ 3 ghz
+Alignment 1 - 0.118 bytes/cycle - 338.70 MiB/sec @ 3 ghz
+Alignment 0 - 0.118 bytes/cycle - 338.79 MiB/sec @ 3 ghz
+Average - 0.118 bytes/cycle - 338.62 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 645.93 cycles/hash
+Small key speed test - 2-byte keys - 647.97 cycles/hash
+Small key speed test - 3-byte keys - 648.40 cycles/hash
+Small key speed test - 4-byte keys - 647.99 cycles/hash
+Small key speed test - 5-byte keys - 650.82 cycles/hash
+Small key speed test - 6-byte keys - 651.59 cycles/hash
+Small key speed test - 7-byte keys - 651.74 cycles/hash
+Small key speed test - 8-byte keys - 661.45 cycles/hash
+Small key speed test - 9-byte keys - 663.14 cycles/hash
+Small key speed test - 10-byte keys - 664.18 cycles/hash
+Small key speed test - 11-byte keys - 669.42 cycles/hash
+Small key speed test - 12-byte keys - 668.81 cycles/hash
+Small key speed test - 13-byte keys - 668.99 cycles/hash
+Small key speed test - 14-byte keys - 667.98 cycles/hash
+Small key speed test - 15-byte keys - 662.93 cycles/hash
+Small key speed test - 16-byte keys - 650.50 cycles/hash
+Small key speed test - 17-byte keys - 669.58 cycles/hash
+Small key speed test - 18-byte keys - 669.96 cycles/hash
+Small key speed test - 19-byte keys - 669.94 cycles/hash
+Small key speed test - 20-byte keys - 658.11 cycles/hash
+Small key speed test - 21-byte keys - 660.00 cycles/hash
+Small key speed test - 22-byte keys - 659.40 cycles/hash
+Small key speed test - 23-byte keys - 664.26 cycles/hash
+Small key speed test - 24-byte keys - 670.29 cycles/hash
+Small key speed test - 25-byte keys - 673.28 cycles/hash
+Small key speed test - 26-byte keys - 674.66 cycles/hash
+Small key speed test - 27-byte keys - 667.60 cycles/hash
+Small key speed test - 28-byte keys - 667.00 cycles/hash
+Small key speed test - 29-byte keys - 670.45 cycles/hash
+Small key speed test - 30-byte keys - 673.68 cycles/hash
+Small key speed test - 31-byte keys - 673.87 cycles/hash
+Small key speed test - 32-byte keys - 677.17 cycles/hash
+Average 663.159 cycles/hash
+Average, weighted by key length freq. 665.409 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 658.362 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2s-256.txt b/doc/blake2s-256.txt
index 29fe391d..e36e70ac 100644
--- a/doc/blake2s-256.txt
+++ b/doc/blake2s-256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xae41add46fc - 0xae41add4690). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 6 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 5 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 4 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 3 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 2 - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-Alignment 1 - 0.077 bytes/cycle - 221.04 MiB/sec @ 3 ghz
-Alignment 0 - 0.077 bytes/cycle - 221.25 MiB/sec @ 3 ghz
-Average - 0.077 bytes/cycle - 221.07 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 963.00 cycles/hash
-Small key speed test - 2-byte keys - 970.65 cycles/hash
-Small key speed test - 3-byte keys - 970.40 cycles/hash
-Small key speed test - 4-byte keys - 965.50 cycles/hash
-Small key speed test - 5-byte keys - 964.97 cycles/hash
-Small key speed test - 6-byte keys - 965.07 cycles/hash
-Small key speed test - 7-byte keys - 963.47 cycles/hash
-Small key speed test - 8-byte keys - 983.97 cycles/hash
-Small key speed test - 9-byte keys - 983.00 cycles/hash
-Small key speed test - 10-byte keys - 983.00 cycles/hash
-Small key speed test - 11-byte keys - 983.00 cycles/hash
-Small key speed test - 12-byte keys - 983.98 cycles/hash
-Small key speed test - 13-byte keys - 985.24 cycles/hash
-Small key speed test - 14-byte keys - 985.25 cycles/hash
-Small key speed test - 15-byte keys - 985.24 cycles/hash
-Small key speed test - 16-byte keys - 976.51 cycles/hash
-Small key speed test - 17-byte keys - 977.63 cycles/hash
-Small key speed test - 18-byte keys - 975.85 cycles/hash
-Small key speed test - 19-byte keys - 976.77 cycles/hash
-Small key speed test - 20-byte keys - 979.18 cycles/hash
-Small key speed test - 21-byte keys - 979.22 cycles/hash
-Small key speed test - 22-byte keys - 979.22 cycles/hash
-Small key speed test - 23-byte keys - 979.22 cycles/hash
-Small key speed test - 24-byte keys - 977.16 cycles/hash
-Small key speed test - 25-byte keys - 977.14 cycles/hash
-Small key speed test - 26-byte keys - 977.14 cycles/hash
-Small key speed test - 27-byte keys - 977.14 cycles/hash
-Small key speed test - 28-byte keys - 977.16 cycles/hash
-Small key speed test - 29-byte keys - 977.14 cycles/hash
-Small key speed test - 30-byte keys - 977.14 cycles/hash
-Small key speed test - 31-byte keys - 977.14 cycles/hash
-Average 976.661 cycles/hash
+Alignment 7 - 0.119 bytes/cycle - 341.61 MiB/sec @ 3 ghz
+Alignment 6 - 0.119 bytes/cycle - 341.64 MiB/sec @ 3 ghz
+Alignment 5 - 0.119 bytes/cycle - 341.68 MiB/sec @ 3 ghz
+Alignment 4 - 0.119 bytes/cycle - 341.66 MiB/sec @ 3 ghz
+Alignment 3 - 0.119 bytes/cycle - 341.60 MiB/sec @ 3 ghz
+Alignment 2 - 0.119 bytes/cycle - 341.65 MiB/sec @ 3 ghz
+Alignment 1 - 0.119 bytes/cycle - 341.64 MiB/sec @ 3 ghz
+Alignment 0 - 0.119 bytes/cycle - 341.72 MiB/sec @ 3 ghz
+Average - 0.119 bytes/cycle - 341.65 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 627.32 cycles/hash
+Small key speed test - 2-byte keys - 630.88 cycles/hash
+Small key speed test - 3-byte keys - 630.87 cycles/hash
+Small key speed test - 4-byte keys - 627.29 cycles/hash
+Small key speed test - 5-byte keys - 634.24 cycles/hash
+Small key speed test - 6-byte keys - 636.22 cycles/hash
+Small key speed test - 7-byte keys - 635.78 cycles/hash
+Small key speed test - 8-byte keys - 645.62 cycles/hash
+Small key speed test - 9-byte keys - 649.18 cycles/hash
+Small key speed test - 10-byte keys - 649.49 cycles/hash
+Small key speed test - 11-byte keys - 649.46 cycles/hash
+Small key speed test - 12-byte keys - 649.13 cycles/hash
+Small key speed test - 13-byte keys - 649.13 cycles/hash
+Small key speed test - 14-byte keys - 649.42 cycles/hash
+Small key speed test - 15-byte keys - 649.51 cycles/hash
+Small key speed test - 16-byte keys - 647.98 cycles/hash
+Small key speed test - 17-byte keys - 651.77 cycles/hash
+Small key speed test - 18-byte keys - 649.52 cycles/hash
+Small key speed test - 19-byte keys - 651.78 cycles/hash
+Small key speed test - 20-byte keys - 652.20 cycles/hash
+Small key speed test - 21-byte keys - 650.49 cycles/hash
+Small key speed test - 22-byte keys - 650.63 cycles/hash
+Small key speed test - 23-byte keys - 650.64 cycles/hash
+Small key speed test - 24-byte keys - 647.54 cycles/hash
+Small key speed test - 25-byte keys - 649.15 cycles/hash
+Small key speed test - 26-byte keys - 646.30 cycles/hash
+Small key speed test - 27-byte keys - 645.98 cycles/hash
+Small key speed test - 28-byte keys - 655.95 cycles/hash
+Small key speed test - 29-byte keys - 646.03 cycles/hash
+Small key speed test - 30-byte keys - 645.84 cycles/hash
+Small key speed test - 31-byte keys - 648.16 cycles/hash
+Small key speed test - 32-byte keys - 661.09 cycles/hash
+Average 645.769 cycles/hash
+Average, weighted by key length freq. 649.359 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 647.666 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake2s-256_64.txt b/doc/blake2s-256_64.txt
index c5c7ae78..4e0c5e3c 100644
--- a/doc/blake2s-256_64.txt
+++ b/doc/blake2s-256_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xb568ea52df4 - 0xb568ea52d88). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.077 bytes/cycle - 221.01 MiB/sec @ 3 ghz
-Alignment 6 - 0.077 bytes/cycle - 221.01 MiB/sec @ 3 ghz
-Alignment 5 - 0.077 bytes/cycle - 221.01 MiB/sec @ 3 ghz
-Alignment 4 - 0.077 bytes/cycle - 221.02 MiB/sec @ 3 ghz
-Alignment 3 - 0.077 bytes/cycle - 221.00 MiB/sec @ 3 ghz
-Alignment 2 - 0.077 bytes/cycle - 220.99 MiB/sec @ 3 ghz
-Alignment 1 - 0.077 bytes/cycle - 220.99 MiB/sec @ 3 ghz
-Alignment 0 - 0.077 bytes/cycle - 221.35 MiB/sec @ 3 ghz
-Average - 0.077 bytes/cycle - 221.05 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1031.40 cycles/hash
-Small key speed test - 2-byte keys - 1029.42 cycles/hash
-Small key speed test - 3-byte keys - 1029.47 cycles/hash
-Small key speed test - 4-byte keys - 1026.45 cycles/hash
-Small key speed test - 5-byte keys - 1029.94 cycles/hash
-Small key speed test - 6-byte keys - 1029.92 cycles/hash
-Small key speed test - 7-byte keys - 1030.84 cycles/hash
-Small key speed test - 8-byte keys - 1051.25 cycles/hash
-Small key speed test - 9-byte keys - 1051.55 cycles/hash
-Small key speed test - 10-byte keys - 1051.50 cycles/hash
-Small key speed test - 11-byte keys - 1051.85 cycles/hash
-Small key speed test - 12-byte keys - 1051.59 cycles/hash
-Small key speed test - 13-byte keys - 1051.49 cycles/hash
-Small key speed test - 14-byte keys - 1051.55 cycles/hash
-Small key speed test - 15-byte keys - 1051.85 cycles/hash
-Small key speed test - 16-byte keys - 1050.58 cycles/hash
-Small key speed test - 17-byte keys - 1050.54 cycles/hash
-Small key speed test - 18-byte keys - 1050.53 cycles/hash
-Small key speed test - 19-byte keys - 1050.60 cycles/hash
-Small key speed test - 20-byte keys - 1050.66 cycles/hash
-Small key speed test - 21-byte keys - 1050.56 cycles/hash
-Small key speed test - 22-byte keys - 1050.48 cycles/hash
-Small key speed test - 23-byte keys - 1050.50 cycles/hash
-Small key speed test - 24-byte keys - 1050.58 cycles/hash
-Small key speed test - 25-byte keys - 1050.50 cycles/hash
-Small key speed test - 26-byte keys - 1050.46 cycles/hash
-Small key speed test - 27-byte keys - 1050.50 cycles/hash
-Small key speed test - 28-byte keys - 1050.63 cycles/hash
-Small key speed test - 29-byte keys - 1050.43 cycles/hash
-Small key speed test - 30-byte keys - 1050.50 cycles/hash
-Small key speed test - 31-byte keys - 1050.49 cycles/hash
-Average 1046.084 cycles/hash
+Alignment 7 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 6 - 0.118 bytes/cycle - 338.77 MiB/sec @ 3 ghz
+Alignment 5 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 4 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 3 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 2 - 0.118 bytes/cycle - 338.91 MiB/sec @ 3 ghz
+Alignment 1 - 0.117 bytes/cycle - 336.11 MiB/sec @ 3 ghz
+Alignment 0 - 0.118 bytes/cycle - 338.84 MiB/sec @ 3 ghz
+Average - 0.118 bytes/cycle - 338.46 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 642.21 cycles/hash
+Small key speed test - 2-byte keys - 647.20 cycles/hash
+Small key speed test - 3-byte keys - 650.00 cycles/hash
+Small key speed test - 4-byte keys - 646.23 cycles/hash
+Small key speed test - 5-byte keys - 651.76 cycles/hash
+Small key speed test - 6-byte keys - 651.44 cycles/hash
+Small key speed test - 7-byte keys - 659.12 cycles/hash
+Small key speed test - 8-byte keys - 679.91 cycles/hash
+Small key speed test - 9-byte keys - 671.89 cycles/hash
+Small key speed test - 10-byte keys - 678.53 cycles/hash
+Small key speed test - 11-byte keys - 674.00 cycles/hash
+Small key speed test - 12-byte keys - 674.13 cycles/hash
+Small key speed test - 13-byte keys - 681.29 cycles/hash
+Small key speed test - 14-byte keys - 686.86 cycles/hash
+Small key speed test - 15-byte keys - 687.08 cycles/hash
+Small key speed test - 16-byte keys - 684.20 cycles/hash
+Small key speed test - 17-byte keys - 674.16 cycles/hash
+Small key speed test - 18-byte keys - 675.36 cycles/hash
+Small key speed test - 19-byte keys - 686.71 cycles/hash
+Small key speed test - 20-byte keys - 678.05 cycles/hash
+Small key speed test - 21-byte keys - 670.29 cycles/hash
+Small key speed test - 22-byte keys - 683.23 cycles/hash
+Small key speed test - 23-byte keys - 677.69 cycles/hash
+Small key speed test - 24-byte keys - 671.31 cycles/hash
+Small key speed test - 25-byte keys - 673.83 cycles/hash
+Small key speed test - 26-byte keys - 682.39 cycles/hash
+Small key speed test - 27-byte keys - 676.07 cycles/hash
+Small key speed test - 28-byte keys - 673.70 cycles/hash
+Small key speed test - 29-byte keys - 679.05 cycles/hash
+Small key speed test - 30-byte keys - 685.65 cycles/hash
+Small key speed test - 31-byte keys - 685.81 cycles/hash
+Small key speed test - 32-byte keys - 687.87 cycles/hash
+Average 672.720 cycles/hash
+Average, weighted by key length freq. 678.748 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 677.625 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/blake3_c.txt b/doc/blake3_c.txt
index 8162ef58..26f9f6df 100644
--- a/doc/blake3_c.txt
+++ b/doc/blake3_c.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x94d62935ab0 - 0x94d62935a44). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.449 bytes/cycle - 1283.43 MiB/sec @ 3 ghz
-Alignment 6 - 0.449 bytes/cycle - 1283.44 MiB/sec @ 3 ghz
-Alignment 5 - 0.449 bytes/cycle - 1283.45 MiB/sec @ 3 ghz
-Alignment 4 - 0.449 bytes/cycle - 1284.02 MiB/sec @ 3 ghz
-Alignment 3 - 0.449 bytes/cycle - 1283.43 MiB/sec @ 3 ghz
-Alignment 2 - 0.449 bytes/cycle - 1283.46 MiB/sec @ 3 ghz
-Alignment 1 - 0.449 bytes/cycle - 1283.45 MiB/sec @ 3 ghz
-Alignment 0 - 0.455 bytes/cycle - 1302.57 MiB/sec @ 3 ghz
-Average - 0.449 bytes/cycle - 1285.91 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 331.00 cycles/hash
-Small key speed test - 2-byte keys - 332.00 cycles/hash
-Small key speed test - 3-byte keys - 332.00 cycles/hash
-Small key speed test - 4-byte keys - 332.84 cycles/hash
-Small key speed test - 5-byte keys - 332.84 cycles/hash
-Small key speed test - 6-byte keys - 332.84 cycles/hash
-Small key speed test - 7-byte keys - 332.86 cycles/hash
-Small key speed test - 8-byte keys - 341.29 cycles/hash
-Small key speed test - 9-byte keys - 341.50 cycles/hash
-Small key speed test - 10-byte keys - 341.50 cycles/hash
-Small key speed test - 11-byte keys - 341.50 cycles/hash
-Small key speed test - 12-byte keys - 340.00 cycles/hash
-Small key speed test - 13-byte keys - 341.50 cycles/hash
-Small key speed test - 14-byte keys - 341.50 cycles/hash
-Small key speed test - 15-byte keys - 341.50 cycles/hash
-Small key speed test - 16-byte keys - 340.00 cycles/hash
-Small key speed test - 17-byte keys - 341.50 cycles/hash
-Small key speed test - 18-byte keys - 353.17 cycles/hash
-Small key speed test - 19-byte keys - 343.43 cycles/hash
-Small key speed test - 20-byte keys - 340.00 cycles/hash
-Small key speed test - 21-byte keys - 341.50 cycles/hash
-Small key speed test - 22-byte keys - 341.50 cycles/hash
-Small key speed test - 23-byte keys - 341.50 cycles/hash
-Small key speed test - 24-byte keys - 340.00 cycles/hash
-Small key speed test - 25-byte keys - 342.00 cycles/hash
-Small key speed test - 26-byte keys - 342.00 cycles/hash
-Small key speed test - 27-byte keys - 342.00 cycles/hash
-Small key speed test - 28-byte keys - 341.00 cycles/hash
-Small key speed test - 29-byte keys - 342.00 cycles/hash
-Small key speed test - 30-byte keys - 342.00 cycles/hash
-Small key speed test - 31-byte keys - 350.00 cycles/hash
-Average 340.009 cycles/hash
+Alignment 7 - 0.452 bytes/cycle - 1292.25 MiB/sec @ 3 ghz
+Alignment 6 - 0.452 bytes/cycle - 1292.20 MiB/sec @ 3 ghz
+Alignment 5 - 0.453 bytes/cycle - 1297.25 MiB/sec @ 3 ghz
+Alignment 4 - 0.454 bytes/cycle - 1300.28 MiB/sec @ 3 ghz
+Alignment 3 - 0.454 bytes/cycle - 1299.73 MiB/sec @ 3 ghz
+Alignment 2 - 0.454 bytes/cycle - 1299.64 MiB/sec @ 3 ghz
+Alignment 1 - 0.454 bytes/cycle - 1299.30 MiB/sec @ 3 ghz
+Alignment 0 - 0.456 bytes/cycle - 1303.66 MiB/sec @ 3 ghz
+Average - 0.454 bytes/cycle - 1298.04 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 346.69 cycles/hash
+Small key speed test - 2-byte keys - 350.69 cycles/hash
+Small key speed test - 3-byte keys - 350.27 cycles/hash
+Small key speed test - 4-byte keys - 351.05 cycles/hash
+Small key speed test - 5-byte keys - 352.26 cycles/hash
+Small key speed test - 6-byte keys - 353.12 cycles/hash
+Small key speed test - 7-byte keys - 352.16 cycles/hash
+Small key speed test - 8-byte keys - 347.18 cycles/hash
+Small key speed test - 9-byte keys - 352.79 cycles/hash
+Small key speed test - 10-byte keys - 353.09 cycles/hash
+Small key speed test - 11-byte keys - 352.76 cycles/hash
+Small key speed test - 12-byte keys - 352.86 cycles/hash
+Small key speed test - 13-byte keys - 353.16 cycles/hash
+Small key speed test - 14-byte keys - 352.95 cycles/hash
+Small key speed test - 15-byte keys - 353.27 cycles/hash
+Small key speed test - 16-byte keys - 352.62 cycles/hash
+Small key speed test - 17-byte keys - 352.69 cycles/hash
+Small key speed test - 18-byte keys - 352.67 cycles/hash
+Small key speed test - 19-byte keys - 352.81 cycles/hash
+Small key speed test - 20-byte keys - 352.78 cycles/hash
+Small key speed test - 21-byte keys - 358.23 cycles/hash
+Small key speed test - 22-byte keys - 358.08 cycles/hash
+Small key speed test - 23-byte keys - 358.34 cycles/hash
+Small key speed test - 24-byte keys - 359.10 cycles/hash
+Small key speed test - 25-byte keys - 359.16 cycles/hash
+Small key speed test - 26-byte keys - 358.98 cycles/hash
+Small key speed test - 27-byte keys - 359.02 cycles/hash
+Small key speed test - 28-byte keys - 358.96 cycles/hash
+Small key speed test - 29-byte keys - 359.10 cycles/hash
+Small key speed test - 30-byte keys - 359.27 cycles/hash
+Small key speed test - 31-byte keys - 354.04 cycles/hash
+Small key speed test - 32-byte keys - 355.77 cycles/hash
+Average 354.247 cycles/hash
+Average, weighted by key length freq. 353.982 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 352.567 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/crc32.txt b/doc/crc32.txt
index 7dc400e5..b76fac11 100644
--- a/doc/crc32.txt
+++ b/doc/crc32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x131aba4df34 - 0x131aba4dec8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.137 bytes/cycle - 392.12 MiB/sec @ 3 ghz
-Alignment 6 - 0.137 bytes/cycle - 392.07 MiB/sec @ 3 ghz
-Alignment 5 - 0.137 bytes/cycle - 392.12 MiB/sec @ 3 ghz
-Alignment 4 - 0.137 bytes/cycle - 392.08 MiB/sec @ 3 ghz
-Alignment 3 - 0.137 bytes/cycle - 392.12 MiB/sec @ 3 ghz
-Alignment 2 - 0.137 bytes/cycle - 392.07 MiB/sec @ 3 ghz
-Alignment 1 - 0.137 bytes/cycle - 392.12 MiB/sec @ 3 ghz
-Alignment 0 - 0.137 bytes/cycle - 392.08 MiB/sec @ 3 ghz
-Average - 0.137 bytes/cycle - 392.10 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 20.72 cycles/hash
-Small key speed test - 2-byte keys - 27.60 cycles/hash
-Small key speed test - 3-byte keys - 35.00 cycles/hash
-Small key speed test - 4-byte keys - 43.00 cycles/hash
-Small key speed test - 5-byte keys - 50.00 cycles/hash
-Small key speed test - 6-byte keys - 57.00 cycles/hash
-Small key speed test - 7-byte keys - 65.00 cycles/hash
-Small key speed test - 8-byte keys - 71.99 cycles/hash
-Small key speed test - 9-byte keys - 79.00 cycles/hash
-Small key speed test - 10-byte keys - 86.00 cycles/hash
-Small key speed test - 11-byte keys - 93.00 cycles/hash
-Small key speed test - 12-byte keys - 100.52 cycles/hash
-Small key speed test - 13-byte keys - 108.00 cycles/hash
-Small key speed test - 14-byte keys - 115.84 cycles/hash
-Small key speed test - 15-byte keys - 123.00 cycles/hash
-Small key speed test - 16-byte keys - 129.00 cycles/hash
-Small key speed test - 17-byte keys - 137.00 cycles/hash
-Small key speed test - 18-byte keys - 145.00 cycles/hash
-Small key speed test - 19-byte keys - 157.00 cycles/hash
-Small key speed test - 20-byte keys - 165.00 cycles/hash
-Small key speed test - 21-byte keys - 172.00 cycles/hash
-Small key speed test - 22-byte keys - 180.00 cycles/hash
-Small key speed test - 23-byte keys - 187.77 cycles/hash
-Small key speed test - 24-byte keys - 194.00 cycles/hash
-Small key speed test - 25-byte keys - 202.00 cycles/hash
-Small key speed test - 26-byte keys - 209.24 cycles/hash
-Small key speed test - 27-byte keys - 210.23 cycles/hash
-Small key speed test - 28-byte keys - 217.91 cycles/hash
-Small key speed test - 29-byte keys - 226.19 cycles/hash
-Small key speed test - 30-byte keys - 232.21 cycles/hash
-Small key speed test - 31-byte keys - 240.00 cycles/hash
-Average 131.620 cycles/hash
+Alignment 7 - 0.111 bytes/cycle - 318.19 MiB/sec @ 3 ghz
+Alignment 6 - 0.131 bytes/cycle - 373.94 MiB/sec @ 3 ghz
+Alignment 5 - 0.130 bytes/cycle - 370.91 MiB/sec @ 3 ghz
+Alignment 4 - 0.134 bytes/cycle - 382.08 MiB/sec @ 3 ghz
+Alignment 3 - 0.135 bytes/cycle - 386.63 MiB/sec @ 3 ghz
+Alignment 2 - 0.134 bytes/cycle - 383.33 MiB/sec @ 3 ghz
+Alignment 1 - 0.132 bytes/cycle - 378.05 MiB/sec @ 3 ghz
+Alignment 0 - 0.128 bytes/cycle - 365.91 MiB/sec @ 3 ghz
+Average - 0.129 bytes/cycle - 369.88 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 22.70 cycles/hash
+Small key speed test - 2-byte keys - 29.61 cycles/hash
+Small key speed test - 3-byte keys - 38.48 cycles/hash
+Small key speed test - 4-byte keys - 45.26 cycles/hash
+Small key speed test - 5-byte keys - 53.03 cycles/hash
+Small key speed test - 6-byte keys - 61.35 cycles/hash
+Small key speed test - 7-byte keys - 68.53 cycles/hash
+Small key speed test - 8-byte keys - 75.65 cycles/hash
+Small key speed test - 9-byte keys - 83.13 cycles/hash
+Small key speed test - 10-byte keys - 90.00 cycles/hash
+Small key speed test - 11-byte keys - 103.36 cycles/hash
+Small key speed test - 12-byte keys - 108.74 cycles/hash
+Small key speed test - 13-byte keys - 117.42 cycles/hash
+Small key speed test - 14-byte keys - 127.12 cycles/hash
+Small key speed test - 15-byte keys - 133.18 cycles/hash
+Small key speed test - 16-byte keys - 140.07 cycles/hash
+Small key speed test - 17-byte keys - 146.07 cycles/hash
+Small key speed test - 18-byte keys - 151.65 cycles/hash
+Small key speed test - 19-byte keys - 160.28 cycles/hash
+Small key speed test - 20-byte keys - 173.64 cycles/hash
+Small key speed test - 21-byte keys - 175.22 cycles/hash
+Small key speed test - 22-byte keys - 182.39 cycles/hash
+Small key speed test - 23-byte keys - 191.72 cycles/hash
+Small key speed test - 24-byte keys - 198.52 cycles/hash
+Small key speed test - 25-byte keys - 206.45 cycles/hash
+Small key speed test - 26-byte keys - 215.50 cycles/hash
+Small key speed test - 27-byte keys - 225.06 cycles/hash
+Small key speed test - 28-byte keys - 230.61 cycles/hash
+Small key speed test - 29-byte keys - 240.00 cycles/hash
+Small key speed test - 30-byte keys - 246.80 cycles/hash
+Small key speed test - 31-byte keys - 252.89 cycles/hash
+Small key speed test - 32-byte keys - 260.03 cycles/hash
+Average 142.327 cycles/hash
+Average, weighted by key length freq. 142.497 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 111.392 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/crc32_hw.txt b/doc/crc32_hw.txt
index 7c0b0e33..ed71a437 100644
--- a/doc/crc32_hw.txt
+++ b/doc/crc32_hw.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x13308c57fee8 - 0x13308c57fea0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.180 bytes/cycle - 6238.39 MiB/sec @ 3 ghz
-Alignment 6 - 2.184 bytes/cycle - 6247.14 MiB/sec @ 3 ghz
-Alignment 5 - 2.183 bytes/cycle - 6246.94 MiB/sec @ 3 ghz
-Alignment 4 - 2.183 bytes/cycle - 6246.73 MiB/sec @ 3 ghz
-Alignment 3 - 2.183 bytes/cycle - 6246.61 MiB/sec @ 3 ghz
-Alignment 2 - 2.183 bytes/cycle - 6246.60 MiB/sec @ 3 ghz
-Alignment 1 - 2.179 bytes/cycle - 6235.06 MiB/sec @ 3 ghz
-Alignment 0 - 2.184 bytes/cycle - 6247.54 MiB/sec @ 3 ghz
-Average - 2.183 bytes/cycle - 6244.38 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 26.78 cycles/hash
-Small key speed test - 2-byte keys - 29.48 cycles/hash
-Small key speed test - 3-byte keys - 32.96 cycles/hash
-Small key speed test - 4-byte keys - 32.88 cycles/hash
-Small key speed test - 5-byte keys - 37.43 cycles/hash
-Small key speed test - 6-byte keys - 38.22 cycles/hash
-Small key speed test - 7-byte keys - 40.34 cycles/hash
-Small key speed test - 8-byte keys - 32.98 cycles/hash
-Small key speed test - 9-byte keys - 37.29 cycles/hash
-Small key speed test - 10-byte keys - 37.94 cycles/hash
-Small key speed test - 11-byte keys - 41.93 cycles/hash
-Small key speed test - 12-byte keys - 34.98 cycles/hash
-Small key speed test - 13-byte keys - 41.15 cycles/hash
-Small key speed test - 14-byte keys - 41.53 cycles/hash
-Small key speed test - 15-byte keys - 44.02 cycles/hash
-Small key speed test - 16-byte keys - 39.28 cycles/hash
-Small key speed test - 17-byte keys - 43.58 cycles/hash
-Small key speed test - 18-byte keys - 43.97 cycles/hash
-Small key speed test - 19-byte keys - 46.26 cycles/hash
-Small key speed test - 20-byte keys - 38.96 cycles/hash
-Small key speed test - 21-byte keys - 44.33 cycles/hash
-Small key speed test - 22-byte keys - 44.83 cycles/hash
-Small key speed test - 23-byte keys - 48.73 cycles/hash
-Small key speed test - 24-byte keys - 42.37 cycles/hash
-Small key speed test - 25-byte keys - 47.05 cycles/hash
-Small key speed test - 26-byte keys - 47.53 cycles/hash
-Small key speed test - 27-byte keys - 49.05 cycles/hash
-Small key speed test - 28-byte keys - 43.00 cycles/hash
-Small key speed test - 29-byte keys - 47.98 cycles/hash
-Small key speed test - 30-byte keys - 48.87 cycles/hash
-Small key speed test - 31-byte keys - 52.45 cycles/hash
-Average 41.230 cycles/hash
+Alignment 7 - 2.188 bytes/cycle - 6261.33 MiB/sec @ 3 ghz
+Alignment 6 - 1.807 bytes/cycle - 5169.63 MiB/sec @ 3 ghz
+Alignment 5 - 1.769 bytes/cycle - 5062.08 MiB/sec @ 3 ghz
+Alignment 4 - 1.769 bytes/cycle - 5061.94 MiB/sec @ 3 ghz
+Alignment 3 - 1.769 bytes/cycle - 5061.68 MiB/sec @ 3 ghz
+Alignment 2 - 1.785 bytes/cycle - 5105.98 MiB/sec @ 3 ghz
+Alignment 1 - 2.202 bytes/cycle - 6300.93 MiB/sec @ 3 ghz
+Alignment 0 - 2.195 bytes/cycle - 6278.77 MiB/sec @ 3 ghz
+Average - 1.936 bytes/cycle - 5537.79 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 26.52 cycles/hash
+Small key speed test - 2-byte keys - 29.27 cycles/hash
+Small key speed test - 3-byte keys - 32.83 cycles/hash
+Small key speed test - 4-byte keys - 32.76 cycles/hash
+Small key speed test - 5-byte keys - 37.19 cycles/hash
+Small key speed test - 6-byte keys - 37.41 cycles/hash
+Small key speed test - 7-byte keys - 40.15 cycles/hash
+Small key speed test - 8-byte keys - 32.61 cycles/hash
+Small key speed test - 9-byte keys - 36.93 cycles/hash
+Small key speed test - 10-byte keys - 37.43 cycles/hash
+Small key speed test - 11-byte keys - 41.59 cycles/hash
+Small key speed test - 12-byte keys - 34.62 cycles/hash
+Small key speed test - 13-byte keys - 40.65 cycles/hash
+Small key speed test - 14-byte keys - 41.10 cycles/hash
+Small key speed test - 15-byte keys - 43.64 cycles/hash
+Small key speed test - 16-byte keys - 38.96 cycles/hash
+Small key speed test - 17-byte keys - 42.59 cycles/hash
+Small key speed test - 18-byte keys - 43.08 cycles/hash
+Small key speed test - 19-byte keys - 45.98 cycles/hash
+Small key speed test - 20-byte keys - 38.50 cycles/hash
+Small key speed test - 21-byte keys - 44.11 cycles/hash
+Small key speed test - 22-byte keys - 44.49 cycles/hash
+Small key speed test - 23-byte keys - 48.28 cycles/hash
+Small key speed test - 24-byte keys - 42.02 cycles/hash
+Small key speed test - 25-byte keys - 46.09 cycles/hash
+Small key speed test - 26-byte keys - 47.06 cycles/hash
+Small key speed test - 27-byte keys - 48.58 cycles/hash
+Small key speed test - 28-byte keys - 41.61 cycles/hash
+Small key speed test - 29-byte keys - 47.03 cycles/hash
+Small key speed test - 30-byte keys - 48.28 cycles/hash
+Small key speed test - 31-byte keys - 51.84 cycles/hash
+Small key speed test - 32-byte keys - 42.37 cycles/hash
+Average 40.799 cycles/hash
+Average, weighted by key length freq. 41.411 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 38.392 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/crc32_hw1.txt b/doc/crc32_hw1.txt
index 7944620d..724463ea 100644
--- a/doc/crc32_hw1.txt
+++ b/doc/crc32_hw1.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1343d7887fe4 - 0x1343d7887f78). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.650 bytes/cycle - 7580.95 MiB/sec @ 3 ghz
-Alignment 6 - 2.652 bytes/cycle - 7587.64 MiB/sec @ 3 ghz
-Alignment 5 - 2.646 bytes/cycle - 7570.42 MiB/sec @ 3 ghz
-Alignment 4 - 2.650 bytes/cycle - 7580.64 MiB/sec @ 3 ghz
-Alignment 3 - 2.650 bytes/cycle - 7581.03 MiB/sec @ 3 ghz
-Alignment 2 - 2.639 bytes/cycle - 7550.38 MiB/sec @ 3 ghz
-Alignment 1 - 2.637 bytes/cycle - 7545.67 MiB/sec @ 3 ghz
-Alignment 0 - 2.642 bytes/cycle - 7557.60 MiB/sec @ 3 ghz
-Average - 2.646 bytes/cycle - 7569.29 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 28.17 cycles/hash
-Small key speed test - 2-byte keys - 30.45 cycles/hash
-Small key speed test - 3-byte keys - 32.95 cycles/hash
-Small key speed test - 4-byte keys - 35.86 cycles/hash
-Small key speed test - 5-byte keys - 48.78 cycles/hash
-Small key speed test - 6-byte keys - 48.50 cycles/hash
-Small key speed test - 7-byte keys - 47.68 cycles/hash
-Small key speed test - 8-byte keys - 40.89 cycles/hash
-Small key speed test - 9-byte keys - 44.09 cycles/hash
-Small key speed test - 10-byte keys - 48.84 cycles/hash
-Small key speed test - 11-byte keys - 50.46 cycles/hash
-Small key speed test - 12-byte keys - 43.69 cycles/hash
-Small key speed test - 13-byte keys - 46.88 cycles/hash
-Small key speed test - 14-byte keys - 52.28 cycles/hash
-Small key speed test - 15-byte keys - 52.37 cycles/hash
-Small key speed test - 16-byte keys - 45.09 cycles/hash
-Small key speed test - 17-byte keys - 49.21 cycles/hash
-Small key speed test - 18-byte keys - 53.69 cycles/hash
-Small key speed test - 19-byte keys - 56.12 cycles/hash
-Small key speed test - 20-byte keys - 48.91 cycles/hash
-Small key speed test - 21-byte keys - 52.08 cycles/hash
-Small key speed test - 22-byte keys - 57.20 cycles/hash
-Small key speed test - 23-byte keys - 58.25 cycles/hash
-Small key speed test - 24-byte keys - 49.71 cycles/hash
-Small key speed test - 25-byte keys - 53.45 cycles/hash
-Small key speed test - 26-byte keys - 57.56 cycles/hash
-Small key speed test - 27-byte keys - 60.31 cycles/hash
-Small key speed test - 28-byte keys - 51.89 cycles/hash
-Small key speed test - 29-byte keys - 54.83 cycles/hash
-Small key speed test - 30-byte keys - 59.83 cycles/hash
-Small key speed test - 31-byte keys - 61.16 cycles/hash
-Average 49.071 cycles/hash
+Alignment 7 - 2.669 bytes/cycle - 7634.73 MiB/sec @ 3 ghz
+Alignment 6 - 2.668 bytes/cycle - 7634.50 MiB/sec @ 3 ghz
+Alignment 5 - 2.667 bytes/cycle - 7630.51 MiB/sec @ 3 ghz
+Alignment 4 - 2.666 bytes/cycle - 7626.28 MiB/sec @ 3 ghz
+Alignment 3 - 2.661 bytes/cycle - 7612.20 MiB/sec @ 3 ghz
+Alignment 2 - 2.662 bytes/cycle - 7616.15 MiB/sec @ 3 ghz
+Alignment 1 - 2.665 bytes/cycle - 7624.92 MiB/sec @ 3 ghz
+Alignment 0 - 2.667 bytes/cycle - 7630.04 MiB/sec @ 3 ghz
+Average - 2.666 bytes/cycle - 7626.17 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 28.65 cycles/hash
+Small key speed test - 2-byte keys - 30.46 cycles/hash
+Small key speed test - 3-byte keys - 34.12 cycles/hash
+Small key speed test - 4-byte keys - 36.99 cycles/hash
+Small key speed test - 5-byte keys - 41.72 cycles/hash
+Small key speed test - 6-byte keys - 43.90 cycles/hash
+Small key speed test - 7-byte keys - 47.40 cycles/hash
+Small key speed test - 8-byte keys - 40.18 cycles/hash
+Small key speed test - 9-byte keys - 43.74 cycles/hash
+Small key speed test - 10-byte keys - 48.66 cycles/hash
+Small key speed test - 11-byte keys - 50.23 cycles/hash
+Small key speed test - 12-byte keys - 43.39 cycles/hash
+Small key speed test - 13-byte keys - 47.03 cycles/hash
+Small key speed test - 14-byte keys - 51.88 cycles/hash
+Small key speed test - 15-byte keys - 51.94 cycles/hash
+Small key speed test - 16-byte keys - 44.76 cycles/hash
+Small key speed test - 17-byte keys - 48.46 cycles/hash
+Small key speed test - 18-byte keys - 65.00 cycles/hash
+Small key speed test - 19-byte keys - 68.62 cycles/hash
+Small key speed test - 20-byte keys - 60.60 cycles/hash
+Small key speed test - 21-byte keys - 62.72 cycles/hash
+Small key speed test - 22-byte keys - 66.59 cycles/hash
+Small key speed test - 23-byte keys - 56.17 cycles/hash
+Small key speed test - 24-byte keys - 48.47 cycles/hash
+Small key speed test - 25-byte keys - 53.00 cycles/hash
+Small key speed test - 26-byte keys - 56.97 cycles/hash
+Small key speed test - 27-byte keys - 60.01 cycles/hash
+Small key speed test - 28-byte keys - 52.05 cycles/hash
+Small key speed test - 29-byte keys - 53.61 cycles/hash
+Small key speed test - 30-byte keys - 58.99 cycles/hash
+Small key speed test - 31-byte keys - 58.95 cycles/hash
+Small key speed test - 32-byte keys - 51.30 cycles/hash
+Average 50.206 cycles/hash
+Average, weighted by key length freq. 52.507 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 45.432 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/crc32_pclmul.txt b/doc/crc32_pclmul.txt
index 6910b823..1b7294dd 100644
--- a/doc/crc32_pclmul.txt
+++ b/doc/crc32_pclmul.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x134e82784df8 - 0x134e82784d8c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.767 bytes/cycle - 7915.39 MiB/sec @ 3 ghz
-Alignment 6 - 2.723 bytes/cycle - 7791.36 MiB/sec @ 3 ghz
-Alignment 5 - 2.714 bytes/cycle - 7765.22 MiB/sec @ 3 ghz
-Alignment 4 - 2.695 bytes/cycle - 7711.13 MiB/sec @ 3 ghz
-Alignment 3 - 2.755 bytes/cycle - 7883.33 MiB/sec @ 3 ghz
-Alignment 2 - 2.760 bytes/cycle - 7897.43 MiB/sec @ 3 ghz
-Alignment 1 - 2.721 bytes/cycle - 7783.42 MiB/sec @ 3 ghz
-Alignment 0 - 4.361 bytes/cycle - 12477.43 MiB/sec @ 3 ghz
-Average - 2.937 bytes/cycle - 8403.09 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 101.58 cycles/hash
-Small key speed test - 2-byte keys - 103.38 cycles/hash
-Small key speed test - 3-byte keys - 103.06 cycles/hash
-Small key speed test - 4-byte keys - 106.60 cycles/hash
-Small key speed test - 5-byte keys - 103.24 cycles/hash
-Small key speed test - 6-byte keys - 103.26 cycles/hash
-Small key speed test - 7-byte keys - 103.04 cycles/hash
-Small key speed test - 8-byte keys - 108.52 cycles/hash
-Small key speed test - 9-byte keys - 102.78 cycles/hash
-Small key speed test - 10-byte keys - 102.86 cycles/hash
-Small key speed test - 11-byte keys - 103.61 cycles/hash
-Small key speed test - 12-byte keys - 105.06 cycles/hash
-Small key speed test - 13-byte keys - 105.33 cycles/hash
-Small key speed test - 14-byte keys - 105.38 cycles/hash
-Small key speed test - 15-byte keys - 105.34 cycles/hash
-Small key speed test - 16-byte keys - 100.97 cycles/hash
-Small key speed test - 17-byte keys - 106.82 cycles/hash
-Small key speed test - 18-byte keys - 106.74 cycles/hash
-Small key speed test - 19-byte keys - 107.08 cycles/hash
-Small key speed test - 20-byte keys - 106.75 cycles/hash
-Small key speed test - 21-byte keys - 107.18 cycles/hash
-Small key speed test - 22-byte keys - 106.96 cycles/hash
-Small key speed test - 23-byte keys - 106.82 cycles/hash
-Small key speed test - 24-byte keys - 106.76 cycles/hash
-Small key speed test - 25-byte keys - 106.89 cycles/hash
-Small key speed test - 26-byte keys - 106.85 cycles/hash
-Small key speed test - 27-byte keys - 106.83 cycles/hash
-Small key speed test - 28-byte keys - 107.00 cycles/hash
-Small key speed test - 29-byte keys - 107.13 cycles/hash
-Small key speed test - 30-byte keys - 107.11 cycles/hash
-Small key speed test - 31-byte keys - 107.03 cycles/hash
-Average 105.419 cycles/hash
+Alignment 7 - 2.330 bytes/cycle - 6666.15 MiB/sec @ 3 ghz
+Alignment 6 - 2.311 bytes/cycle - 6612.02 MiB/sec @ 3 ghz
+Alignment 5 - 2.668 bytes/cycle - 7633.50 MiB/sec @ 3 ghz
+Alignment 4 - 2.674 bytes/cycle - 7649.15 MiB/sec @ 3 ghz
+Alignment 3 - 2.701 bytes/cycle - 7726.54 MiB/sec @ 3 ghz
+Alignment 2 - 2.673 bytes/cycle - 7647.96 MiB/sec @ 3 ghz
+Alignment 1 - 2.711 bytes/cycle - 7756.34 MiB/sec @ 3 ghz
+Alignment 0 - 4.199 bytes/cycle - 12013.98 MiB/sec @ 3 ghz
+Average - 2.783 bytes/cycle - 7963.20 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 101.97 cycles/hash
+Small key speed test - 2-byte keys - 105.35 cycles/hash
+Small key speed test - 3-byte keys - 105.31 cycles/hash
+Small key speed test - 4-byte keys - 105.37 cycles/hash
+Small key speed test - 5-byte keys - 105.41 cycles/hash
+Small key speed test - 6-byte keys - 105.44 cycles/hash
+Small key speed test - 7-byte keys - 105.42 cycles/hash
+Small key speed test - 8-byte keys - 105.41 cycles/hash
+Small key speed test - 9-byte keys - 105.37 cycles/hash
+Small key speed test - 10-byte keys - 105.40 cycles/hash
+Small key speed test - 11-byte keys - 105.40 cycles/hash
+Small key speed test - 12-byte keys - 105.36 cycles/hash
+Small key speed test - 13-byte keys - 105.36 cycles/hash
+Small key speed test - 14-byte keys - 105.36 cycles/hash
+Small key speed test - 15-byte keys - 105.38 cycles/hash
+Small key speed test - 16-byte keys - 100.19 cycles/hash
+Small key speed test - 17-byte keys - 107.46 cycles/hash
+Small key speed test - 18-byte keys - 107.49 cycles/hash
+Small key speed test - 19-byte keys - 107.45 cycles/hash
+Small key speed test - 20-byte keys - 107.47 cycles/hash
+Small key speed test - 21-byte keys - 107.47 cycles/hash
+Small key speed test - 22-byte keys - 107.46 cycles/hash
+Small key speed test - 23-byte keys - 107.50 cycles/hash
+Small key speed test - 24-byte keys - 107.49 cycles/hash
+Small key speed test - 25-byte keys - 107.47 cycles/hash
+Small key speed test - 26-byte keys - 107.56 cycles/hash
+Small key speed test - 27-byte keys - 107.71 cycles/hash
+Small key speed test - 28-byte keys - 107.49 cycles/hash
+Small key speed test - 29-byte keys - 107.90 cycles/hash
+Small key speed test - 30-byte keys - 107.82 cycles/hash
+Small key speed test - 31-byte keys - 107.86 cycles/hash
+Small key speed test - 32-byte keys - 101.62 cycles/hash
+Average 106.023 cycles/hash
+Average, weighted by key length freq. 105.908 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 103.388 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/crc64_hw.txt b/doc/crc64_hw.txt
index d3b49719..49d4397c 100644
--- a/doc/crc64_hw.txt
+++ b/doc/crc64_hw.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x133a2f229f40 - 0x133a2f229ed4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.147 bytes/cycle - 6142.46 MiB/sec @ 3 ghz
-Alignment 6 - 2.147 bytes/cycle - 6142.72 MiB/sec @ 3 ghz
-Alignment 5 - 2.149 bytes/cycle - 6148.58 MiB/sec @ 3 ghz
-Alignment 4 - 2.146 bytes/cycle - 6138.69 MiB/sec @ 3 ghz
-Alignment 3 - 2.148 bytes/cycle - 6144.82 MiB/sec @ 3 ghz
-Alignment 2 - 2.148 bytes/cycle - 6144.84 MiB/sec @ 3 ghz
-Alignment 1 - 2.148 bytes/cycle - 6144.20 MiB/sec @ 3 ghz
-Alignment 0 - 2.147 bytes/cycle - 6142.70 MiB/sec @ 3 ghz
-Average - 2.147 bytes/cycle - 6143.62 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 26.82 cycles/hash
-Small key speed test - 2-byte keys - 27.90 cycles/hash
-Small key speed test - 3-byte keys - 31.04 cycles/hash
-Small key speed test - 4-byte keys - 31.85 cycles/hash
-Small key speed test - 5-byte keys - 34.25 cycles/hash
-Small key speed test - 6-byte keys - 33.59 cycles/hash
-Small key speed test - 7-byte keys - 41.29 cycles/hash
-Small key speed test - 8-byte keys - 33.29 cycles/hash
-Small key speed test - 9-byte keys - 38.81 cycles/hash
-Small key speed test - 10-byte keys - 37.27 cycles/hash
-Small key speed test - 11-byte keys - 43.06 cycles/hash
-Small key speed test - 12-byte keys - 35.34 cycles/hash
-Small key speed test - 13-byte keys - 42.43 cycles/hash
-Small key speed test - 14-byte keys - 41.84 cycles/hash
-Small key speed test - 15-byte keys - 44.17 cycles/hash
-Small key speed test - 16-byte keys - 38.85 cycles/hash
-Small key speed test - 17-byte keys - 44.42 cycles/hash
-Small key speed test - 18-byte keys - 43.84 cycles/hash
-Small key speed test - 19-byte keys - 43.93 cycles/hash
+Alignment 7 - 1.769 bytes/cycle - 5062.20 MiB/sec @ 3 ghz
+Alignment 6 - 1.769 bytes/cycle - 5062.23 MiB/sec @ 3 ghz
+Alignment 5 - 1.769 bytes/cycle - 5061.95 MiB/sec @ 3 ghz
+Alignment 4 - 1.769 bytes/cycle - 5061.86 MiB/sec @ 3 ghz
+Alignment 3 - 2.136 bytes/cycle - 6112.39 MiB/sec @ 3 ghz
+Alignment 2 - 2.130 bytes/cycle - 6092.73 MiB/sec @ 3 ghz
+Alignment 1 - 2.128 bytes/cycle - 6089.39 MiB/sec @ 3 ghz
+Alignment 0 - 2.129 bytes/cycle - 6090.61 MiB/sec @ 3 ghz
+Average - 1.950 bytes/cycle - 5579.17 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 27.02 cycles/hash
+Small key speed test - 2-byte keys - 28.23 cycles/hash
+Small key speed test - 3-byte keys - 31.39 cycles/hash
+Small key speed test - 4-byte keys - 32.25 cycles/hash
+Small key speed test - 5-byte keys - 34.74 cycles/hash
+Small key speed test - 6-byte keys - 34.00 cycles/hash
+Small key speed test - 7-byte keys - 41.26 cycles/hash
+Small key speed test - 8-byte keys - 33.69 cycles/hash
+Small key speed test - 9-byte keys - 39.24 cycles/hash
+Small key speed test - 10-byte keys - 37.57 cycles/hash
+Small key speed test - 11-byte keys - 43.55 cycles/hash
+Small key speed test - 12-byte keys - 35.49 cycles/hash
+Small key speed test - 13-byte keys - 42.76 cycles/hash
+Small key speed test - 14-byte keys - 42.02 cycles/hash
+Small key speed test - 15-byte keys - 44.43 cycles/hash
+Small key speed test - 16-byte keys - 39.09 cycles/hash
+Small key speed test - 17-byte keys - 44.71 cycles/hash
+Small key speed test - 18-byte keys - 44.12 cycles/hash
+Small key speed test - 19-byte keys - 44.34 cycles/hash
Small key speed test - 20-byte keys - 39.60 cycles/hash
-Small key speed test - 21-byte keys - 45.36 cycles/hash
-Small key speed test - 22-byte keys - 44.39 cycles/hash
-Small key speed test - 23-byte keys - 45.57 cycles/hash
-Small key speed test - 24-byte keys - 39.42 cycles/hash
-Small key speed test - 25-byte keys - 43.95 cycles/hash
-Small key speed test - 26-byte keys - 45.87 cycles/hash
-Small key speed test - 27-byte keys - 48.83 cycles/hash
-Small key speed test - 28-byte keys - 42.15 cycles/hash
-Small key speed test - 29-byte keys - 49.36 cycles/hash
-Small key speed test - 30-byte keys - 44.22 cycles/hash
-Small key speed test - 31-byte keys - 52.32 cycles/hash
-Average 40.485 cycles/hash
+Small key speed test - 21-byte keys - 45.38 cycles/hash
+Small key speed test - 22-byte keys - 44.68 cycles/hash
+Small key speed test - 23-byte keys - 45.93 cycles/hash
+Small key speed test - 24-byte keys - 39.73 cycles/hash
+Small key speed test - 25-byte keys - 44.13 cycles/hash
+Small key speed test - 26-byte keys - 46.41 cycles/hash
+Small key speed test - 27-byte keys - 49.38 cycles/hash
+Small key speed test - 28-byte keys - 42.48 cycles/hash
+Small key speed test - 29-byte keys - 49.65 cycles/hash
+Small key speed test - 30-byte keys - 44.62 cycles/hash
+Small key speed test - 31-byte keys - 52.66 cycles/hash
+Small key speed test - 32-byte keys - 43.25 cycles/hash
+Average 40.868 cycles/hash
+Average, weighted by key length freq. 42.067 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 39.267 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/crc64_jones.txt b/doc/crc64_jones.txt
new file mode 100644
index 00000000..a6a45ad2
--- /dev/null
+++ b/doc/crc64_jones.txt
@@ -0,0 +1,2079 @@
+-------------------------------------------------------------------------------
+--- Testing crc64_jones "crc64, jones polynomial, auto 1-3 pipelines depending on length, joined at the end" POOR
+
+[[[ Sanity Tests ]]]
+
+Verification value 0x7DC1B496 ....... PASS
+Running sanity check 1 .......... PASS
+Running AppendedZeroesTest .......... PASS
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 72 (0x48) ticks (0x8c2624041924 - 0x8c26240418dc). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 1.200 bytes/cycle - 3434.45 MiB/sec @ 3 ghz
+Alignment 6 - 1.200 bytes/cycle - 3434.18 MiB/sec @ 3 ghz
+Alignment 5 - 1.205 bytes/cycle - 3448.88 MiB/sec @ 3 ghz
+Alignment 4 - 1.192 bytes/cycle - 3410.18 MiB/sec @ 3 ghz
+Alignment 3 - 1.191 bytes/cycle - 3406.16 MiB/sec @ 3 ghz
+Alignment 2 - 1.205 bytes/cycle - 3447.96 MiB/sec @ 3 ghz
+Alignment 1 - 1.203 bytes/cycle - 3441.02 MiB/sec @ 3 ghz
+Alignment 0 - 1.201 bytes/cycle - 3434.73 MiB/sec @ 3 ghz
+Average - 1.200 bytes/cycle - 3432.19 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 34.31 cycles/hash
+Small key speed test - 2-byte keys - 39.49 cycles/hash
+Small key speed test - 3-byte keys - 46.78 cycles/hash
+Small key speed test - 4-byte keys - 53.75 cycles/hash
+Small key speed test - 5-byte keys - 61.84 cycles/hash
+Small key speed test - 6-byte keys - 68.75 cycles/hash
+Small key speed test - 7-byte keys - 76.20 cycles/hash
+Small key speed test - 8-byte keys - 60.65 cycles/hash
+Small key speed test - 9-byte keys - 68.51 cycles/hash
+Small key speed test - 10-byte keys - 75.66 cycles/hash
+Small key speed test - 11-byte keys - 83.02 cycles/hash
+Small key speed test - 12-byte keys - 68.02 cycles/hash
+Small key speed test - 13-byte keys - 75.65 cycles/hash
+Small key speed test - 14-byte keys - 83.00 cycles/hash
+Small key speed test - 15-byte keys - 90.60 cycles/hash
+Small key speed test - 16-byte keys - 74.37 cycles/hash
+Small key speed test - 17-byte keys - 82.19 cycles/hash
+Small key speed test - 18-byte keys - 89.84 cycles/hash
+Small key speed test - 19-byte keys - 96.94 cycles/hash
+Small key speed test - 20-byte keys - 81.58 cycles/hash
+Small key speed test - 21-byte keys - 89.50 cycles/hash
+Small key speed test - 22-byte keys - 96.53 cycles/hash
+Small key speed test - 23-byte keys - 104.18 cycles/hash
+Small key speed test - 24-byte keys - 88.78 cycles/hash
+Small key speed test - 25-byte keys - 96.10 cycles/hash
+Small key speed test - 26-byte keys - 103.36 cycles/hash
+Small key speed test - 27-byte keys - 111.28 cycles/hash
+Small key speed test - 28-byte keys - 96.28 cycles/hash
+Small key speed test - 29-byte keys - 103.25 cycles/hash
+Small key speed test - 30-byte keys - 110.80 cycles/hash
+Small key speed test - 31-byte keys - 117.61 cycles/hash
+Small key speed test - 32-byte keys - 102.50 cycles/hash
+Average 82.228 cycles/hash
+Average, weighted by key length freq. 84.208 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 73.442 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 465.363 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 372.192 cycles/op (9.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 310.430 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 265.677 cycles/op (1.3 stdv) ....... PASS
+
+[[[ Avalanche Tests ]]]
+
+Testing 24-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 32-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 40-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 48-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 56-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 64-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 72-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 80-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 96-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 112-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 128-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 160-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 512-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+Testing 1024-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
+*********FAIL*********
+
+[[[ Keyset 'Sparse' Tests ]]]
+
+Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 0.3, actual 0 (0.00x)
+Testing collisions (high 19-25 bits) - Worst is 0 bits: 0/ 1 (0.00x)
+Testing collisions (low 32-bit) - Expected 0.3, actual 0 (0.00x)
+Testing collisions (low 19-25 bits) - Worst is 25 bits: 19702/38 (515.80x) !!!!!
+Testing distribution - Worst bias is the 13-bit window at bit 0 - 87.512% !!!!!
+
+Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 188.2, actual 0 (0.00x)
+Testing collisions (high 24-35 bits) - Worst is 0 bits: 0/ 1 (0.00x)
+Testing collisions (low 32-bit) - Expected 188.2, actual 0 (0.00x)
+Testing collisions (low 24-35 bits) - Worst is 24 bits: 353795/46996 (7.53x) !!!!!
+Testing distribution - Worst bias is the 17-bit window at bit 0 - 89.254% !!!!!
+
+Keyset 'Sparse' - 32-bit keys with up to 7 bits set - 4514873 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 2372.2, actual 0 (0.00x)
+Testing collisions (high 25-38 bits) - Worst is 25 bits: 225634/290569 (0.78x)
+Testing collisions (low 32-bit) - Expected 2372.2, actual 1716 (0.72x)
+Testing collisions (low 25-38 bits) - Worst is 29 bits: 32949/18931 (1.74x)
+Testing distribution - Worst bias is the 19-bit window at bit 63 - 48.502% !!!!!
+
+Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 2460.8, actual 2770 (1.13x) (310)
+Testing collisions (high 25-38 bits) - Worst is 25 bits: 471339/301185 (1.56x)
+Testing collisions (low 32-bit) - Expected 2460.8, actual 4578 (1.86x) (2118)
+Testing collisions (low 25-38 bits) - Worst is 29 bits: 62236/19637 (3.17x) !!!!!
+Testing distribution - Worst bias is the 19-bit window at bit 55 - 26.366% !!!!!
+
+Keyset 'Sparse' - 48-bit keys with up to 6 bits set - 14196869 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 23437.8, actual 86718 (3.70x) (63281) !!!!!
+Testing collisions (high 27-42 bits) - Worst is 32 bits: 86718/23437 (3.70x) !!!!!
+Testing collisions (low 32-bit) - Expected 23437.8, actual 10206 (0.44x)
+Testing collisions (low 27-42 bits) - Worst is 28 bits: 439497/368886 (1.19x)
+Testing distribution - Worst bias is the 20-bit window at bit 49 - 8.182% !!!!!
+
+Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 2069.0, actual 4550 (2.20x) (2482) !!!!!
+Testing collisions (high 25-38 bits) - Worst is 31 bits: 9100/4136 (2.20x) !!!!!
+Testing collisions (low 32-bit) - Expected 2069.0, actual 1008 (0.49x)
+Testing collisions (low 25-38 bits) - Worst is 31 bits: 6188/4136 (1.50x)
+Testing distribution - Worst bias is the 19-bit window at bit 60 - 4.589% !!!!!
+
+Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 8021.7, actual 10388 (1.29x) (2367)
+Testing collisions (high 26-40 bits) - Worst is 32 bits: 10388/8021 (1.29x)
+Testing collisions (low 32-bit) - Expected 8021.7, actual 6460 (0.81x)
+Testing collisions (low 26-40 bits) - Worst is 27 bits: 298840/251643 (1.19x)
+Testing distribution - Worst bias is the 20-bit window at bit 50 - 2.290% !!!!!
+
+Keyset 'Sparse' - 72-bit keys with up to 5 bits set - 15082603 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 26451.8, actual 21148 (0.80x)
+Testing collisions (high 27-42 bits) - Worst is 27 bits: 797203/816575 (0.98x)
+Testing collisions (low 32-bit) - Expected 26451.8, actual 34232 (1.29x) (7781)
+Testing collisions (low 27-42 bits) - Worst is 35 bits: 6174/3309 (1.87x)
+Testing distribution - Worst bias is the 20-bit window at bit 24 - 1.509% !!!!!
+
+Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 1401.0, actual 1435 (1.02x) (35)
+Testing collisions (high 25-38 bits) - Worst is 38 bits: 70/21 (3.20x) !!!!!
+Testing collisions (low 32-bit) - Expected 1401.0, actual 840 (0.60x)
+Testing collisions (low 25-38 bits) - Worst is 27 bits: 50326/44458 (1.13x)
+Testing distribution - Worst bias is the 19-bit window at bit 29 - 2.053% !!!!!
+
+Keyset 'Sparse' - 160-bit keys with up to 4 bits set - 26977161 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 84546.1, actual 82294 (0.97x)
+Testing collisions (high 28-44 bits) - Worst is 43 bits: 105/41 (2.54x) !!!!!
+Testing collisions (low 32-bit) - Expected 84546.1, actual 92626 (1.10x) (8080)
+Testing collisions (low 28-44 bits) - Worst is 43 bits: 140/41 (3.38x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 37 - 0.407%
+
+Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 910.2, actual 1110 (1.22x) (200)
+Testing collisions (high 25-37 bits) - Worst is 33 bits: 610/455 (1.34x)
+Testing collisions (low 32-bit) - Expected 910.2, actual 1279 (1.41x) (369)
+Testing collisions (low 25-37 bits) - Worst is 37 bits: 70/28 (2.46x) !!!!!
+Testing distribution - Worst bias is the 17-bit window at bit 45 - 0.363%
+
+Keyset 'Sparse' - 512-bit keys with up to 3 bits set - 22370049 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 58155.4, actual 58555 (1.01x) (400)
+Testing collisions (high 28-43 bits) - Worst is 43 bits: 80/28 (2.81x) !!!!!
+Testing collisions (low 32-bit) - Expected 58155.4, actual 58907 (1.01x) (752)
+Testing collisions (low 28-43 bits) - Worst is 42 bits: 90/56 (1.58x)
+Testing distribution - Worst bias is the 20-bit window at bit 42 - 0.108%
+
+Keyset 'Sparse' - 1024-bit keys with up to 2 bits set - 524801 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 32.1, actual 3 (0.09x)
+Testing collisions (high 22-32 bits) - Worst is 22 bits: 31328/31504 (0.99x)
+Testing collisions (low 32-bit) - Expected 32.1, actual 3 (0.09x)
+Testing collisions (low 22-32 bits) - Worst is 22 bits: 31137/31504 (0.99x)
+Testing distribution - Worst bias is the 16-bit window at bit 31 - 0.592%
+
+Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 512.4, actual 513 (1.00x) (1)
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 51/32 (1.59x)
+Testing collisions (low 32-bit) - Expected 512.4, actual 570 (1.11x) (58)
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 60/32 (1.87x)
+Testing distribution - Worst bias is the 18-bit window at bit 29 - 0.264%
+
+*********FAIL*********
+
+[[[ Keyset 'Permutation' Tests ]]]
+
+Combination Lowbits Tests:
+Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 299592 (1924140646392.73x) (299592) !!!!!
+Testing collisions (high 32-bit) - Expected 668.6, actual 299592 (448.08x) (298924) !!!!!
+Testing collisions (high 24-37 bits) - Worst is 37 bits: 299592/20 (14336.05x) !!!!!
+Testing collisions (low 32-bit) - Expected 668.6, actual 299592 (448.08x) (298924) !!!!!
+Testing collisions (low 24-37 bits) - Worst is 37 bits: 299592/20 (14336.05x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 33 - 74.318% !!!!!
+
+*********FAIL*********
+
+Combination Highbits Tests
+Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 299592 (1924140646392.73x) (299592) !!!!!
+Testing collisions (high 32-bit) - Expected 668.6, actual 299592 (448.08x) (298924) !!!!!
+Testing collisions (high 24-37 bits) - Worst is 37 bits: 299592/20 (14336.05x) !!!!!
+Testing collisions (low 32-bit) - Expected 668.6, actual 299592 (448.08x) (298924) !!!!!
+Testing collisions (low 24-37 bits) - Worst is 37 bits: 299592/20 (14336.05x) !!!!!
+Testing distribution - Worst bias is the 16-bit window at bit 59 - 50.100% !!!!!
+
+*********FAIL*********
+
+Combination Hi-Lo Tests:
+Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 813615 (201533487953.56x) (813615) !!!!!
+Testing collisions (high 32-bit) - Expected 17322.9, actual 822958 (47.51x) (805636) !!!!!
+Testing collisions (high 27-41 bits) - Worst is 41 bits: 813615/33 (24024.71x) !!!!!
+Testing collisions (low 32-bit) - Expected 17322.9, actual 817759 (47.21x) (800437) !!!!!
+Testing collisions (low 27-41 bits) - Worst is 41 bits: 813615/33 (24024.71x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 36 - 6.110% !!!!!
+
+*********FAIL*********
+
+Combination 0x80000000 Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 38 - 58.033% !!!!!
+
+*********FAIL*********
+
+Combination 0x00000001 Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 47 - 74.395% !!!!!
+
+*********FAIL*********
+
+Combination 0x8000000000000000 Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 1 - 74.666% !!!!!
+
+*********FAIL*********
+
+Combination 0x0000000000000001 Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 19-bit window at bit 37 - 74.784% !!!!!
+
+*********FAIL*********
+
+Combination 16-bytes [0-1] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 56 - 50.698% !!!!!
+
+*********FAIL*********
+
+Combination 16-bytes [0-last] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 19-bit window at bit 34 - 51.902% !!!!!
+
+*********FAIL*********
+
+Combination 32-bytes [0-1] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 31 - 63.227% !!!!!
+
+*********FAIL*********
+
+Combination 32-bytes [0-last] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 37 - 74.245% !!!!!
+
+*********FAIL*********
+
+Combination 64-bytes [0-1] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 56 - 58.340% !!!!!
+
+*********FAIL*********
+
+Combination 64-bytes [0-last] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 19-bit window at bit 52 - 52.995% !!!!!
+
+*********FAIL*********
+
+Combination 128-bytes [0-1] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 19-bit window at bit 14 - 51.561% !!!!!
+
+*********FAIL*********
+
+Combination 128-bytes [0-last] Tests:
+Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 4194302 (2199023517695.97x) (4194302) !!!!!
+Testing collisions (high 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (high 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing collisions (low 32-bit) - Expected 8186.7, actual 4194302 (512.33x) (4186116) !!!!!
+Testing collisions (low 26-40 bits) - Worst is 40 bits: 4194302/31 (131072.35x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 45 - 50.195% !!!!!
+
+*********FAIL*********
+
+[[[ Keyset 'Window' Tests ]]]
+
+Keyset 'Window' - 32-bit key, 25-bit window - 32 tests, 33554432 keys per test
+Window at 0 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 1 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 2 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 3 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 4 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 5 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 6 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 7 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 8 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 9 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 10 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 11 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 12 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 13 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 14 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 15 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 16 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 17 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 18 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 19 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 20 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 21 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 22 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 23 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 24 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 25 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 26 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 27 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 28 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 29 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 30 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 31 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Window at 32 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+
+[[[ Keyset 'Cyclic' Tests ]]]
+
+Keyset 'Cyclic' - 8 cycles of 8 bytes - 1000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 116.4, actual 103 (0.88x)
+Testing collisions (high 23-34 bits) - Worst is 24 bits: 29243/29218 (1.00x)
+Testing collisions (low 32-bit) - Expected 116.4, actual 120 (1.03x) (4)
+Testing collisions (low 23-34 bits) - Worst is 33 bits: 70/58 (1.20x)
+Testing distribution - Worst bias is the 17-bit window at bit 23 - 0.109%
+
+Keyset 'Cyclic' - 8 cycles of 9 bytes - 1000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 116.4, actual 120 (1.03x) (4)
+Testing collisions (high 23-34 bits) - Worst is 33 bits: 66/58 (1.13x)
+Testing collisions (low 32-bit) - Expected 116.4, actual 118 (1.01x) (2)
+Testing collisions (low 23-34 bits) - Worst is 30 bits: 492/465 (1.06x)
+Testing distribution - Worst bias is the 17-bit window at bit 52 - 0.085%
+
+Keyset 'Cyclic' - 8 cycles of 10 bytes - 1000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 116.4, actual 98 (0.84x)
+Testing collisions (high 23-34 bits) - Worst is 27 bits: 3766/3716 (1.01x)
+Testing collisions (low 32-bit) - Expected 116.4, actual 106 (0.91x)
+Testing collisions (low 23-34 bits) - Worst is 30 bits: 472/465 (1.01x)
+Testing distribution - Worst bias is the 17-bit window at bit 23 - 0.079%
+
+Keyset 'Cyclic' - 8 cycles of 11 bytes - 1000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 116.4, actual 115 (0.99x) (-1)
+Testing collisions (high 23-34 bits) - Worst is 25 bits: 15081/14754 (1.02x)
+Testing collisions (low 32-bit) - Expected 116.4, actual 120 (1.03x) (4)
+Testing collisions (low 23-34 bits) - Worst is 33 bits: 62/58 (1.07x)
+Testing distribution - Worst bias is the 17-bit window at bit 39 - 0.142%
+
+Keyset 'Cyclic' - 8 cycles of 12 bytes - 1000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 116.4, actual 98 (0.84x)
+Testing collisions (high 23-34 bits) - Worst is 26 bits: 7435/7413 (1.00x)
+Testing collisions (low 32-bit) - Expected 116.4, actual 105 (0.90x)
+Testing collisions (low 23-34 bits) - Worst is 26 bits: 7475/7413 (1.01x)
+Testing distribution - Worst bias is the 17-bit window at bit 8 - 0.094%
+
+Keyset 'Cyclic' - 8 cycles of 16 bytes - 1000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 116.4, actual 117 (1.01x) (1)
+Testing collisions (high 23-34 bits) - Worst is 34 bits: 34/29 (1.17x)
+Testing collisions (low 32-bit) - Expected 116.4, actual 120 (1.03x) (4)
+Testing collisions (low 23-34 bits) - Worst is 32 bits: 120/116 (1.03x)
+Testing distribution - Worst bias is the 16-bit window at bit 7 - 0.114%
+
+
+[[[ Keyset 'TwoBytes' Tests ]]]
+
+Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 261375 (22646103971038.65x) (261375) !!!!!
+Testing collisions (high 32-bit) - Expected 49.6, actual 261375 (5272.97x) (261326) !!!!!
+Testing collisions (high 23-33 bits) - Worst is 33 bits: 261375/24 (10545.68x) !!!!!
+Testing collisions (low 32-bit) - Expected 49.6, actual 261378 (5273.03x) (261329) !!!!!
+Testing collisions (low 23-33 bits) - Worst is 33 bits: 261378/24 (10545.80x) !!!!!
+Testing distribution - Worst bias is the 16-bit window at bit 0 - 87.354% !!!!!
+
+Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 3648285 (4496774986619.34x) (3648285) !!!!!
+Testing collisions (high 32-bit) - Expected 3483.1, actual 3650943 (1048.19x) (3647460) !!!!!
+Testing collisions (high 26-39 bits) - Worst is 39 bits: 3648306/27 (134015.55x) !!!!!
+Testing collisions (low 32-bit) - Expected 3483.1, actual 3648528 (1047.50x) (3645045) !!!!!
+Testing collisions (low 26-39 bits) - Worst is 39 bits: 3648285/27 (134014.78x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 0 - 88.627% !!!!!
+
+Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 14322075 (1524566310736.38x) (14322075) !!!!!
+Testing collisions (high 32-bit) - Expected 40289.5, actual 14326031 (355.58x) (14285742) !!!!!
+Testing collisions (high 27-42 bits) - Worst is 42 bits: 14322075/39 (363485.45x) !!!!!
+Testing collisions (low 32-bit) - Expected 40289.5, actual 14324456 (355.54x) (14284167) !!!!!
+Testing collisions (low 27-42 bits) - Worst is 42 bits: 14322075/39 (363485.45x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 0 - 64.751% !!!!!
+
+Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 36444345 (686634081469.61x) (36444345) !!!!!
+Testing collisions (high 32-bit) - Expected 227182.3, actual 36453640 (160.46x) (36226458) !!!!!
+Testing collisions (high 29-45 bits) - Worst is 45 bits: 36444345/27 (1309651.13x) !!!!!
+Testing collisions (low 32-bit) - Expected 227182.3, actual 36451340 (160.45x) (36224158) !!!!!
+Testing collisions (low 29-45 bits) - Worst is 45 bits: 36444345/27 (1309651.13x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 0 - 40.372% !!!!!
+
+Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 74176695 (365441696655.85x) (74176695) !!!!!
+Testing collisions (high 32-bit) - Expected 865959.1, actual 74196456 (85.68x) (73330497) !!!!!
+Testing collisions (high 30-47 bits) - Worst is 47 bits: 74176695/26 (2788099.45x) !!!!!
+Testing collisions (low 32-bit) - Expected 865959.1, actual 74193744 (85.68x) (73327785) !!!!!
+Testing collisions (low 30-47 bits) - Worst is 47 bits: 74176695/26 (2788099.45x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 0 - 24.319% !!!!!
+
+*********FAIL*********
+
+[[[ Keyset 'Text' Tests ]]]
+
+Keyset 'Text' - keys of form "FooXXXXBar" - 14776336 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 25389.0, actual 0 (0.00x)
+Testing collisions (high 27-42 bits) - Worst is 29 bits: 940540/201492 (4.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 25389.0, actual 88000 (3.47x) (62611) !!!!!
+Testing collisions (low 27-42 bits) - Worst is 32 bits: 88000/25389 (3.47x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 63 - 31.683% !!!!!
+
+Keyset 'Text' - keys of form "FooBarXXXX" - 14776336 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 25389.0, actual 0 (0.00x)
+Testing collisions (high 27-42 bits) - Worst is 27 bits: 532272/784335 (0.68x)
+Testing collisions (low 32-bit) - Expected 25389.0, actual 0 (0.00x)
+Testing collisions (low 27-42 bits) - Worst is 29 bits: 929280/201492 (4.61x) !!!!!
+Testing distribution - Worst bias is the 20-bit window at bit 0 - 52.279% !!!!!
+
+Keyset 'Text' - keys of form "XXXXFooBar" - 14776336 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 25389.0, actual 0 (0.00x)
+Testing collisions (high 27-42 bits) - Worst is 28 bits: 1408000/399329 (3.53x) !!!!!
+Testing collisions (low 32-bit) - Expected 25389.0, actual 0 (0.00x)
+Testing collisions (low 27-42 bits) - Worst is 27 bits: 80000/784335 (0.10x)
+Testing distribution - Worst bias is the 20-bit window at bit 61 - 24.026% !!!!!
+
+Keyset 'Words' - 4000000 random keys of len 6-16 from alnum charset
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 1862.1, actual 1802 (0.97x)
+Testing collisions (high 25-38 bits) - Worst is 38 bits: 35/29 (1.20x)
+Testing collisions (low 32-bit) - Expected 1862.1, actual 1897 (1.02x) (35)
+Testing collisions (low 25-38 bits) - Worst is 33 bits: 962/931 (1.03x)
+Testing distribution - Worst bias is the 19-bit window at bit 59 - 0.057%
+
+Keyset 'Words' - 4000000 random keys of len 6-16 from password charset
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 1862.1, actual 1872 (1.01x) (10)
+Testing collisions (high 25-38 bits) - Worst is 33 bits: 949/931 (1.02x)
+Testing collisions (low 32-bit) - Expected 1862.1, actual 1907 (1.02x) (45)
+Testing collisions (low 25-38 bits) - Worst is 34 bits: 483/465 (1.04x)
+Testing distribution - Worst bias is the 19-bit window at bit 10 - 0.052%
+
+Keyset 'Words' - 104334 dict words
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 1.3, actual 0 (0.00x)
+Testing collisions (high 20-28 bits) - Worst is 22 bits: 1303/1286 (1.01x)
+Testing collisions (low 32-bit) - Expected 1.3, actual 0 (0.00x)
+Testing collisions (low 20-28 bits) - Worst is 28 bits: 23/20 (1.13x)
+Testing distribution - Worst bias is the 14-bit window at bit 62 - 0.676%
+
+*********FAIL*********
+
+[[[ Keyset 'Zeroes' Tests ]]]
+
+Keyset 'Zeroes' - 204800 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 204799 (180143985094819.84x) (204799) !!!!!
+Testing collisions (high 32-bit) - Expected 4.9, actual 204799 (41943.71x) (204795) !!!!!
+Testing collisions (high 21-29 bits) - Worst is 29 bits: 204799/39 (5243.55x) !!!!!
+Testing collisions (low 32-bit) - Expected 4.9, actual 204799 (41943.71x) (204795) !!!!!
+Testing collisions (low 21-29 bits) - Worst is 29 bits: 204799/39 (5243.55x) !!!!!
+Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!!
+
+*********FAIL*********
+
+[[[ Keyset 'Seed' Tests ]]]
+
+Keyset 'Seed' - 5000000 keys
+Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
+Testing collisions (high 32-bit) - Expected 2909.3, actual 0 (0.00x)
+Testing collisions (high 26-39 bits) - Worst is 0 bits: 0/ 1 (0.00x)
+Testing collisions (low 32-bit) - Expected 2909.3, actual 0 (0.00x)
+Testing collisions (low 26-39 bits) - Worst is 0 bits: 0/ 1 (0.00x)
+Testing distribution - Worst bias is the 19-bit window at bit 49 - 64.465% !!!!!
+
+*********FAIL*********
+
+[[[ Keyset 'PerlinNoise' Tests ]]]
+
+Testing 16777216 coordinates (L2) :
+Testing collisions ( 64-bit) - Expected 0.0, actual 16773120 (2198486515680.01x) (16773120) !!!!!
+Testing collisions (high 32-bit) - Expected 32725.4, actual 16773120 (512.54x) (16740395) !!!!!
+Testing collisions (high 27-42 bits) - Worst is 42 bits: 16773120/31 (524160.70x) !!!!!
+Testing collisions (low 32-bit) - Expected 32725.4, actual 16773120 (512.54x) (16740395) !!!!!
+Testing collisions (low 27-42 bits) - Worst is 42 bits: 16773120/31 (524160.70x) !!!!!
+
+Testing AV variant, 128 count with 4 spacing, 4-12:
+Testing collisions ( 64-bit) - Expected 0.0, actual 796431 (3063942940256.29x) (796431)
+Testing collisions (high 32-bit) - Expected 1116.2, actual 797014 (714.07x) (795898) !!!!!
+Testing collisions (high 25-37 bits) - Worst is 37 bits: 796449/34 (22828.84x) !!!!!
+Testing collisions (low 32-bit) - Expected 1116.2, actual 797035 (714.09x) (795919) !!!!!
+Testing collisions (low 25-37 bits) - Worst is 37 bits: 796463/34 (22829.24x) !!!!!
+
+*********FAIL*********
+
+[[[ Diff 'Differential' Tests ]]]
+
+Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 64 bit hashes.
+1000 reps, 8303632000 total tests, expecting 0.00 random collisions..........
+0 total collisions, of which 0 single collisions were ignored
+
+Testing 11017632 up-to-4-bit differentials in 128-bit keys -> 64 bit hashes.
+1000 reps, 11017632000 total tests, expecting 0.00 random collisions..........
+0 total collisions, of which 0 single collisions were ignored
+
+Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 64 bit hashes.
+1000 reps, 2796416000 total tests, expecting 0.00 random collisions..........
+0 total collisions, of which 0 single collisions were ignored
+
+
+[[[ DiffDist 'Differential Distribution' Tests ]]]
+
+Testing bit 0
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 1
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 2
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 3
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 4
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 5
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 6
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 7
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 8
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 9
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 10
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 11
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 12
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 13
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 14
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 15
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 16
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 17
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 18
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 19
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 20
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 21
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 22
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 23
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 24
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 25
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 26
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 27
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 28
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 29
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 30
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 31
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 32
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 33
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 34
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 35
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 36
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 37
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 38
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 39
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 40
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 41
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 42
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 43
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 44
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 45
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 46
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 47
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 48
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 49
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 50
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 51
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 52
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 53
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 54
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 55
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 56
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 57
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 58
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 59
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 60
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 61
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 62
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+Testing bit 63
+Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!!
+Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!!
+Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!!
+Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!!
+
+*********FAIL*********
+
+[[[ MomentChi2 Tests ]]]
+
+Analyze hashes produced from a serie of linearly increasing numbers of 32-bit, using a step of 2 ...
+Target values to approximate : 38918200.000000 - 273633.333333
+8 threads starting... done
+Popcount 1 stats : 38918912.000000 - 273643.176129
+Popcount 0 stats : 38918912.000000 - 273643.178030
+MomentChi2 for bits 1 : 0.926303
+MomentChi2 for bits 0 : 0.926303
+
+Derivative stats (transition from 2 consecutive values) :
+Popcount 1 stats : 42600335.340257 - 233974.301184
+Popcount 0 stats : 32312867.472151 - 105358.370683
+MomentChi2 for deriv b1 : 2.67098e+07
+MomentChi2 for deriv b0 : 1.15122e+08
+
+ FAIL !!!!
+
+
+*********FAIL*********
+
+[[[ Prng Tests ]]]
+
+Generating 33554432 random numbers :
+Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!!
+Testing collisions (high 32-bit) - Expected 130731.3, actual 33554431 (256.67x) (33423700) !!!!!
+Testing collisions (high 28-44 bits) - Worst is 44 bits: 33554431/31 (1048576.67x) !!!!!
+Testing collisions (low 32-bit) - Expected 130731.3, actual 33554431 (256.67x) (33423700) !!!!!
+Testing collisions (low 28-44 bits) - Worst is 44 bits: 33554431/31 (1048576.67x) !!!!!
+
+*********FAIL*********
+
+[[[ BadSeeds Tests ]]]
+
+Testing 1 internal secrets:
+0xdeadbeef PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 890.231476 seconds
+-------------------------------------------------------------------------------
+[[[ BadSeeds Tests ]]]
+
+Testing 1 internal secrets:
+0xdeadbeef PASS
+Testing the first 0xffffffff seeds ...
+8 threads starting...
+at 0
+Broken seed 0x00000000 => 0 with key[16] of all 0 bytes
+at 20000000 at 40000000 at 60000000 at 80000000 at a0000000 at c0000000 at e0000000 0x81ffffff 0x41ffffff 0xe1ffffff 0x01ffffff 0x21ffffff 0xc1ffffff 0x61ffffff 0xa1ffffff 0xe3ffffff 0x23ffffff 0xc3ffffff 0x83ffffff 0x03ffffff 0x43ffffff 0xa3ffffff 0x63ffffff 0xe5ffffff 0x05ffffff 0x85ffffff 0x45ffffff 0x25ffffff 0xa5ffffff 0xc5ffffff 0x65ffffff 0xe7ffffff 0x07ffffff 0x27ffffff 0x87ffffff 0x47ffffff 0xa7ffffff 0xc7ffffff 0x67ffffff 0xe9ffffff 0x29ffffff 0x49ffffff 0x09ffffff 0xa9ffffff 0xc9ffffff 0x89ffffff 0x69ffffff 0xebffffff 0x4bffffff 0x2bffffff 0x0bffffff 0xcbffffff 0x8bffffff 0xabffffff 0x6bffffff 0xedffffff 0x2dffffff 0x4dffffff 0xcdffffff 0x0dffffff 0x8dffffff 0xadffffff 0x6dffffff 0xefffffff 0x0fffffff 0x4fffffff 0xcfffffff 0x8fffffff 0x2fffffff 0xafffffff 0x6fffffff 0xf1ffffff 0x11ffffff 0xd1ffffff 0x51ffffff 0x91ffffff 0x31ffffff 0xb1ffffff 0x71ffffff 0xf3ffffff 0xd3ffffff 0x13ffffff 0x53ffffff 0x33ffffff 0x93ffffff 0xb3ffffff 0x73ffffff 0xf5ffffff 0xd5ffffff 0x15ffffff 0x35ffffff 0x55ffffff 0x95ffffff 0xb5ffffff 0x75ffffff 0xf7ffffff 0xd7ffffff 0x17ffffff 0x37ffffff 0x57ffffff 0x97ffffff 0xb7ffffff 0x77ffffff 0xf9ffffff 0xd9ffffff 0x19ffffff 0x39ffffff 0x99ffffff 0x59ffffff 0xb9ffffff 0x79ffffff 0xfbffffff 0xdbffffff 0x1bffffff 0x9bffffff 0x3bffffff 0x5bffffff 0xbbffffff 0x7bffffff 0xfdffffff 0xddffffff 0x1dffffff 0x9dffffff 0x3dffffff 0x5dffffff 0xbdffffff 0x7dffffff 0xffffffff 0xdfffffff 0x1fffffff 0x9fffffff 0x3fffffff 0x5fffffff 0xbfffffff 0x7fffffff All 8 threads ended
+FAIL
+Ensure to add these bad seeds to the list of secrets in main.cpp
+
+*********FAIL*********
+
+
diff --git a/doc/donothing128.txt b/doc/donothing128.txt
index 36b00e95..38675b05 100644
--- a/doc/donothing128.txt
+++ b/doc/donothing128.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xfc2ff5f164 - 0xfc2ff5f0f8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5324.001 bytes/cycle - 15232088.66 MiB/sec @ 3 ghz
-Alignment 6 - 5312.054 bytes/cycle - 15197907.37 MiB/sec @ 3 ghz
-Alignment 5 - 5341.769 bytes/cycle - 15282922.68 MiB/sec @ 3 ghz
-Alignment 4 - 5344.057 bytes/cycle - 15289469.75 MiB/sec @ 3 ghz
-Alignment 3 - 5323.893 bytes/cycle - 15231779.11 MiB/sec @ 3 ghz
-Alignment 2 - 5346.893 bytes/cycle - 15297583.41 MiB/sec @ 3 ghz
-Alignment 1 - 5355.747 bytes/cycle - 15322915.89 MiB/sec @ 3 ghz
-Alignment 0 - 5374.720 bytes/cycle - 15377197.84 MiB/sec @ 3 ghz
-Average - 5340.392 bytes/cycle - 15278983.09 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 6.00 cycles/hash
-Small key speed test - 2-byte keys - 6.00 cycles/hash
-Small key speed test - 3-byte keys - 6.00 cycles/hash
-Small key speed test - 4-byte keys - 6.00 cycles/hash
-Small key speed test - 5-byte keys - 6.00 cycles/hash
-Small key speed test - 6-byte keys - 6.00 cycles/hash
-Small key speed test - 7-byte keys - 6.00 cycles/hash
-Small key speed test - 8-byte keys - 6.00 cycles/hash
-Small key speed test - 9-byte keys - 6.00 cycles/hash
-Small key speed test - 10-byte keys - 6.00 cycles/hash
-Small key speed test - 11-byte keys - 6.00 cycles/hash
-Small key speed test - 12-byte keys - 6.00 cycles/hash
-Small key speed test - 13-byte keys - 6.00 cycles/hash
-Small key speed test - 14-byte keys - 6.00 cycles/hash
-Small key speed test - 15-byte keys - 6.00 cycles/hash
-Small key speed test - 16-byte keys - 6.00 cycles/hash
-Small key speed test - 17-byte keys - 6.00 cycles/hash
-Small key speed test - 18-byte keys - 6.00 cycles/hash
-Small key speed test - 19-byte keys - 6.00 cycles/hash
-Small key speed test - 20-byte keys - 6.00 cycles/hash
-Small key speed test - 21-byte keys - 6.00 cycles/hash
-Small key speed test - 22-byte keys - 6.00 cycles/hash
-Small key speed test - 23-byte keys - 6.00 cycles/hash
-Small key speed test - 24-byte keys - 6.00 cycles/hash
-Small key speed test - 25-byte keys - 6.00 cycles/hash
-Small key speed test - 26-byte keys - 6.00 cycles/hash
-Small key speed test - 27-byte keys - 6.00 cycles/hash
-Small key speed test - 28-byte keys - 6.00 cycles/hash
-Small key speed test - 29-byte keys - 6.00 cycles/hash
-Small key speed test - 30-byte keys - 6.00 cycles/hash
-Small key speed test - 31-byte keys - 6.00 cycles/hash
-Average 6.000 cycles/hash
+Alignment 7 - 4182.140 bytes/cycle - 11965197.96 MiB/sec @ 3 ghz
+Alignment 6 - 4187.756 bytes/cycle - 11981264.79 MiB/sec @ 3 ghz
+Alignment 5 - 4177.338 bytes/cycle - 11951460.65 MiB/sec @ 3 ghz
+Alignment 4 - 4194.192 bytes/cycle - 11999679.80 MiB/sec @ 3 ghz
+Alignment 3 - 4175.740 bytes/cycle - 11946888.55 MiB/sec @ 3 ghz
+Alignment 2 - 4162.206 bytes/cycle - 11908166.51 MiB/sec @ 3 ghz
+Alignment 1 - 4171.750 bytes/cycle - 11935473.60 MiB/sec @ 3 ghz
+Alignment 0 - 4196.611 bytes/cycle - 12006600.03 MiB/sec @ 3 ghz
+Average - 4180.967 bytes/cycle - 11961841.48 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 4.00 cycles/hash
+Small key speed test - 2-byte keys - 4.00 cycles/hash
+Small key speed test - 3-byte keys - 4.00 cycles/hash
+Small key speed test - 4-byte keys - 4.00 cycles/hash
+Small key speed test - 5-byte keys - 4.00 cycles/hash
+Small key speed test - 6-byte keys - 4.00 cycles/hash
+Small key speed test - 7-byte keys - 4.00 cycles/hash
+Small key speed test - 8-byte keys - 4.37 cycles/hash
+Small key speed test - 9-byte keys - 4.00 cycles/hash
+Small key speed test - 10-byte keys - 4.00 cycles/hash
+Small key speed test - 11-byte keys - 4.00 cycles/hash
+Small key speed test - 12-byte keys - 4.00 cycles/hash
+Small key speed test - 13-byte keys - 4.00 cycles/hash
+Small key speed test - 14-byte keys - 4.00 cycles/hash
+Small key speed test - 15-byte keys - 4.00 cycles/hash
+Small key speed test - 16-byte keys - 4.00 cycles/hash
+Small key speed test - 17-byte keys - 4.26 cycles/hash
+Small key speed test - 18-byte keys - 4.00 cycles/hash
+Small key speed test - 19-byte keys - 4.00 cycles/hash
+Small key speed test - 20-byte keys - 4.00 cycles/hash
+Small key speed test - 21-byte keys - 4.00 cycles/hash
+Small key speed test - 22-byte keys - 4.00 cycles/hash
+Small key speed test - 23-byte keys - 5.48 cycles/hash
+Small key speed test - 24-byte keys - 4.00 cycles/hash
+Small key speed test - 25-byte keys - 4.00 cycles/hash
+Small key speed test - 26-byte keys - 4.00 cycles/hash
+Small key speed test - 27-byte keys - 4.00 cycles/hash
+Small key speed test - 28-byte keys - 4.00 cycles/hash
+Small key speed test - 29-byte keys - 4.00 cycles/hash
+Small key speed test - 30-byte keys - 4.00 cycles/hash
+Small key speed test - 31-byte keys - 4.39 cycles/hash
+Small key speed test - 32-byte keys - 4.00 cycles/hash
+Average 4.078 cycles/hash
+Average, weighted by key length freq. 4.069 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 4.017 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/donothing32.txt b/doc/donothing32.txt
index 84c0ad55..e3a1d430 100644
--- a/doc/donothing32.txt
+++ b/doc/donothing32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xf750f5d2dc - 0xf750f5d294). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5328.224 bytes/cycle - 15244171.15 MiB/sec @ 3 ghz
-Alignment 6 - 5339.918 bytes/cycle - 15277626.79 MiB/sec @ 3 ghz
-Alignment 5 - 5352.355 bytes/cycle - 15313210.84 MiB/sec @ 3 ghz
-Alignment 4 - 5327.213 bytes/cycle - 15241277.87 MiB/sec @ 3 ghz
-Alignment 3 - 5395.013 bytes/cycle - 15435255.68 MiB/sec @ 3 ghz
-Alignment 2 - 5343.330 bytes/cycle - 15287390.71 MiB/sec @ 3 ghz
-Alignment 1 - 5346.456 bytes/cycle - 15296334.59 MiB/sec @ 3 ghz
-Alignment 0 - 5395.457 bytes/cycle - 15436527.28 MiB/sec @ 3 ghz
-Average - 5353.496 bytes/cycle - 15316474.36 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 6.00 cycles/hash
-Small key speed test - 2-byte keys - 6.00 cycles/hash
-Small key speed test - 3-byte keys - 6.00 cycles/hash
-Small key speed test - 4-byte keys - 6.00 cycles/hash
-Small key speed test - 5-byte keys - 6.00 cycles/hash
-Small key speed test - 6-byte keys - 6.00 cycles/hash
-Small key speed test - 7-byte keys - 6.00 cycles/hash
-Small key speed test - 8-byte keys - 6.00 cycles/hash
-Small key speed test - 9-byte keys - 6.00 cycles/hash
-Small key speed test - 10-byte keys - 6.00 cycles/hash
-Small key speed test - 11-byte keys - 6.00 cycles/hash
-Small key speed test - 12-byte keys - 6.00 cycles/hash
-Small key speed test - 13-byte keys - 6.00 cycles/hash
-Small key speed test - 14-byte keys - 6.00 cycles/hash
-Small key speed test - 15-byte keys - 6.00 cycles/hash
-Small key speed test - 16-byte keys - 6.00 cycles/hash
-Small key speed test - 17-byte keys - 6.00 cycles/hash
-Small key speed test - 18-byte keys - 6.00 cycles/hash
-Small key speed test - 19-byte keys - 6.00 cycles/hash
-Small key speed test - 20-byte keys - 6.00 cycles/hash
-Small key speed test - 21-byte keys - 6.00 cycles/hash
-Small key speed test - 22-byte keys - 6.00 cycles/hash
-Small key speed test - 23-byte keys - 6.00 cycles/hash
-Small key speed test - 24-byte keys - 6.00 cycles/hash
-Small key speed test - 25-byte keys - 6.00 cycles/hash
-Small key speed test - 26-byte keys - 6.00 cycles/hash
-Small key speed test - 27-byte keys - 6.00 cycles/hash
-Small key speed test - 28-byte keys - 6.00 cycles/hash
-Small key speed test - 29-byte keys - 6.00 cycles/hash
-Small key speed test - 30-byte keys - 6.00 cycles/hash
-Small key speed test - 31-byte keys - 6.00 cycles/hash
-Average 6.000 cycles/hash
+Alignment 7 - 4019.617 bytes/cycle - 11500215.17 MiB/sec @ 3 ghz
+Alignment 6 - 4036.594 bytes/cycle - 11548787.26 MiB/sec @ 3 ghz
+Alignment 5 - 4030.022 bytes/cycle - 11529986.44 MiB/sec @ 3 ghz
+Alignment 4 - 4046.632 bytes/cycle - 11577507.88 MiB/sec @ 3 ghz
+Alignment 3 - 4021.561 bytes/cycle - 11505777.86 MiB/sec @ 3 ghz
+Alignment 2 - 4038.690 bytes/cycle - 11554783.95 MiB/sec @ 3 ghz
+Alignment 1 - 4047.685 bytes/cycle - 11580518.44 MiB/sec @ 3 ghz
+Alignment 0 - 4018.458 bytes/cycle - 11496899.37 MiB/sec @ 3 ghz
+Average - 4032.407 bytes/cycle - 11536809.55 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 4.00 cycles/hash
+Small key speed test - 2-byte keys - 4.00 cycles/hash
+Small key speed test - 3-byte keys - 4.00 cycles/hash
+Small key speed test - 4-byte keys - 4.00 cycles/hash
+Small key speed test - 5-byte keys - 4.00 cycles/hash
+Small key speed test - 6-byte keys - 4.00 cycles/hash
+Small key speed test - 7-byte keys - 4.00 cycles/hash
+Small key speed test - 8-byte keys - 4.00 cycles/hash
+Small key speed test - 9-byte keys - 4.00 cycles/hash
+Small key speed test - 10-byte keys - 4.00 cycles/hash
+Small key speed test - 11-byte keys - 4.00 cycles/hash
+Small key speed test - 12-byte keys - 4.00 cycles/hash
+Small key speed test - 13-byte keys - 4.00 cycles/hash
+Small key speed test - 14-byte keys - 4.00 cycles/hash
+Small key speed test - 15-byte keys - 4.00 cycles/hash
+Small key speed test - 16-byte keys - 4.00 cycles/hash
+Small key speed test - 17-byte keys - 4.00 cycles/hash
+Small key speed test - 18-byte keys - 4.00 cycles/hash
+Small key speed test - 19-byte keys - 4.00 cycles/hash
+Small key speed test - 20-byte keys - 4.00 cycles/hash
+Small key speed test - 21-byte keys - 4.00 cycles/hash
+Small key speed test - 22-byte keys - 4.00 cycles/hash
+Small key speed test - 23-byte keys - 4.00 cycles/hash
+Small key speed test - 24-byte keys - 4.00 cycles/hash
+Small key speed test - 25-byte keys - 4.00 cycles/hash
+Small key speed test - 26-byte keys - 4.00 cycles/hash
+Small key speed test - 27-byte keys - 4.00 cycles/hash
+Small key speed test - 28-byte keys - 4.00 cycles/hash
+Small key speed test - 29-byte keys - 4.00 cycles/hash
+Small key speed test - 30-byte keys - 4.00 cycles/hash
+Small key speed test - 31-byte keys - 4.00 cycles/hash
+Small key speed test - 32-byte keys - 4.00 cycles/hash
+Average 4.000 cycles/hash
+Average, weighted by key length freq. 4.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 4.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/donothing64.txt b/doc/donothing64.txt
index a2022f5f..a3c5a1e7 100644
--- a/doc/donothing64.txt
+++ b/doc/donothing64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xf9c6586350 - 0xf9c6586308). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5344.275 bytes/cycle - 15290093.57 MiB/sec @ 3 ghz
-Alignment 6 - 5339.373 bytes/cycle - 15276069.87 MiB/sec @ 3 ghz
-Alignment 5 - 5393.199 bytes/cycle - 15430065.47 MiB/sec @ 3 ghz
-Alignment 4 - 5328.549 bytes/cycle - 15245101.36 MiB/sec @ 3 ghz
-Alignment 3 - 5381.971 bytes/cycle - 15397942.83 MiB/sec @ 3 ghz
-Alignment 2 - 5361.374 bytes/cycle - 15339013.69 MiB/sec @ 3 ghz
-Alignment 1 - 5365.400 bytes/cycle - 15350532.85 MiB/sec @ 3 ghz
-Alignment 0 - 5351.699 bytes/cycle - 15311333.86 MiB/sec @ 3 ghz
-Average - 5358.230 bytes/cycle - 15330019.19 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 6.00 cycles/hash
-Small key speed test - 2-byte keys - 6.00 cycles/hash
-Small key speed test - 3-byte keys - 6.00 cycles/hash
-Small key speed test - 4-byte keys - 6.00 cycles/hash
-Small key speed test - 5-byte keys - 6.00 cycles/hash
-Small key speed test - 6-byte keys - 6.00 cycles/hash
-Small key speed test - 7-byte keys - 6.00 cycles/hash
-Small key speed test - 8-byte keys - 6.00 cycles/hash
-Small key speed test - 9-byte keys - 6.00 cycles/hash
-Small key speed test - 10-byte keys - 6.00 cycles/hash
-Small key speed test - 11-byte keys - 6.00 cycles/hash
-Small key speed test - 12-byte keys - 6.00 cycles/hash
-Small key speed test - 13-byte keys - 6.00 cycles/hash
-Small key speed test - 14-byte keys - 6.00 cycles/hash
-Small key speed test - 15-byte keys - 6.00 cycles/hash
-Small key speed test - 16-byte keys - 6.00 cycles/hash
-Small key speed test - 17-byte keys - 6.00 cycles/hash
-Small key speed test - 18-byte keys - 6.00 cycles/hash
-Small key speed test - 19-byte keys - 6.00 cycles/hash
-Small key speed test - 20-byte keys - 6.00 cycles/hash
-Small key speed test - 21-byte keys - 6.00 cycles/hash
-Small key speed test - 22-byte keys - 6.00 cycles/hash
-Small key speed test - 23-byte keys - 6.00 cycles/hash
-Small key speed test - 24-byte keys - 6.00 cycles/hash
-Small key speed test - 25-byte keys - 6.00 cycles/hash
-Small key speed test - 26-byte keys - 6.00 cycles/hash
-Small key speed test - 27-byte keys - 6.00 cycles/hash
-Small key speed test - 28-byte keys - 6.00 cycles/hash
-Small key speed test - 29-byte keys - 6.00 cycles/hash
-Small key speed test - 30-byte keys - 6.00 cycles/hash
-Small key speed test - 31-byte keys - 6.00 cycles/hash
-Average 6.000 cycles/hash
+Alignment 7 - 4247.231 bytes/cycle - 12151426.72 MiB/sec @ 3 ghz
+Alignment 6 - 4296.550 bytes/cycle - 12292527.72 MiB/sec @ 3 ghz
+Alignment 5 - 4269.660 bytes/cycle - 12215594.24 MiB/sec @ 3 ghz
+Alignment 4 - 4299.088 bytes/cycle - 12299789.94 MiB/sec @ 3 ghz
+Alignment 3 - 4275.513 bytes/cycle - 12232341.04 MiB/sec @ 3 ghz
+Alignment 2 - 4277.188 bytes/cycle - 12237134.27 MiB/sec @ 3 ghz
+Alignment 1 - 4291.482 bytes/cycle - 12278028.96 MiB/sec @ 3 ghz
+Alignment 0 - 4352.227 bytes/cycle - 12451820.84 MiB/sec @ 3 ghz
+Average - 4288.617 bytes/cycle - 12269832.97 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 4.00 cycles/hash
+Small key speed test - 2-byte keys - 4.00 cycles/hash
+Small key speed test - 3-byte keys - 4.00 cycles/hash
+Small key speed test - 4-byte keys - 4.00 cycles/hash
+Small key speed test - 5-byte keys - 4.00 cycles/hash
+Small key speed test - 6-byte keys - 4.00 cycles/hash
+Small key speed test - 7-byte keys - 4.00 cycles/hash
+Small key speed test - 8-byte keys - 4.00 cycles/hash
+Small key speed test - 9-byte keys - 4.00 cycles/hash
+Small key speed test - 10-byte keys - 4.00 cycles/hash
+Small key speed test - 11-byte keys - 4.00 cycles/hash
+Small key speed test - 12-byte keys - 4.00 cycles/hash
+Small key speed test - 13-byte keys - 4.00 cycles/hash
+Small key speed test - 14-byte keys - 4.00 cycles/hash
+Small key speed test - 15-byte keys - 4.00 cycles/hash
+Small key speed test - 16-byte keys - 4.00 cycles/hash
+Small key speed test - 17-byte keys - 4.00 cycles/hash
+Small key speed test - 18-byte keys - 4.00 cycles/hash
+Small key speed test - 19-byte keys - 4.00 cycles/hash
+Small key speed test - 20-byte keys - 4.00 cycles/hash
+Small key speed test - 21-byte keys - 4.00 cycles/hash
+Small key speed test - 22-byte keys - 4.00 cycles/hash
+Small key speed test - 23-byte keys - 4.00 cycles/hash
+Small key speed test - 24-byte keys - 4.00 cycles/hash
+Small key speed test - 25-byte keys - 4.00 cycles/hash
+Small key speed test - 26-byte keys - 4.00 cycles/hash
+Small key speed test - 27-byte keys - 4.00 cycles/hash
+Small key speed test - 28-byte keys - 4.00 cycles/hash
+Small key speed test - 29-byte keys - 4.00 cycles/hash
+Small key speed test - 30-byte keys - 4.00 cycles/hash
+Small key speed test - 31-byte keys - 4.00 cycles/hash
+Small key speed test - 32-byte keys - 4.00 cycles/hash
+Average 4.000 cycles/hash
+Average, weighted by key length freq. 4.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 4.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/edonr224.txt b/doc/edonr224.txt
index 431729e0..9951f813 100644
--- a/doc/edonr224.txt
+++ b/doc/edonr224.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x8e2169c3470 - 0x8e2169c3404). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.302 bytes/cycle - 864.14 MiB/sec @ 3 ghz
-Alignment 6 - 0.302 bytes/cycle - 864.11 MiB/sec @ 3 ghz
-Alignment 5 - 0.301 bytes/cycle - 861.89 MiB/sec @ 3 ghz
-Alignment 4 - 0.304 bytes/cycle - 869.03 MiB/sec @ 3 ghz
-Alignment 3 - 0.302 bytes/cycle - 863.69 MiB/sec @ 3 ghz
-Alignment 2 - 0.301 bytes/cycle - 861.62 MiB/sec @ 3 ghz
-Alignment 1 - 0.302 bytes/cycle - 863.71 MiB/sec @ 3 ghz
-Alignment 0 - 0.304 bytes/cycle - 869.33 MiB/sec @ 3 ghz
-Average - 0.302 bytes/cycle - 864.69 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 302.72 cycles/hash
-Small key speed test - 2-byte keys - 304.56 cycles/hash
-Small key speed test - 3-byte keys - 304.63 cycles/hash
-Small key speed test - 4-byte keys - 299.53 cycles/hash
-Small key speed test - 5-byte keys - 302.38 cycles/hash
-Small key speed test - 6-byte keys - 302.44 cycles/hash
-Small key speed test - 7-byte keys - 302.44 cycles/hash
-Small key speed test - 8-byte keys - 303.15 cycles/hash
-Small key speed test - 9-byte keys - 303.93 cycles/hash
-Small key speed test - 10-byte keys - 303.83 cycles/hash
-Small key speed test - 11-byte keys - 303.88 cycles/hash
-Small key speed test - 12-byte keys - 303.47 cycles/hash
-Small key speed test - 13-byte keys - 303.56 cycles/hash
-Small key speed test - 14-byte keys - 303.52 cycles/hash
-Small key speed test - 15-byte keys - 303.59 cycles/hash
-Small key speed test - 16-byte keys - 303.98 cycles/hash
-Small key speed test - 17-byte keys - 309.58 cycles/hash
-Small key speed test - 18-byte keys - 309.61 cycles/hash
-Small key speed test - 19-byte keys - 309.00 cycles/hash
-Small key speed test - 20-byte keys - 301.49 cycles/hash
+Alignment 7 - 0.302 bytes/cycle - 864.04 MiB/sec @ 3 ghz
+Alignment 6 - 0.301 bytes/cycle - 861.13 MiB/sec @ 3 ghz
+Alignment 5 - 0.300 bytes/cycle - 859.42 MiB/sec @ 3 ghz
+Alignment 4 - 0.303 bytes/cycle - 866.84 MiB/sec @ 3 ghz
+Alignment 3 - 0.302 bytes/cycle - 863.44 MiB/sec @ 3 ghz
+Alignment 2 - 0.302 bytes/cycle - 863.47 MiB/sec @ 3 ghz
+Alignment 1 - 0.302 bytes/cycle - 863.45 MiB/sec @ 3 ghz
+Alignment 0 - 0.304 bytes/cycle - 868.35 MiB/sec @ 3 ghz
+Average - 0.302 bytes/cycle - 863.77 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 306.00 cycles/hash
+Small key speed test - 2-byte keys - 311.00 cycles/hash
+Small key speed test - 3-byte keys - 312.92 cycles/hash
+Small key speed test - 4-byte keys - 303.95 cycles/hash
+Small key speed test - 5-byte keys - 306.97 cycles/hash
+Small key speed test - 6-byte keys - 307.63 cycles/hash
+Small key speed test - 7-byte keys - 307.72 cycles/hash
+Small key speed test - 8-byte keys - 304.00 cycles/hash
+Small key speed test - 9-byte keys - 303.00 cycles/hash
+Small key speed test - 10-byte keys - 303.55 cycles/hash
+Small key speed test - 11-byte keys - 303.48 cycles/hash
+Small key speed test - 12-byte keys - 304.59 cycles/hash
+Small key speed test - 13-byte keys - 307.19 cycles/hash
+Small key speed test - 14-byte keys - 307.62 cycles/hash
+Small key speed test - 15-byte keys - 307.64 cycles/hash
+Small key speed test - 16-byte keys - 303.26 cycles/hash
+Small key speed test - 17-byte keys - 315.00 cycles/hash
+Small key speed test - 18-byte keys - 315.40 cycles/hash
+Small key speed test - 19-byte keys - 315.00 cycles/hash
+Small key speed test - 20-byte keys - 300.00 cycles/hash
Small key speed test - 21-byte keys - 301.00 cycles/hash
-Small key speed test - 22-byte keys - 301.63 cycles/hash
+Small key speed test - 22-byte keys - 301.00 cycles/hash
Small key speed test - 23-byte keys - 301.00 cycles/hash
-Small key speed test - 24-byte keys - 301.64 cycles/hash
-Small key speed test - 25-byte keys - 302.85 cycles/hash
-Small key speed test - 26-byte keys - 302.96 cycles/hash
-Small key speed test - 27-byte keys - 303.55 cycles/hash
-Small key speed test - 28-byte keys - 301.00 cycles/hash
-Small key speed test - 29-byte keys - 303.41 cycles/hash
-Small key speed test - 30-byte keys - 303.28 cycles/hash
-Small key speed test - 31-byte keys - 302.45 cycles/hash
-Average 303.421 cycles/hash
+Small key speed test - 24-byte keys - 299.82 cycles/hash
+Small key speed test - 25-byte keys - 300.29 cycles/hash
+Small key speed test - 26-byte keys - 300.91 cycles/hash
+Small key speed test - 27-byte keys - 300.36 cycles/hash
+Small key speed test - 28-byte keys - 299.97 cycles/hash
+Small key speed test - 29-byte keys - 300.00 cycles/hash
+Small key speed test - 30-byte keys - 300.00 cycles/hash
+Small key speed test - 31-byte keys - 300.00 cycles/hash
+Small key speed test - 32-byte keys - 302.00 cycles/hash
+Average 304.758 cycles/hash
+Average, weighted by key length freq. 305.677 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 303.938 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/edonr256.txt b/doc/edonr256.txt
index 08f49c66..dd41d211 100644
--- a/doc/edonr256.txt
+++ b/doc/edonr256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x91861d0fa60 - 0x91861d0fa18). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.296 bytes/cycle - 846.55 MiB/sec @ 3 ghz
-Alignment 6 - 0.296 bytes/cycle - 846.52 MiB/sec @ 3 ghz
-Alignment 5 - 0.295 bytes/cycle - 844.71 MiB/sec @ 3 ghz
-Alignment 4 - 0.298 bytes/cycle - 853.52 MiB/sec @ 3 ghz
-Alignment 3 - 0.296 bytes/cycle - 846.07 MiB/sec @ 3 ghz
-Alignment 2 - 0.296 bytes/cycle - 845.83 MiB/sec @ 3 ghz
-Alignment 1 - 0.296 bytes/cycle - 846.02 MiB/sec @ 3 ghz
-Alignment 0 - 0.298 bytes/cycle - 853.58 MiB/sec @ 3 ghz
-Average - 0.296 bytes/cycle - 847.85 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 303.70 cycles/hash
-Small key speed test - 2-byte keys - 308.23 cycles/hash
-Small key speed test - 3-byte keys - 308.02 cycles/hash
-Small key speed test - 4-byte keys - 304.58 cycles/hash
-Small key speed test - 5-byte keys - 304.93 cycles/hash
-Small key speed test - 6-byte keys - 304.39 cycles/hash
-Small key speed test - 7-byte keys - 305.03 cycles/hash
-Small key speed test - 8-byte keys - 302.41 cycles/hash
-Small key speed test - 9-byte keys - 304.83 cycles/hash
-Small key speed test - 10-byte keys - 305.03 cycles/hash
-Small key speed test - 11-byte keys - 305.34 cycles/hash
-Small key speed test - 12-byte keys - 302.76 cycles/hash
-Small key speed test - 13-byte keys - 304.43 cycles/hash
-Small key speed test - 14-byte keys - 304.86 cycles/hash
-Small key speed test - 15-byte keys - 304.35 cycles/hash
-Small key speed test - 16-byte keys - 303.64 cycles/hash
-Small key speed test - 17-byte keys - 310.52 cycles/hash
-Small key speed test - 18-byte keys - 310.23 cycles/hash
-Small key speed test - 19-byte keys - 317.34 cycles/hash
-Small key speed test - 20-byte keys - 306.93 cycles/hash
-Small key speed test - 21-byte keys - 306.91 cycles/hash
-Small key speed test - 22-byte keys - 307.10 cycles/hash
-Small key speed test - 23-byte keys - 306.89 cycles/hash
-Small key speed test - 24-byte keys - 304.63 cycles/hash
-Small key speed test - 25-byte keys - 304.68 cycles/hash
-Small key speed test - 26-byte keys - 304.86 cycles/hash
-Small key speed test - 27-byte keys - 304.77 cycles/hash
-Small key speed test - 28-byte keys - 304.41 cycles/hash
-Small key speed test - 29-byte keys - 304.37 cycles/hash
-Small key speed test - 30-byte keys - 304.71 cycles/hash
-Small key speed test - 31-byte keys - 304.53 cycles/hash
-Average 305.788 cycles/hash
+Alignment 7 - 0.278 bytes/cycle - 796.77 MiB/sec @ 3 ghz
+Alignment 6 - 0.307 bytes/cycle - 877.99 MiB/sec @ 3 ghz
+Alignment 5 - 0.307 bytes/cycle - 878.11 MiB/sec @ 3 ghz
+Alignment 4 - 0.309 bytes/cycle - 885.43 MiB/sec @ 3 ghz
+Alignment 3 - 0.308 bytes/cycle - 880.28 MiB/sec @ 3 ghz
+Alignment 2 - 0.308 bytes/cycle - 880.31 MiB/sec @ 3 ghz
+Alignment 1 - 0.308 bytes/cycle - 880.31 MiB/sec @ 3 ghz
+Alignment 0 - 0.311 bytes/cycle - 888.54 MiB/sec @ 3 ghz
+Average - 0.304 bytes/cycle - 870.97 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 293.12 cycles/hash
+Small key speed test - 2-byte keys - 299.35 cycles/hash
+Small key speed test - 3-byte keys - 299.60 cycles/hash
+Small key speed test - 4-byte keys - 290.81 cycles/hash
+Small key speed test - 5-byte keys - 293.20 cycles/hash
+Small key speed test - 6-byte keys - 293.44 cycles/hash
+Small key speed test - 7-byte keys - 293.24 cycles/hash
+Small key speed test - 8-byte keys - 289.37 cycles/hash
+Small key speed test - 9-byte keys - 294.00 cycles/hash
+Small key speed test - 10-byte keys - 294.00 cycles/hash
+Small key speed test - 11-byte keys - 295.34 cycles/hash
+Small key speed test - 12-byte keys - 289.65 cycles/hash
+Small key speed test - 13-byte keys - 295.63 cycles/hash
+Small key speed test - 14-byte keys - 294.69 cycles/hash
+Small key speed test - 15-byte keys - 295.01 cycles/hash
+Small key speed test - 16-byte keys - 296.43 cycles/hash
+Small key speed test - 17-byte keys - 309.64 cycles/hash
+Small key speed test - 18-byte keys - 310.80 cycles/hash
+Small key speed test - 19-byte keys - 310.52 cycles/hash
+Small key speed test - 20-byte keys - 295.97 cycles/hash
+Small key speed test - 21-byte keys - 296.46 cycles/hash
+Small key speed test - 22-byte keys - 296.98 cycles/hash
+Small key speed test - 23-byte keys - 297.10 cycles/hash
+Small key speed test - 24-byte keys - 294.42 cycles/hash
+Small key speed test - 25-byte keys - 296.35 cycles/hash
+Small key speed test - 26-byte keys - 295.86 cycles/hash
+Small key speed test - 27-byte keys - 296.38 cycles/hash
+Small key speed test - 28-byte keys - 294.99 cycles/hash
+Small key speed test - 29-byte keys - 295.53 cycles/hash
+Small key speed test - 30-byte keys - 294.74 cycles/hash
+Small key speed test - 31-byte keys - 295.68 cycles/hash
+Small key speed test - 32-byte keys - 296.50 cycles/hash
+Average 296.400 cycles/hash
+Average, weighted by key length freq. 297.382 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 294.783 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/epyc.html b/doc/epyc.html
new file mode 100644
index 00000000..8b62b5bd
--- /dev/null
+++ b/doc/epyc.html
@@ -0,0 +1,1927 @@
+
+
+
+
+
+
+
+
+SMhasher
+
+Alternative timings with a fast AMD EPYC 9554P 64-Core Processor (Server from 2024)
+
+
+
+
+
+
+
+donothing32
+13553281.72
+4.00
+-
+13
+test NOP
+
+
+donothing64
+13541357.62
+4.00
+-
+13
+test NOP
+
+
+donothing128
+13541295.40
+4.00
+-
+13
+test NOP
+
+
+NOP_OAAT_read64
+13331965.84
+6.00
+-
+47
+test NOP
+
+
+BadHash
+864.19
+57.97
+-
+47
+test FAIL
+
+
+sumhash
+24548.68
+21.89
+-
+363
+test FAIL
+
+
+sumhash32
+100902.82
+12.90
+-
+863
+UB , test FAIL
+
+
+multiply_shift
+7545.64
+17.13
+113.71 (1)
+345
+fails all tests
+
+
+pair_multiply_shift
+8074.03
+27.09
+114.46 (1)
+609
+fails all tests
+
+
+
+
+
+
+
+
+
+
+crc32
+431.31
+114.96
+135.40 (1)
+422
+insecure, 8590x collisions, distrib
+
+
+md5_32
+394.22
+528.58
+666.88 (1)
+4419
+
+
+
+md5_64
+394.25
+536.05
+667.01 (1)
+4419
+
+
+
+md5-128
+394.26
+542.95
+676.78 (1)
+4419
+
+
+
+sha1_32
+695.43
+392.33
+564.22 (1)
+5126
+Sanity, Cyclic low32, collisions, 36.6% distrib
+
+
+sha1_64
+696.39
+401.69
+571.37 (1)
+5126
+Sanity, Cyclic low32, collisions, 36.6% distrib
+
+
+sha1-160
+695.69
+454.58
+610.97 (1)
+5126
+Comb/Cyclic low32
+
+
+sha2-224
+237.47
+846.90
+1016.77 (1)
+
+Cyclic low32
+
+
+sha2-224_64
+237.61
+848.43
+1014.99 (2)
+
+Cyclic low32
+
+
+sha2-256
+238.66
+843.58
+1007.11 (1)
+
+
+
+
+sha2-256_64
+237.48
+846.18
+1015.99 (2)
+
+
+
+
+sha1ni
+1830.17
+145.19
+264.69 (1)
+989
+insecure,sanity, Permutation, Zeroes, amd epyc only
+
+
+sha1ni_32
+1830.19
+137.47
+276.48 (0)
+989
+insecure,sanity, Permutation, Zeroes, TwoBytes, amd epyc only
+
+
+sha2ni-256
+1716.21
+154.79
+277.64 (1)
+4241
+insecure,sanity, Permutation, Zeroes, amd epyc only
+
+
+sha2ni-256_64
+1716.59
+147.99
+270.44 (1)
+4241
+insecure,sanity, Permutation, Zeroes, TwoBytes, amd epyc only
+
+
+blake3_c
+1801.36
+315.27
+445.99 (16)
+
+no 32bit portability
+
+
+rmd128
+355.57
+550.15
+704.03 (1)
+
+
+
+
+rmd160
+187.93
+1006.90
+1186.82 (2)
+
+
+
+
+rmd256
+394.80
+503.14
+656.81 (2)
+
+
+
+
+edonr224
+622.92
+344.19
+468.41 (1)
+
+
+
+
+edonr256
+622.52
+343.77
+465.60 (2)
+
+
+
+
+blake2s-128
+165.10
+1167.72
+1343.40 (1)
+
+
+
+
+blake2s-160
+165.01
+1174.44
+1362.35 (8)
+
+
+
+
+blake2s-224
+165.08
+1175.12
+1343.20 (2)
+
+
+
+
+blake2s-256
+165.02
+1176.59
+1384.37 (1)
+
+
+
+
+blake2s-256_64
+165.14
+1180.71
+1357.44 (1)
+
+
+
+
+blake2b-160
+282.59
+1351.97
+1545.04 (1)
+
+
+
+
+blake2b-224
+282.57
+1352.01
+1524.89 (2)
+
+
+
+
+blake2b-256
+282.41
+1353.61
+1536.79 (1)
+
+Sparse high 32-bit
+
+
+blake2b-256_64
+282.18
+1408.58
+1543.69 (1)
+
+
+
+
+asconhashv12
+194.41
+675.45
+705.48 (1)
+6490
+
+
+
+asconhashv12_64
+194.44
+323.58
+330.37 (1)
+4341
+
+
+
+sha3-256
+170.38
+2333.11
+2562.86 (18)
+
+PerlinNoise
+
+
+sha3-256_64
+170.43
+2335.55
+2564.19 (10)
+
+PerlinNoise
+
+
+hasshe2
+2884.74
+58.16
+172.95 (2)
+445
+Permutation,TwoBytes,Zeroes,Seed
+
+
+poly_1_mersenne
+1730.25
+42.07
+156.71 (1)
+479
+fails most tests
+
+
+poly_2_mersenne
+1730.22
+49.00
+161.78 (1)
+479
+
+
+
+poly_3_mersenne
+1730.20
+55.46
+168.07 (1)
+479
+
+
+
+poly_4_mersenne
+1730.17
+62.80
+173.56 (1)
+479
+
+
+
+tabulation32
+36432.72
+22.93
+150.62 (1)
+848
+collisions
+
+
+tabulation
+7883.27
+27.87
+128.94 (1)
+554
+
+
+
+crc32_hw
+9223.35
+24.11
+142.62 (1)
+653
+insecure, 100% bias, collisions, distrib, machine-specific (SSE4.2/NEON)
+
+
+crc32_hw1
+26518.72
+30.22
+139.68 (1)
+671
+insecure, 100% bias, collisions, distrib, machine-specific (x86 SSE4.2)
+
+
+crc64_hw
+9223.54
+23.83
+109.81 (0)
+652
+insecure, 100% bias, collisions, distrib, machine-specific (SSE4.2/NEON)
+
+
+crc32_pclmul
+11163.01
+83.31
+291.51 (3)
+481
+insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+
+
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+o1hash
+13351023.10
+9.09
+101.49 (1)
+101
+insecure, zeros, fails all tests
+
+
+fibonacci
+100430.65
+14.91
+422.62 (1)
+1692
+UB , zeros, fails all tests
+
+
+FNV1a
+863.68
+59.48
+132.37 (1)
+204
+zeros, fails all tests
+
+
+FNV1A_Totenschiff
+6918.90
+16.80
+144.67 (0)
+270
+UB , zeros, fails all tests
+
+
+FNV1A_Pippip_Yurii
+6918.75
+18.20
+145.23 (1)
+147
+UB , sanity, fails all tests
+
+
+FNV1a_YT
+17678.60
+20.43
+143.28 (1)
+321
+UB , fails all tests
+
+
+FNV2
+6919.24
+22.07
+92.51 (1)
+278
+fails all tests
+
+
+FNV64
+863.89
+59.83
+74.41 (1)
+79
+fails all tests
+
+
+FNV128
+431.31
+121.85
+133.73 (1)
+171
+fails all tests
+
+
+k-hash32
+14854.89
+39.41
+161.51 (1)
+808
+UB , insecure, zeros, fails all tests
+
+
+k-hash64
+14133.90
+28.97
+145.11 (1)
+609
+UB , insecure, zeros, fails all tests
+
+
+fletcher2
+24835.03
+11.26
+188.60 (0)
+248
+UB , fails all tests
+
+
+fletcher4
+24828.96
+11.25
+188.82 (1)
+371
+UB , fails all tests
+
+
+bernstein
+1153.57
+44.91
+134.59 (1)
+41
+fails all tests
+
+
+sdbm
+863.92
+57.36
+132.34 (0)
+41
+fails all tests
+
+
+x17
+1153.56
+46.44
+135.52 (1)
+79
+99.98% bias, fails all tests
+
+
+libiberty
+692.16
+69.72
+132.77 (1)
+37
+insecure, 100% bias, fails all tests
+
+
+gcc
+692.16
+70.70
+133.84 (1)
+39
+insecure, 100% bias, fails all tests
+
+
+JenkinsOOAT
+692.15
+91.26
+138.71 (1)
+153
+53.5% bias, fails all tests
+
+
+JenkinsOOAT_perl
+692.16
+77.17
+136.62 (1)
+65
+1.5-11.5% bias, 7.2x collisions, LongNeighbors
+
+
+MicroOAAT
+1153.56
+46.67
+135.28 (1)
+68
+100% bias, distrib
+
+
+beamsplitter
+534.89
+827.06
+858.12 (1)
+
+UB , too many bad seeds
+
+
+discohash
+2951.62
+222.03
+343.63 (4)
+1294
+
+
+
+pearsonhash64
+431.42
+117.50
+83.31 (1)
+
+ Avalanche, Seed, SSSE3 only. broken MSVC
+
+
+pearsonhash128
+431.40
+120.54
+85.08 (1)
+
+ Avalanche, Seed, SSSE3 only. broken MSVC
+
+
+pearsonhash256
+424.97
+124.59
+94.41 (0)
+
+ Avalanche, Seed, SSSE3 only. broken MSVC
+
+
+VHASH_32
+13868.74
+49.88
+185.85 (1)
+1231
+sanity, Seed, MomentChi2
+
+
+VHASH_64
+13863.00
+49.90
+170.18 (1)
+1231
+sanity, Seed, Sparse
+
+
+farsh32
+54178.84
+46.31
+173.01 (1)
+944
+insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors
+
+
+farsh64
+27066.10
+88.09
+214.66 (1)
+944
+insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors
+
+
+farsh128
+13584.69
+175.25
+232.81 (2)
+
+??
+
+
+farsh256
+6796.97
+347.33
+402.81 (1)
+
+??
+
+
+jodyhash32
+2768.30
+25.57
+146.20 (1)
+102
+bias, collisions, distr, LongNeighbors
+
+
+jodyhash64
+6105.17
+22.53
+117.98 (1)
+118
+bias, collisions, distr, LongNeighbors
+
+
+lookup3
+2965.98
+26.94
+146.43 (1)
+341
+UB , 28% bias, collisions, 30% distr
+
+
+superfast
+2306.92
+36.88
+147.52 (1)
+210
+UB , bad seed 0, 91% bias, 5273.01x collisions, 37% distr, BIC
+
+
+MurmurOAAT
+575.29
+86.71
+135.26 (1)
+47
+collisions, 99.998% distr., BIC, bad seed 0, LongNeighbors
+
+
+Crap8
+3460.12
+25.97
+147.54 (1)
+342
+UB , 2.42% bias, collisions, 2% distrib
+
+
+Murmur1
+2306.94
+36.14
+153.79 (1)
+
+UB , fails all tests, 1 bad seed
+
+
+Murmur2
+3459.81
+30.22
+151.61 (1)
+358
+UB , 1 bad seed, 1.7% bias, 81x coll, 1.7% distrib, BIC
+
+
+Murmur2A
+3459.66
+34.28
+155.44 (1)
+407
+UB , 1 bad seed, 12.7% bias, LongNeighbors
+
+
+Murmur2B
+6916.77
+26.88
+98.73 (0)
+433
+UB , 1.8% bias, collisions, 3.4% distrib, BIC
+
+
+Murmur2C
+4611.63
+36.97
+120.91 (1)
+444
+UB , 2^32 bad seeds, 91% bias, collisions, distr, BIC, LongNeighbors
+
+
+Murmur3A
+3295.17
+36.50
+155.47 (1)
+351
+UB , Moment Chi2 69
+
+
+PMurHash32
+3372.02
+36.67
+154.57 (1)
+1862
+Moment Chi2 69
+
+
+Murmur3C
+4710.48
+44.19
+143.79 (1)
+859
+UB , LongNeighbors, DiffDist
+
+
+PMPML_32
+12125.08
+31.59
+157.83 (1)
+1084
+Avalanche >512, unseeded: Seed, MomentChi2
+
+
+PMPML_64
+18188.37
+31.12
+129.21 (1)
+1305
+unseeded: Seed, MomentChi2
+
+
+xxHash32
+6914.13
+37.53
+158.27 (1)
+738
+LongNeighbors, collisions with 4bit diff, MomentChi2 220
+
+
+metrohash64_1
+18482.90
+29.23
+123.22 (1)
+624
+UB , LongNeighbors, BIC, MomentChi2
+
+
+metrohash64_2
+18586.39
+29.80
+123.42 (1)
+627
+UB , LongNeighbors
+
+
+metrohash64crc_1
+24893.20
+32.23
+126.27 (1)
+632
+UB , cyclic collisions 8 byte, BIC, MomentChi2, machine-specific (SSE4.2/NEON)
+
+
+metrohash64crc_2
+24896.87
+32.23
+126.58 (1)
+632
+UB , cyclic collisions 8 byte, BIC, machine-specific (SSE4.2/NEON)
+
+
+metrohash128_1
+20149.03
+64.51
+172.86 (1)
+773
+UB , LongNeighbors
+
+
+metrohash128_2
+20148.75
+64.43
+172.38 (1)
+773
+UB , LongNeighbors
+
+
+cmetrohash64_1o
+14841.28
+30.60
+124.64 (1)
+3506
+LongNeighbors, MomentChi2
+
+
+cmetrohash64_1
+18548.74
+29.23
+123.28 (0)
+652
+LongNeighbors, BIC, MomentChi2
+
+
+cmetrohash64_2
+18504.62
+29.80
+124.87 (1)
+655
+LongNeighbors
+
+
+City64noSeed
+15796.05
+21.72
+117.22 (1)
+1038
+Avalanche, Sparse, TwoBytes, MomentChi2, Seed
+
+
+City64
+15791.05
+33.49
+128.12 (1)
+1120
+Sparse, TwoBytes
+
+
+t1ha1_64be
+13826.44
+20.37
+120.27 (1)
+555
+Avalanche
+
+
+t1ha0_32le
+7905.20
+36.06
+123.51 (0)
+509
+Sparse, LongNeighbors
+
+
+t1ha0_32be
+7545.50
+37.72
+123.94 (1)
+533
+Sparse, LongNeighbors
+
+
+t1ha2_stream
+15786.58
+56.76
+159.22 (1)
+1665
+Sparse, Permutation, LongNeighbors
+
+
+t1ha2_stream128
+15783.13
+71.63
+174.11 (1)
+1665
+Sparse, Permutation, LongNeighbors
+
+
+aesnihash
+6150.19
+42.24
+153.76 (1)
+1209
+fails many tests, machine-specific (x64 AES-NI)
+
+
+falkhash
+66674.45
+83.69
+197.94 (1)
+264
+Sparse, LongNeighbors, machine-specific (x64 AES-NI)
+
+
+MeowHash
+41878.94
+57.37
+173.31 (1)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+MeowHash64low
+41883.34
+57.32
+174.01 (1)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+MeowHash32low
+41888.75
+57.42
+183.70 (1)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+t1ha1_64le
+16532.27
+19.71
+119.32 (1)
+517
+Avalanche
+
+
+tifuhash_64
+172.43
+416.72
+328.84 (2)
+276
+
+
+
+floppsyhash
+170.71
+482.13
+405.13 (1)
+623
+
+
+
+chaskey
+1496.38
+89.69
+187.58 (1)
+1609
+PerlinNoise
+
+
+SipHash
+1327.84
+106.92
+206.44 (1)
+1071
+
+
+
+HalfSipHash
+1537.94
+57.21
+168.21 (1)
+700
+zeroes
+
+
+GoodOAAT
+1153.55
+54.36
+136.28 (1)
+237
+
+
+
+pearsonbhash64
+1977.41
+83.26
+133.74 (1)
+683
+
+
+
+pearsonbhash128
+1977.36
+95.75
+140.26 (1)
+1134
+
+
+
+pearsonbhash256
+1977.35
+96.98
+141.75 (0)
+844
+
+
+
+prvhash64_64m
+3459.93
+34.36
+126.31 (1)
+349
+
+
+
+prvhash64_64
+3365.90
+35.25
+127.63 (1)
+384
+
+
+
+prvhash64_128
+3952.65
+53.25
+156.32 (1)
+718
+
+
+
+prvhash64s_64
+6496.17
+231.86
+325.00 (1)
+2640
+
+
+
+prvhash64s_128
+6694.05
+303.41
+388.48 (1)
+2799
+
+
+
+SipHash13
+2511.96
+78.33
+184.19 (1)
+778
+0.9% bias
+
+
+discohash1
+2869.00
+177.16
+281.62 (1)
+1294
+bad seeds
+
+
+discohash1-128
+2858.71
+213.13
+318.91 (1)
+1294
+
+
+
+discohash2
+2861.12
+179.98
+280.35 (1)
+1294
+
+
+
+discohash2-128
+2867.73
+214.01
+318.93 (1)
+1294
+
+
+
+discoNONG
+3114.34
+390.56
+497.82 (1)
+
+bad seeds
+
+
+TSip
+5425.34
+39.88
+148.19 (1)
+519
+!msvc
+
+
+aesni
+29051.53
+28.63
+126.17 (1)
+519
+machine-specific (x64 AES-NI)
+
+
+aesni-low
+29025.66
+28.63
+125.00 (1)
+519
+machine-specific (x64 AES-NI)
+
+
+seahash
+7502.74
+41.48
+142.39 (1)
+871
+PerlinNoise, !msvc
+
+
+seahash32low
+7502.82
+41.49
+170.74 (1)
+871
+PerlinNoise, !msvc
+
+
+clhash
+25785.60
+52.77
+167.66 (1)
+1809
+PerlinNoise, machine-specific (SSE4.2/NEON)
+
+
+HighwayHash64
+6242.58
+99.55
+248.41 (3)
+2546
+
+
+
+Murmur3F
+7504.25
+45.69
+93.19 (1)
+699
+UB
+
+
+fasthash32
+6914.05
+28.43
+146.59 (1)
+566
+UB
+
+
+fasthash64
+6914.27
+26.68
+101.37 (1)
+509
+UB , Moment Chi2 5159 !
+
+
+MUM
+12875.18
+26.63
+121.17 (1)
+1912
+UB , too many bad seeds, machine-specific (32/64 differs)
+
+
+MUMlow
+12777.24
+26.62
+151.29 (1)
+1912
+UB , 5 bad seeds
+
+
+xmsx32
+2306.94
+35.55
+151.34 (1)
+192
+2 bad seeds
+
+
+mirhash
+4180.23
+26.69
+121.08 (1)
+1112
+2^36 bad seeds, UB , LongNeighbors, machine-specific (32/64 differs)
+
+
+mirhash32low
+4174.90
+26.71
+152.31 (1)
+1112
+4 bad seeds, UB , Cyclic, LongNeighbors, machine-specific (32/64 differs)
+
+
+mirhashstrict
+3256.34
+38.89
+127.81 (1)
+1112
+
+
+
+mirhashstrict32low
+3256.34
+39.29
+160.31 (1)
+1112
+1 bad seed, MomentChi2 9
+
+
+mx3
+7903.35
+36.63
+107.46 (1)
+734
+UB
+
+
+pengyhash
+16751.80
+50.45
+156.07 (1)
+421
+
+
+
+City32
+5499.33
+42.69
+159.11 (1)
+1319
+
+
+
+City64low
+15791.46
+33.34
+159.78 (1)
+1120
+
+
+
+City128
+15862.57
+74.78
+182.38 (1)
+1841
+
+
+
+CityCrc128
+18368.79
+75.35
+181.49 (1)
+295
+
+
+
+CityCrc256
+18385.35
+159.50
+351.06 (1)
+
+
+
+
+FarmHash32
+29054.45
+33.34
+160.20 (1)
+11489
+machine-specific (x64 SSE4/AVX/NEON)
+
+
+FarmHash64
+15787.68
+33.47
+128.34 (1)
+3758
+
+
+
+FarmHash128
+14744.81
+60.16
+149.85 (1)
+163
+
+
+
+farmhash32_c
+28997.29
+33.34
+161.92 (1)
+762
+machine-specific (x64 SSE4/AVX/NEON)
+
+
+farmhash64_c
+15787.06
+33.47
+128.43 (1)
+3688
+
+
+
+farmhash128_c
+14708.80
+61.24
+149.39 (1)
+1890
+
+
+
+metrohash64
+18557.69
+29.63
+124.03 (1)
+624
+LongNeighbors
+
+
+metrohash128
+14950.62
+63.70
+173.05 (1)
+624
+UB
+
+
+metrohash128crc_1
+24882.45
+68.24
+177.15 (1)
+723
+UB , machine-specific (SSE4.2/NEON)
+
+
+metrohash128crc_2
+24883.09
+68.23
+177.39 (1)
+723
+UB , machine-specific (SSE4.2/NEON)
+
+
+xxHash64
+10056.45
+37.32
+130.57 (1)
+1999
+
+
+
+Spooky32
+16149.79
+35.01
+156.25 (1)
+2221
+UB
+
+
+Spooky64
+16149.92
+34.96
+125.91 (1)
+2221
+UB
+
+
+Spooky128
+16150.36
+48.58
+136.77 (1)
+2221
+UB
+
+
+SpookyV2_32
+16144.83
+35.92
+158.32 (1)
+2069
+
+
+
+SpookyV2_64
+16145.87
+35.89
+126.17 (1)
+2069
+
+
+
+SpookyV2_128
+16144.31
+49.90
+137.70 (1)
+2069
+
+
+
+t1ha2_atonce
+15793.75
+26.50
+123.56 (0)
+541
+
+
+
+t1ha2_atonce128
+15790.56
+49.34
+145.55 (1)
+613
+LongNeighbors
+
+
+t1ha0_aes_noavx
+31307.59
+27.00
+123.67 (1)
+925
+LongNeighbors, machine-specific (x86 AES-NI)
+
+
+t1ha0_aes_avx1
+31329.37
+26.51
+123.17 (1)
+843
+LongNeighbors, machine-specific (x64 AVX)
+
+
+t1ha0_aes_avx2
+80055.05
+26.52
+124.04 (1)
+792
+LongNeighbors, machine-specific (x64 AVX2)
+
+
+ahash64
+10923.49
+31.33
+528.54 (14)
+412
+rust
+
+
+xxh3
+45761.99
+20.57
+115.13 (1)
+744
+Moment Chi2 14974, BIC
+
+
+xxh3low
+45985.28
+20.57
+149.19 (1)
+756
+Moment Chi2 1.8e+9 !
+
+
+xxh128
+45404.59
+22.72
+118.73 (1)
+1012
+Moment Chi2 14974
+
+
+xxh128low
+45594.05
+22.65
+118.31 (1)
+1012
+Moment Chi2 14974, BIC
+
+
+MeowHash
+41878.94
+57.37
+173.31 (1)
+1764
+Sparse low32, machine-specific (x64 AES-NI)
+
+
+MeowHash32low
+41888.75
+57.42
+183.70 (1)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+wyhash
+24518.95
+18.90
+108.28 (1)
+474
+
+
+
+wyhash32
+2532.89
+37.95
+222.17 (4)
+426
+4 bad and broken seeds, 32-bit
+
+
+wyhash32low
+24515.98
+18.91
+145.84 (1)
+474
+5 bad seeds
+
+
+w1hash
+16950.31
+24.53
+115.22 (1)
+
+
+
+
+rapidhash
+24480.16
+20.11
+110.33 (1)
+574
+
+
+
+rapidhash_unrolled
+24198.19
+19.58
+109.39 (1)
+782
+
+
+
+umash32
+40085.27
+28.59
+152.60 (1)
+1530
+
+
+
+umash32_hi
+40050.05
+29.18
+152.17 (1)
+1530
+
+
+
+umash64
+40087.20
+28.12
+121.30 (1)
+1530
+
+
+
+umash128
+25929.94
+28.61
+123.04 (1)
+1530
+
+
+
+halftime_hash64
+7407.72
+80.64
+187.80 (1)
+1530
+
+
+
+halftime_hash128
+22952.87
+70.56
+192.21 (1)
+1530
+
+
+
+halftime_hash256
+40050.39
+77.73
+201.87 (1)
+1530
+
+
+
+halftime_hash512
+40355.03
+89.53
+213.99 (1)
+1530
+
+
+
+nmhash32
+26048.40
+41.39
+161.78 (1)
+2445
+
+
+
+nmhash32x
+26004.41
+31.23
+149.38 (1)
+1494
+
+
+
+k-hashv32
+7439.70
+49.75
+168.97 (1)
+1280
+
+
+
+k-hashv64
+7463.67
+48.83
+142.47 (1)
+1279
+
+
+
+komihash
+18957.78
+23.26
+116.93 (1)
+728
+
+
+
+polymur
+14155.48
+32.45
+123.59 (1)
+1128
+
+
+
+gxhash64
+103530.08
+27.00
+147.16 (1)
+
+
+
+
+
+
+Other timings:
+
+
+Summary
+I added some SSE assisted hashes and fast intel/arm CRC32-C and AES HW variants, but not the fastest crcutil yet. See our crcutil results . See also the old https://code.google.com/p/smhasher/w/list .
+So the fastest hash functions on x86_64 without quality problems are:
+
+wyhash v3
+t1ha2_atonce
+umash
+xxh3low
+metrohash64crc (x86 only)
+FarmHash (not portable, too machine specific: 64 vs 32bit, old gcc, ... )
+Spooky32
+fasthash
+MUM/mir (different results on 32/64-bit archs )
+
+Hash functions for symbol tables or hash tables typically use 32 bit hashes, for databases, file systems and file checksums typically 64 or 128bit, for crypto now starting with 256 bit.
+Typical median key size in perl5 is 20, the most common 4. Similar for all other dynamic languages. See github.com/rurban/perl-hash-stats
+When used in a hash table the instruction cache will usually beat the CPU and throughput measured here. In my tests the smallest FNV1A
beats the fastest crc32_hw1
with Perl 5 hash tables . Even if those worse hash functions will lead to more collisions, the overall speed advantage and inline-ability beats the slightly worse quality. See e.g. A Seven-Dimensional Analysis of Hashing Methods and its Implications on Query Processing for a concise overview of the best hash table strategies, confirming that the simplest Mult hashing (bernstein, FNV*, x17, sdbm) always beat "better" hash functions (Tabulation, Murmur, Farm, ...) when used in a hash table.
+The fast hash functions tested here are recommendable as fast for file digests and maybe bigger databases, but not for 32bit hash tables. The "Quality problems" lead to less uniform distribution, i.e. more collisions and worse performance, but are rarely related to real security attacks, just the 2nd sanity zeroes test against \0
invariance is security relevant.
+Columns
+MiB/sec: The average of the Bulk key speed test for alignments 0-7 with 262144-byte keys. The higher the better.
+cycl./hash: The average of the Small key speed test for 1-31 byte keys. The smaller the better.
+cycl./map: The result of the Hashmap test for /usr/dict/words with std::unordered_map get queries, with the standard deviation in brackets. This tests the inlinability of the hash function (see size). The smaller the better.
+size: The object size in byte on AMD64. This affects the inlinability in e.g. hash tables. The smaller the better.
+Quality problems: See the failures in the linked doc. The less the better.
+Other
+
+SECURITY
+The hash table attacks described in SipHash against City, Murmur or Perl JenkinsOAAT or at Hash Function Lounge are not included here.
+Such an attack avoidance cannot be the problem of the hash function, but only the hash table collision resolution scheme. You can attack every single hash function, even the best and most secure if you detect the seed, e.g. from language (mis-)features, side-channel attacks, collision timings and independly the sort-order, so you need to protect your collision handling scheme from the worst-case O(n), i.e. separate chaining with linked lists. Linked lists chaining allows high load factors, but is very cache-unfriendly. The only recommendable linked list scheme is inlining the key or hash into the array. Nowadays everybody uses fast open addressing, even if the load factor needs to be ~50%, unless you use Cuckoo Hashing.
+I.e. the usage of SipHash for their hash table in Python 3.4, ruby, rust, systemd, OpenDNS, Haskell and OpenBSD is pure security theatre. SipHash is not secure enough for security purposes and not fast enough for general usage. Brute-force generation of ~32k collisions need 2-4m for all these hashes. siphash being the slowest needs max 4m, other typically max 2m30s, with <10s for practical 16k collision attacks with all hash functions. Using Murmur is usually slower than a simple Mult, even in the worst case. Provable secure is only uniform hashing, i.e. 2-5 independent Mult or Tabulation, or using a guaranteed logarithmic collision scheme (a tree) or a linear collision scheme, such as Robin Hood or Cockoo hashing with collision counting.
+One more note regarding security: Nowadays even SHA1 can be solved in a solver, like Z3 (or faster ones) for practical hash table collision attacks (i.e. 14-20 bits). All hash functions with less than 160 bits tested here cannot be considered "secure" at all.
+The '' vulnerability attack with binary keys is tested in the 2nd Sanity Zero test.
+CRYPTO
+The official NIST hash function testsuite does not do such extensive statistical tests, to search for weak ranges in the bits. Also crypto does not change the initial state, which we do here for our random 32bit seed. Crypto mostly cares about unreversable key -> hash functions without changing the initial fixed state and timings/sidechannel attacks.
+The NIST "Cryptographic Algorithm Validation Program" (CAVP) involves the testing of the implementations of FIPS-approved and NIST-recommended cryptographic algorithms. During the NIST SHA-3 competition, the testing methodology was borrowed from the "CAVP", as the KATs and MCTs of the SHA-3 Competition Test Suite were based on the CAVP tests for SHA-2. In addition to this, the “Extremely Long Message Test,” not present in the CAVP for SHA-2, required the submitters to generate the hash value corresponding to a message with a length of 1 GiB. “NIST - Cryptographic Algorithm Validation Program (CAVP),” June 2017. Available: http://csrc.nist.gov/groups/STM/cavp (No testing source code provided, just high-level descriptions)
+Two other independent third party testsuites found an extensive number of bugs and weaknesses in the SHA3 candidates. "Finding Bugs in Cryptographic Hash Function Implementations", Nicky Mouha, Mohammad S Raunak, D. Richard Kuhn, and Raghu Kacker, 2017. https://eprint.iacr.org/2017/891.pdf
+Maybe independent researchers should come together to do a better public SHA-4 round, based on better and more testing methods, open source code for the tests, and using standard industry practices, such as valgrind, address-sanitizer and ubsan to detect obvious bugs.
+PROBLEMS
+
+Typical undefined behaviour (UB ) problems:
+
+
+Misaligned
+
+Many word-wise hashes (in opposite to safe byte-wise processing)
+don't check the input buffer for proper word alignment, which will
+fail with ubsan or Sparc. word being int32_t
or int64_t
or even
+more. On some old RISC hardware this will be a BUS error, you can
+even let Intel HW generate such a bus error by setting some CPU
+flag. But generally using misaligned accesses is fine.
+
+These are: mx3, Spooky, mirhash (but not strict ), MUM, fasthash,
+Murmur3*, Murmur2*, metrohash* (all but cmetro*), Crap8,
+beamsplitter, lookup3, fletcher4, fletcher2, all sanmayce
+FNV1a_ variants (FNV1a_YT, FNV1A_Pippip_Yurii,
+FNV1A_Totenschiff, ...), fibonacci
+
+The usual mitigation is to check the buffer alignment either in the
+caller, provide a pre-processing loop for the misaligned prefix, or
+copy the whole buffer into a fresh aligned area.
+Put that extra code inside #ifdef HAVE_ALIGNED_ACCESS_REQUIRED
.
+
+
+oob - Out of bounds
+
+Some hash function assume a padded input buffer which can be
+accessed past its length up to the word size. This allows for faster
+loop processing, as no 2nd loop or switch table for the rest is
+needed, but it requires a cooperative calling enviroment and is as
+such considered cheating.
+
+Signed integer overflow
+
+A simple type error, this hash needs to use unsigned integer types
+internally, to avoid undefined and inconsistent behaviour.
+i.e. SuperFastHash: signed integer overflow: -2147483641 + -113 cannot
+be represented in type 'int'
+
+shift exponent overflow
+
+With: FNV1A_Pippip_Yurii, FNV1A_Totenschiff, pair_multiply_shift, sumhash32
+shift exponent 64 is too large for 64-bit type 'long unsigned int'
+
+
diff --git a/doc/hasshe2.txt b/doc/hasshe2.txt
index c08948d1..a853d05f 100644
--- a/doc/hasshe2.txt
+++ b/doc/hasshe2.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x12c9e943aca4 - 0x12c9e943ac38). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.971 bytes/cycle - 2778.15 MiB/sec @ 3 ghz
-Alignment 6 - 0.970 bytes/cycle - 2773.99 MiB/sec @ 3 ghz
-Alignment 5 - 0.969 bytes/cycle - 2773.45 MiB/sec @ 3 ghz
-Alignment 4 - 0.970 bytes/cycle - 2774.48 MiB/sec @ 3 ghz
-Alignment 3 - 0.969 bytes/cycle - 2772.73 MiB/sec @ 3 ghz
-Alignment 2 - 0.970 bytes/cycle - 2774.19 MiB/sec @ 3 ghz
-Alignment 1 - 0.969 bytes/cycle - 2771.42 MiB/sec @ 3 ghz
-Alignment 0 - 0.969 bytes/cycle - 2772.73 MiB/sec @ 3 ghz
-Average - 0.970 bytes/cycle - 2773.89 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 56.59 cycles/hash
-Small key speed test - 2-byte keys - 56.59 cycles/hash
-Small key speed test - 3-byte keys - 56.62 cycles/hash
-Small key speed test - 4-byte keys - 56.00 cycles/hash
-Small key speed test - 5-byte keys - 56.67 cycles/hash
-Small key speed test - 6-byte keys - 56.00 cycles/hash
-Small key speed test - 7-byte keys - 56.55 cycles/hash
-Small key speed test - 8-byte keys - 56.00 cycles/hash
-Small key speed test - 9-byte keys - 56.62 cycles/hash
-Small key speed test - 10-byte keys - 56.55 cycles/hash
-Small key speed test - 11-byte keys - 56.60 cycles/hash
-Small key speed test - 12-byte keys - 56.61 cycles/hash
-Small key speed test - 13-byte keys - 56.57 cycles/hash
-Small key speed test - 14-byte keys - 56.66 cycles/hash
-Small key speed test - 15-byte keys - 56.85 cycles/hash
-Small key speed test - 16-byte keys - 56.32 cycles/hash
-Small key speed test - 17-byte keys - 72.46 cycles/hash
-Small key speed test - 18-byte keys - 72.42 cycles/hash
-Small key speed test - 19-byte keys - 72.42 cycles/hash
-Small key speed test - 20-byte keys - 72.52 cycles/hash
-Small key speed test - 21-byte keys - 72.77 cycles/hash
-Small key speed test - 22-byte keys - 72.88 cycles/hash
-Small key speed test - 23-byte keys - 72.87 cycles/hash
-Small key speed test - 24-byte keys - 72.77 cycles/hash
-Small key speed test - 25-byte keys - 72.77 cycles/hash
-Small key speed test - 26-byte keys - 72.92 cycles/hash
-Small key speed test - 27-byte keys - 72.89 cycles/hash
-Small key speed test - 28-byte keys - 72.77 cycles/hash
-Small key speed test - 29-byte keys - 72.79 cycles/hash
-Small key speed test - 30-byte keys - 72.83 cycles/hash
-Small key speed test - 31-byte keys - 72.87 cycles/hash
-Average 64.347 cycles/hash
+Alignment 7 - 1.010 bytes/cycle - 2889.43 MiB/sec @ 3 ghz
+Alignment 6 - 1.011 bytes/cycle - 2892.91 MiB/sec @ 3 ghz
+Alignment 5 - 1.008 bytes/cycle - 2882.90 MiB/sec @ 3 ghz
+Alignment 4 - 0.997 bytes/cycle - 2852.78 MiB/sec @ 3 ghz
+Alignment 3 - 1.008 bytes/cycle - 2882.91 MiB/sec @ 3 ghz
+Alignment 2 - 1.007 bytes/cycle - 2881.86 MiB/sec @ 3 ghz
+Alignment 1 - 1.008 bytes/cycle - 2883.29 MiB/sec @ 3 ghz
+Alignment 0 - 1.004 bytes/cycle - 2873.32 MiB/sec @ 3 ghz
+Average - 1.007 bytes/cycle - 2879.93 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 54.83 cycles/hash
+Small key speed test - 2-byte keys - 54.74 cycles/hash
+Small key speed test - 3-byte keys - 54.74 cycles/hash
+Small key speed test - 4-byte keys - 54.82 cycles/hash
+Small key speed test - 5-byte keys - 54.78 cycles/hash
+Small key speed test - 6-byte keys - 54.74 cycles/hash
+Small key speed test - 7-byte keys - 54.62 cycles/hash
+Small key speed test - 8-byte keys - 54.65 cycles/hash
+Small key speed test - 9-byte keys - 54.77 cycles/hash
+Small key speed test - 10-byte keys - 54.76 cycles/hash
+Small key speed test - 11-byte keys - 54.76 cycles/hash
+Small key speed test - 12-byte keys - 54.74 cycles/hash
+Small key speed test - 13-byte keys - 54.74 cycles/hash
+Small key speed test - 14-byte keys - 54.75 cycles/hash
+Small key speed test - 15-byte keys - 54.78 cycles/hash
+Small key speed test - 16-byte keys - 54.00 cycles/hash
+Small key speed test - 17-byte keys - 70.23 cycles/hash
+Small key speed test - 18-byte keys - 70.24 cycles/hash
+Small key speed test - 19-byte keys - 70.22 cycles/hash
+Small key speed test - 20-byte keys - 70.23 cycles/hash
+Small key speed test - 21-byte keys - 70.23 cycles/hash
+Small key speed test - 22-byte keys - 70.25 cycles/hash
+Small key speed test - 23-byte keys - 70.22 cycles/hash
+Small key speed test - 24-byte keys - 70.23 cycles/hash
+Small key speed test - 25-byte keys - 70.23 cycles/hash
+Small key speed test - 26-byte keys - 70.23 cycles/hash
+Small key speed test - 27-byte keys - 70.25 cycles/hash
+Small key speed test - 28-byte keys - 70.27 cycles/hash
+Small key speed test - 29-byte keys - 70.22 cycles/hash
+Small key speed test - 30-byte keys - 70.23 cycles/hash
+Small key speed test - 31-byte keys - 70.22 cycles/hash
+Small key speed test - 32-byte keys - 70.16 cycles/hash
+Average 62.465 cycles/hash
+Average, weighted by key length freq. 61.474 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 54.665 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/i686.html b/doc/i686.html
index be394994..1610e9ee 100644
--- a/doc/i686.html
+++ b/doc/i686.html
@@ -1200,6 +1200,14 @@ SMhasher
+CityCrc256
+19603.25
+42.27
+149.40 (4)
+
+
+
+
FarmHash32
11215.25
59.39
@@ -1519,12 +1527,22 @@ SMhasher
1128
+
+gxhash64
+1017.15
+178.25
+313.64 (9)
+
+
+
Other timings:
Default AMD Ryzen 5 PRO 3350G 3.6GHz
+ fast AMD EPYC 9554P 64-Core Processor (Server from 2024)
+ Intel i7-6820HQ 3.5GHz (Lenovo P50 from 2024)
AMD Ryzen 3 3200U 3.5GHz laptop
Intel i5-2300 2.8GHz
Intel i7-4650 1.7GHz (Mac Air)
diff --git a/doc/i7.html b/doc/i7.html
new file mode 100644
index 00000000..31e2ebb4
--- /dev/null
+++ b/doc/i7.html
@@ -0,0 +1,1926 @@
+
+
+
+
+
+
+
+
+SMhasher
+
+Alternative timings with Intel i7-6820H 3.5GHz (Lenovo P50 laptop from 2024)
+
+
+
+
+
+
+
+donothing32
+20441668.83
+3.38
+-
+13
+test NOP
+
+
+donothing64
+20423075.93
+3.56
+-
+13
+test NOP
+
+
+donothing128
+20276221.86
+3.65
+-
+13
+test NOP
+
+
+NOP_OAAT_read64
+17006485.47
+7.55
+-
+47
+test NOP
+
+
+BadHash
+817.60
+58.33
+-
+47
+test FAIL
+
+
+sumhash
+13306.97
+23.18
+-
+363
+test FAIL
+
+
+sumhash32
+61464.18
+17.41
+-
+863
+UB , test FAIL
+
+
+multiply_shift
+7922.65
+18.14
+115.96 (3)
+345
+fails all tests
+
+
+pair_multiply_shift
+7461.69
+18.57
+113.63 (3)
+609
+fails all tests
+
+
+
+
+
+
+
+
+
+
+crc32
+449.95
+109.53
+148.96 (2)
+422
+insecure, 8590x collisions, distrib
+
+
+md5_32
+523.01
+392.66
+527.09 (12)
+4419
+
+
+
+md5_64
+508.31
+403.84
+542.20 (4)
+4419
+
+
+
+md5-128
+505.22
+418.86
+546.38 (3)
+4419
+
+
+
+sha1_32
+700.25
+616.62
+813.05 (9)
+5126
+Sanity, Cyclic low32, collisions, 36.6% distrib
+
+
+sha1_64
+701.16
+596.28
+756.52 (6)
+5126
+Sanity, Cyclic low32, collisions, 36.6% distrib
+
+
+sha1-160
+687.36
+599.63
+756.88 (11)
+5126
+Comb/Cyclic low32
+
+
+sha2-224
+253.91
+753.27
+902.52 (12)
+
+Cyclic low32
+
+
+sha2-224_64
+252.14
+744.38
+902.29 (5)
+
+Cyclic low32
+
+
+sha2-256
+255.65
+746.42
+897.15 (11)
+
+
+
+
+sha2-256_64
+254.19
+745.72
+883.49 (16)
+
+
+
+
+sha1ni
+2019.96
+135.84
+564.40 (6)
+989
+insecure,sanity, Permutation, Zeroes, amd epyc only
+
+
+sha1ni_32
+2019.94
+136.82
+589.46 (1)
+989
+insecure,sanity, Permutation, Zeroes, TwoBytes, amd epyc only
+
+
+sha2ni-256
+1906.77
+145.47
+603.08 (22)
+4241
+insecure,sanity, Permutation, Zeroes, amd epyc only
+
+
+sha2ni-256_64
+1920.36
+145.47
+603.08 (2)
+4241
+insecure,sanity, Permutation, Zeroes, TwoBytes, amd epyc only
+
+
+blake3_c
+1736.54
+252.64
+396.89 (4)
+
+no 32bit portability
+
+
+rmd128
+466.95
+412.06
+550.68 (7)
+
+
+
+
+rmd160
+294.70
+636.17
+787.17 (11)
+
+
+
+
+rmd256
+525.27
+365.89
+504.28 (4)
+
+
+
+
+edonr224
+962.85
+250.03
+380.68 (8)
+
+
+
+
+edonr256
+962.01
+250.70
+374.82 (10)
+
+
+
+
+blake2s-128
+320.61
+600.00
+735.95 (20)
+
+
+
+
+blake2s-160
+320.46
+608.10
+757.64 (16)
+
+
+
+
+blake2s-224
+318.31
+608.03
+741.62 (18)
+
+
+
+
+blake2s-256
+318.40
+602.45
+753.04 (3)
+
+
+
+
+blake2s-256_64
+321.12
+603.62
+749.57 (4)
+
+
+
+
+blake2b-160
+538.85
+724.16
+874.07 (13)
+
+
+
+
+blake2b-224
+532.68
+724.41
+868.16 (8)
+
+
+
+
+blake2b-256
+544.96
+718.41
+860.47 (14)
+
+Sparse high 32-bit
+
+
+blake2b-256_64
+546.43
+720.82
+855.17 (16)
+
+
+
+
+asconhashv12
+161.69
+779.50
+771.29 (13)
+6490
+
+
+
+asconhashv12_64
+166.91
+359.63
+352.15 (8)
+4341
+
+
+
+sha3-256
+146.15
+2593.47
+2772.49 (48)
+
+PerlinNoise
+
+
+sha3-256_64
+148.60
+2578.99
+2746.33 (19)
+
+PerlinNoise
+
+
+hasshe2
+3147.98
+56.37
+171.11 (4)
+445
+Permutation,TwoBytes,Zeroes,Seed
+
+
+poly_1_mersenne
+1554.57
+46.07
+153.00 (4)
+479
+fails most tests
+
+
+poly_2_mersenne
+1554.76
+53.07
+157.79 (2)
+479
+
+
+
+poly_3_mersenne
+1554.58
+60.65
+159.09 (4)
+479
+
+
+
+poly_4_mersenne
+1554.65
+67.19
+179.10 (4)
+479
+
+
+
+tabulation32
+9368.82
+24.05
+143.58 (4)
+848
+collisions
+
+
+tabulation
+9686.05
+28.10
+118.73 (3)
+554
+
+
+
+crc32_hw
+10093.06
+27.96
+136.77 (3)
+653
+insecure, 100% bias, collisions, distrib, machine-specific (SSE4.2/NEON)
+
+
+crc32_hw1
+28281.40
+33.99
+142.64 (2)
+671
+insecure, 100% bias, collisions, distrib, machine-specific (x86 SSE4.2)
+
+
+crc64_hw
+10093.99
+28.85
+105.58 (3)
+652
+insecure, 100% bias, collisions, distrib, machine-specific (SSE4.2/NEON)
+
+
+crc32_pclmul
+13138.45
+93.25
+420.88 (8)
+481
+insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+
+
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+o1hash
+11451188.18
+11.09
+111.19 (2)
+101
+insecure, zeros, fails all tests
+
+
+fibonacci
+26736.26
+17.64
+556.07 (9)
+1692
+UB , zeros, fails all tests
+
+
+FNV1a
+946.85
+57.47
+144.84 (2)
+204
+zeros, fails all tests
+
+
+FNV1A_Totenschiff
+7572.43
+20.25
+148.20 (5)
+270
+UB , zeros, fails all tests
+
+
+FNV1A_Pippip_Yurii
+7572.33
+19.50
+144.54 (2)
+147
+UB , sanity, fails all tests
+
+
+FNV1a_YT
+17222.94
+22.84
+146.26 (1)
+321
+UB , fails all tests
+
+
+FNV2
+7573.86
+25.02
+116.38 (3)
+278
+fails all tests
+
+
+FNV64
+947.16
+57.57
+95.54 (3)
+79
+fails all tests
+
+
+FNV128
+519.50
+95.47
+158.08 (4)
+171
+fails all tests
+
+
+k-hash32
+6015.67
+40.10
+154.83 (3)
+808
+UB , insecure, zeros, fails all tests
+
+
+k-hash64
+5914.66
+33.99
+152.13 (3)
+609
+UB , insecure, zeros, fails all tests
+
+
+fletcher2
+15163.85
+14.08
+217.70 (2)
+248
+UB , fails all tests
+
+
+fletcher4
+15169.91
+14.08
+231.26 (4)
+371
+UB , fails all tests
+
+
+bernstein
+1261.93
+44.71
+141.49 (4)
+41
+fails all tests
+
+
+sdbm
+947.16
+55.28
+145.62 (2)
+41
+fails all tests
+
+
+x17
+752.17
+71.20
+153.72 (4)
+79
+99.98% bias, fails all tests
+
+
+libiberty
+614.71
+79.97
+150.73 (2)
+37
+insecure, 100% bias, fails all tests
+
+
+gcc
+622.13
+80.88
+140.50 (3)
+39
+insecure, 100% bias, fails all tests
+
+
+JenkinsOOAT
+754.66
+86.91
+174.26 (2)
+153
+53.5% bias, fails all tests
+
+
+JenkinsOOAT_perl
+754.13
+73.50
+154.84 (2)
+65
+1.5-11.5% bias, 7.2x collisions, LongNeighbors
+
+
+MicroOAAT
+1196.39
+47.69
+145.11 (2)
+68
+100% bias, distrib
+
+
+beamsplitter
+756.38
+769.59
+868.51 (24)
+
+UB , too many bad seeds
+
+
+discohash
+2951.62
+222.03
+343.63 (4)
+1294
+
+
+
+pearsonhash64
+420.66
+120.06
+115.83 (2)
+
+ Avalanche, Seed, SSSE3 only. broken MSVC
+
+
+pearsonhash128
+412.87
+119.26
+127.74 (3)
+
+ Avalanche, Seed, SSSE3 only. broken MSVC
+
+
+pearsonhash256
+406.57
+123.86
+129.94 (2)
+
+ Avalanche, Seed, SSSE3 only. broken MSVC
+
+
+VHASH_32
+17115.52
+46.70
+171.15 (3)
+1231
+sanity, Seed, MomentChi2
+
+
+VHASH_64
+17189.69
+46.75
+169.91 (3)
+1231
+sanity, Seed, Sparse
+
+
+farsh32
+34547.20
+46.77
+176.59 (2)
+944
+insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors
+
+
+farsh64
+17914.05
+90.65
+222.42 (1)
+944
+insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors
+
+
+farsh128
+8886.66
+177.42
+244.13 (15)
+
+??
+
+
+farsh256
+4406.25
+353.05
+435.68 (3)
+
+??
+
+
+jodyhash32
+3030.02
+26.30
+143.95 (2)
+102
+bias, collisions, distr, LongNeighbors
+
+
+jodyhash64
+6424.07
+21.78
+127.83 (3)
+118
+bias, collisions, distr, LongNeighbors
+
+
+lookup3
+2854.60
+31.01
+146.82 (2)
+341
+UB , 28% bias, collisions, 30% distr
+
+
+superfast
+2831.61
+35.77
+145.38 (1)
+210
+UB , bad seed 0, 91% bias, 5273.01x collisions, 37% distr, BIC
+
+
+MurmurOAAT
+622.64
+82.50
+143.95 (2)
+47
+collisions, 99.998% distr., BIC, bad seed 0, LongNeighbors
+
+
+Crap8
+3787.59
+26.84
+150.29 (3)
+342
+UB , 2.42% bias, collisions, 2% distrib
+
+
+Murmur1
+2523.81
+36.68
+146.79 (1)
+
+UB , fails all tests, 1 bad seed
+
+
+Murmur2
+3787.38
+30.68
+144.95 (3)
+358
+UB , 1 bad seed, 1.7% bias, 81x coll, 1.7% distrib, BIC
+
+
+Murmur2A
+3787.54
+34.54
+150.86 (1)
+407
+UB , 1 bad seed, 12.7% bias, LongNeighbors
+
+
+Murmur2B
+7569.33
+27.64
+116.94 (3)
+433
+UB , 1.8% bias, collisions, 3.4% distrib, BIC
+
+
+Murmur2C
+5034.07
+36.53
+118.05 (3)
+444
+UB , 2^32 bad seeds, 91% bias, collisions, distr, BIC, LongNeighbors
+
+
+Murmur3A
+3030.24
+38.87
+145.21 (4)
+351
+UB , Moment Chi2 69
+
+
+PMurHash32
+3030.32
+39.82
+145.92 (3)
+1862
+Moment Chi2 69
+
+
+Murmur3C
+5030.65
+42.78
+154.46 (4)
+859
+UB , LongNeighbors, DiffDist
+
+
+PMPML_32
+10159.91
+38.73
+150.60 (4)
+1084
+Avalanche >512, unseeded: Seed, MomentChi2
+
+
+PMPML_64
+13698.81
+33.21
+131.04 (4)
+1305
+unseeded: Seed, MomentChi2
+
+
+xxHash32
+7535.60
+36.01
+144.34 (1)
+738
+LongNeighbors, collisions with 4bit diff, MomentChi2 220
+
+
+metrohash64_1
+16734.47
+30.71
+119.45 (3)
+624
+UB , LongNeighbors, BIC, MomentChi2
+
+
+metrohash64_2
+16665.62
+30.21
+118.92 (4)
+627
+UB , LongNeighbors
+
+
+metrohash64crc_1
+28351.92
+33.41
+114.34 (3)
+632
+UB , cyclic collisions 8 byte, BIC, MomentChi2, machine-specific (SSE4.2/NEON)
+
+
+metrohash64crc_2
+27910.45
+33.42
+138.53 (4)
+632
+UB , cyclic collisions 8 byte, BIC, machine-specific (SSE4.2/NEON)
+
+
+metrohash128_1
+16584.09
+53.73
+153.71 (1)
+773
+UB , LongNeighbors
+
+
+metrohash128_2
+16548.40
+53.63
+160.09 (4)
+773
+UB , LongNeighbors
+
+
+cmetrohash64_1o
+15175.27
+29.47
+112.38 (2)
+3506
+LongNeighbors, MomentChi2
+
+
+cmetrohash64_1
+16695.39
+30.73
+116.66 (3)
+652
+LongNeighbors, BIC, MomentChi2
+
+
+cmetrohash64_2
+16284.68
+30.03
+113.11 (3)
+655
+LongNeighbors
+
+
+City64noSeed
+15871.88
+22.55
+118.77 (2)
+1038
+Avalanche, Sparse, TwoBytes, MomentChi2, Seed
+
+
+City64
+16062.40
+34.19
+139.09 (2)
+1120
+Sparse, TwoBytes
+
+
+t1ha1_64be
+10988.66
+23.50
+134.47 (2)
+555
+Avalanche
+
+
+t1ha0_32le
+8503.61
+37.79
+127.41 (3)
+509
+Sparse, LongNeighbors
+
+
+t1ha0_32be
+7924.95
+40.12
+134.20 (2)
+533
+Sparse, LongNeighbors
+
+
+t1ha2_stream
+17121.09
+57.46
+170.05 (5)
+1665
+Sparse, Permutation, LongNeighbors
+
+
+t1ha2_stream128
+17045.74
+71.02
+177.43 (4)
+1665
+Sparse, Permutation, LongNeighbors
+
+
+aesnihash
+5771.48
+39.41
+164.01 (4)
+1209
+fails many tests, machine-specific (x64 AES-NI)
+
+
+falkhash
+46580.43
+84.93
+208.52 (4)
+264
+Sparse, LongNeighbors, machine-specific (x64 AES-NI)
+
+
+MeowHash
+39575.85
+50.54
+173.16 (2)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+MeowHash64low
+39764.96
+50.60
+167.45 (4)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+MeowHash32low
+39658.04
+50.55
+182.15 (2)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+t1ha1_64le
+16757.34
+21.36
+132.81 (4)
+517
+Avalanche
+
+
+tifuhash_64
+177.83
+433.31
+390.75 (9)
+276
+
+
+
+floppsyhash
+175.25
+497.71
+455.63 (3)
+623
+
+
+
+chaskey
+1430.27
+84.83
+194.17 (3)
+1609
+PerlinNoise
+
+
+SipHash
+1287.22
+105.98
+214.26 (2)
+1071
+
+
+
+HalfSipHash
+1343.98
+67.02
+179.48 (1)
+700
+zeroes
+
+
+GoodOAAT
+1255.70
+53.38
+144.85 (4)
+237
+
+
+
+pearsonbhash64
+2161.24
+80.79
+154.80 (2)
+683
+
+
+
+pearsonbhash128
+2002.31
+86.61
+162.08 (6)
+1134
+
+
+
+pearsonbhash256
+1095.15
+150.78
+213.35 (5)
+844
+
+
+
+prvhash64_64m
+3416.64
+37.94
+140.71 (2)
+349
+
+
+
+prvhash64_64
+3413.46
+37.72
+140.24 (1)
+384
+
+
+
+prvhash64_128
+3466.79
+54.22
+172.78 (4)
+718
+
+
+
+prvhash64s_64
+7645.68
+199.20
+311.86 (3)
+2640
+
+
+
+prvhash64s_128
+7080.76
+252.15
+352.53 (7)
+2799
+
+
+
+SipHash13
+2545.14
+75.67
+189.47 (2)
+778
+0.9% bias
+
+
+discohash1
+6093.46
+149.94
+265.41 (2)
+1294
+bad seeds
+
+
+discohash1-128
+6096.21
+176.41
+285.89 (2)
+1294
+
+
+
+discohash2
+5685.64
+150.95
+257.10 (6)
+1294
+
+
+
+discohash2-128
+5676.47
+176.82
+300.90 (3)
+1294
+
+
+
+discoNONG
+3646.62
+291.44
+391.51 (10)
+
+bad seeds
+
+
+TSip
+5029.46
+37.81
+152.81 (2)
+519
+!msvc
+
+
+aesni
+31837.91
+25.73
+133.63 (2)
+519
+machine-specific (x64 AES-NI)
+
+
+aesni-low
+32140.74
+22.56
+145.33 (2)
+519
+machine-specific (x64 AES-NI)
+
+
+seahash
+10575.49
+41.35
+155.60 (1)
+871
+PerlinNoise, !msvc
+
+
+seahash32low
+10598.09
+41.33
+168.76 (4)
+871
+PerlinNoise, !msvc
+
+
+clhash
+27843.77
+50.30
+166.46 (4)
+1809
+PerlinNoise, machine-specific (SSE4.2/NEON)
+
+
+HighwayHash64
+6242.58
+99.55
+248.41 (3)
+2546
+
+
+
+Murmur3F
+7555.60
+41.32
+129.45 (2)
+699
+UB
+
+
+fasthash32
+7556.82
+29.63
+147.37 (3)
+566
+UB
+
+
+fasthash64
+7562.78
+27.89
+114.84 (2)
+509
+UB , Moment Chi2 5159 !
+
+
+MUM
+13848.16
+26.20
+124.28 (2)
+1912
+UB , too many bad seeds, machine-specific (32/64 differs)
+
+
+MUMlow
+12506.12
+26.17
+154.06 (2)
+1912
+UB , 5 bad seeds
+
+
+xmsx32
+2516.98
+34.91
+147.18 (3)
+192
+2 bad seeds
+
+
+mirhash
+8318.21
+27.50
+131.91 (2)
+1112
+2^36 bad seeds, UB , LongNeighbors, machine-specific (32/64 differs)
+
+
+mirhash32low
+7548.30
+27.50
+152.37 (2)
+1112
+4 bad seeds, UB , Cyclic, LongNeighbors, machine-specific (32/64 differs)
+
+
+mirhashstrict
+4150.37
+43.31
+126.84 (2)
+1112
+
+
+
+mirhashstrict32low
+4151.47
+43.41
+161.10 (2)
+1112
+1 bad seed, MomentChi2 9
+
+
+mx3
+10891.79
+36.59
+125.71 (4)
+734
+UB
+
+
+pengyhash
+18238.41
+54.30
+167.28 (4)
+421
+
+
+
+City32
+6808.79
+43.11
+153.54 (3)
+1319
+
+
+
+City64low
+15681.72
+37.56
+159.27 (3)
+1120
+
+
+
+City128
+16830.99
+65.77
+174.17 (3)
+1841
+
+
+
+CityCrc128
+19603.25
+42.27
+149.40 (4)
+295
+
+
+
+CityCrc256
+19617.92
+124.94
+256.26 (4)
+
+
+
+
+FarmHash32
+25389.70
+34.31
+156.76 (4)
+11489
+machine-specific (x64 SSE4/AVX/NEON)
+
+
+FarmHash64
+15879.07
+34.14
+136.96 (1)
+3758
+
+
+
+FarmHash128
+16915.90
+53.40
+157.75 (4)
+163
+
+
+
+farmhash32_c
+25319.83
+34.44
+156.46 (4)
+762
+machine-specific (x64 SSE4/AVX/NEON)
+
+
+farmhash64_c
+15894.63
+33.88
+139.61 (2)
+3688
+
+
+
+farmhash128_c
+16990.38
+53.79
+155.00 (3)
+1890
+
+
+
+metrohash64
+16441.62
+30.11
+114.08 (1)
+624
+LongNeighbors
+
+
+metrohash128
+16381.59
+53.50
+159.15 (3)
+624
+UB
+
+
+metrohash128crc_1
+27675.06
+57.50
+162.08 (6)
+723
+UB , machine-specific (SSE4.2/NEON)
+
+
+metrohash128crc_2
+28400.23
+57.45
+173.16 (4)
+723
+UB , machine-specific (SSE4.2/NEON)
+
+
+xxHash64
+14908.70
+37.43
+133.44 (1)
+1999
+
+
+
+Spooky32
+15223.89
+40.10
+148.15 (2)
+2221
+UB
+
+
+Spooky64
+15228.70
+40.14
+136.12 (1)
+2221
+UB
+
+
+Spooky128
+15309.26
+44.50
+130.59 (1)
+2221
+UB
+
+
+SpookyV2_32
+15332.23
+41.02
+150.60 (3)
+2069
+
+
+
+SpookyV2_64
+14752.24
+41.07
+129.27 (3)
+2069
+
+
+
+SpookyV2_128
+15267.49
+45.26
+134.43 (3)
+2069
+
+
+
+t1ha2_atonce
+17337.54
+27.48
+135.51 (4)
+541
+
+
+
+t1ha2_atonce128
+16923.85
+43.32
+151.72 (1)
+613
+LongNeighbors
+
+
+t1ha0_aes_noavx
+28391.52
+27.54
+137.62 (2)
+925
+LongNeighbors, machine-specific (x86 AES-NI)
+
+
+t1ha0_aes_avx1
+28407.52
+27.77
+135.53 (3)
+843
+LongNeighbors, machine-specific (x64 AVX)
+
+
+t1ha0_aes_avx2
+48159.93
+27.37
+131.29 (1)
+792
+LongNeighbors, machine-specific (x64 AVX2)
+
+
+ahash64
+10923.49
+31.33
+528.54 (14)
+412
+rust
+
+
+xxh3
+44601.42
+20.89
+128.63 (1)
+744
+Moment Chi2 14974, BIC
+
+
+xxh3low
+43628.98
+20.88
+149.85 (1)
+756
+Moment Chi2 1.8e+9 !
+
+
+xxh128
+41145.80
+22.72
+123.34 (4)
+1012
+Moment Chi2 14974
+
+
+xxh128low
+40849.01
+22.41
+128.38 (1)
+1012
+Moment Chi2 14974, BIC
+
+
+MeowHash
+39575.85
+50.54
+173.16 (2)
+1764
+Sparse low32, machine-specific (x64 AES-NI)
+
+
+MeowHash32low
+39658.04
+50.55
+182.15 (2)
+1764
+Sparse, machine-specific (x64 AES-NI)
+
+
+wyhash
+24767.30
+21.49
+128.68 (3)
+474
+
+
+
+wyhash32
+2532.89
+37.95
+222.17 (4)
+426
+4 bad and broken seeds, 32-bit
+
+
+wyhash32low
+24392.32
+21.50
+145.29 (3)
+474
+5 bad seeds
+
+
+w1hash
+22549.61
+23.78
+128.68 (3)
+
+
+
+
+rapidhash
+23818.36
+22.31
+123.70 (1)
+574
+
+
+
+rapidhash_unrolled
+24836.76
+22.72
+120.26 (2)
+782
+
+
+
+umash32
+30801.43
+29.58
+149.51 (4)
+1530
+
+
+
+umash32_hi
+30702.11
+30.53
+156.41 (4)
+1530
+
+
+
+umash64
+30586.04
+29.96
+134.88 (1)
+1530
+
+
+
+umash128
+16649.41
+34.32
+136.95 (2)
+1530
+
+
+
+halftime_hash64
+6724.84
+69.69
+192.46 (2)
+1530
+
+
+
+halftime_hash128
+22890.50
+71.08
+203.53 (2)
+1530
+
+
+
+halftime_hash256
+38750.61
+75.28
+210.22 (8)
+1530
+
+
+
+halftime_hash512
+36330.85
+75.95
+211.73 (2)
+1530
+
+
+
+nmhash32
+23889.43
+47.65
+165.42 (3)
+2445
+
+
+
+nmhash32x
+23996.53
+31.79
+157.63 (2)
+1494
+
+
+
+k-hashv32
+10843.74
+38.41
+157.94 (2)
+1280
+
+
+
+k-hashv64
+10820.69
+37.75
+129.51 (2)
+1279
+
+
+
+komihash
+18568.42
+24.53
+128.57 (1)
+728
+
+
+
+polymur
+14430.58
+31.03
+133.21 (1)
+1128
+
+
+
+gxhash64
+45409.33
+29.21
+145.25 (3)
+
+
+
+
+
+
+Other timings:
+
+
+Summary
+I added some SSE assisted hashes and fast intel/arm CRC32-C and AES HW variants, but not the fastest crcutil yet. See our crcutil results . See also the old https://code.google.com/p/smhasher/w/list .
+So the fastest hash functions on x86_64 without quality problems are:
+
+wyhash v3
+t1ha2_atonce
+umash
+xxh3low
+metrohash64crc (x86 only)
+FarmHash (not portable, too machine specific: 64 vs 32bit, old gcc, ... )
+Spooky32
+fasthash
+MUM/mir (different results on 32/64-bit archs )
+
+Hash functions for symbol tables or hash tables typically use 32 bit hashes, for databases, file systems and file checksums typically 64 or 128bit, for crypto now starting with 256 bit.
+Typical median key size in perl5 is 20, the most common 4. Similar for all other dynamic languages. See github.com/rurban/perl-hash-stats
+When used in a hash table the instruction cache will usually beat the CPU and throughput measured here. In my tests the smallest FNV1A
beats the fastest crc32_hw1
with Perl 5 hash tables . Even if those worse hash functions will lead to more collisions, the overall speed advantage and inline-ability beats the slightly worse quality. See e.g. A Seven-Dimensional Analysis of Hashing Methods and its Implications on Query Processing for a concise overview of the best hash table strategies, confirming that the simplest Mult hashing (bernstein, FNV*, x17, sdbm) always beat "better" hash functions (Tabulation, Murmur, Farm, ...) when used in a hash table.
+The fast hash functions tested here are recommendable as fast for file digests and maybe bigger databases, but not for 32bit hash tables. The "Quality problems" lead to less uniform distribution, i.e. more collisions and worse performance, but are rarely related to real security attacks, just the 2nd sanity zeroes test against \0
invariance is security relevant.
+Columns
+MiB/sec: The average of the Bulk key speed test for alignments 0-7 with 262144-byte keys. The higher the better.
+cycl./hash: The average of the Small key speed test for 1-31 byte keys. The smaller the better.
+cycl./map: The result of the Hashmap test for /usr/dict/words with std::unordered_map get queries, with the standard deviation in brackets. This tests the inlinability of the hash function (see size). The smaller the better.
+size: The object size in byte on AMD64. This affects the inlinability in e.g. hash tables. The smaller the better.
+Quality problems: See the failures in the linked doc. The less the better.
+Other
+
+SECURITY
+The hash table attacks described in SipHash against City, Murmur or Perl JenkinsOAAT or at Hash Function Lounge are not included here.
+Such an attack avoidance cannot be the problem of the hash function, but only the hash table collision resolution scheme. You can attack every single hash function, even the best and most secure if you detect the seed, e.g. from language (mis-)features, side-channel attacks, collision timings and independly the sort-order, so you need to protect your collision handling scheme from the worst-case O(n), i.e. separate chaining with linked lists. Linked lists chaining allows high load factors, but is very cache-unfriendly. The only recommendable linked list scheme is inlining the key or hash into the array. Nowadays everybody uses fast open addressing, even if the load factor needs to be ~50%, unless you use Cuckoo Hashing.
+I.e. the usage of SipHash for their hash table in Python 3.4, ruby, rust, systemd, OpenDNS, Haskell and OpenBSD is pure security theatre. SipHash is not secure enough for security purposes and not fast enough for general usage. Brute-force generation of ~32k collisions need 2-4m for all these hashes. siphash being the slowest needs max 4m, other typically max 2m30s, with <10s for practical 16k collision attacks with all hash functions. Using Murmur is usually slower than a simple Mult, even in the worst case. Provable secure is only uniform hashing, i.e. 2-5 independent Mult or Tabulation, or using a guaranteed logarithmic collision scheme (a tree) or a linear collision scheme, such as Robin Hood or Cockoo hashing with collision counting.
+One more note regarding security: Nowadays even SHA1 can be solved in a solver, like Z3 (or faster ones) for practical hash table collision attacks (i.e. 14-20 bits). All hash functions with less than 160 bits tested here cannot be considered "secure" at all.
+The '' vulnerability attack with binary keys is tested in the 2nd Sanity Zero test.
+CRYPTO
+The official NIST hash function testsuite does not do such extensive statistical tests, to search for weak ranges in the bits. Also crypto does not change the initial state, which we do here for our random 32bit seed. Crypto mostly cares about unreversable key -> hash functions without changing the initial fixed state and timings/sidechannel attacks.
+The NIST "Cryptographic Algorithm Validation Program" (CAVP) involves the testing of the implementations of FIPS-approved and NIST-recommended cryptographic algorithms. During the NIST SHA-3 competition, the testing methodology was borrowed from the "CAVP", as the KATs and MCTs of the SHA-3 Competition Test Suite were based on the CAVP tests for SHA-2. In addition to this, the “Extremely Long Message Test,” not present in the CAVP for SHA-2, required the submitters to generate the hash value corresponding to a message with a length of 1 GiB. “NIST - Cryptographic Algorithm Validation Program (CAVP),” June 2017. Available: http://csrc.nist.gov/groups/STM/cavp (No testing source code provided, just high-level descriptions)
+Two other independent third party testsuites found an extensive number of bugs and weaknesses in the SHA3 candidates. "Finding Bugs in Cryptographic Hash Function Implementations", Nicky Mouha, Mohammad S Raunak, D. Richard Kuhn, and Raghu Kacker, 2017. https://eprint.iacr.org/2017/891.pdf
+Maybe independent researchers should come together to do a better public SHA-4 round, based on better and more testing methods, open source code for the tests, and using standard industry practices, such as valgrind, address-sanitizer and ubsan to detect obvious bugs.
+PROBLEMS
+
+Typical undefined behaviour (UB ) problems:
+
+
+Misaligned
+
+Many word-wise hashes (in opposite to safe byte-wise processing)
+don't check the input buffer for proper word alignment, which will
+fail with ubsan or Sparc. word being int32_t
or int64_t
or even
+more. On some old RISC hardware this will be a BUS error, you can
+even let Intel HW generate such a bus error by setting some CPU
+flag. But generally using misaligned accesses is fine.
+
+These are: mx3, Spooky, mirhash (but not strict ), MUM, fasthash,
+Murmur3*, Murmur2*, metrohash* (all but cmetro*), Crap8,
+beamsplitter, lookup3, fletcher4, fletcher2, all sanmayce
+FNV1a_ variants (FNV1a_YT, FNV1A_Pippip_Yurii,
+FNV1A_Totenschiff, ...), fibonacci
+
+The usual mitigation is to check the buffer alignment either in the
+caller, provide a pre-processing loop for the misaligned prefix, or
+copy the whole buffer into a fresh aligned area.
+Put that extra code inside #ifdef HAVE_ALIGNED_ACCESS_REQUIRED
.
+
+
+oob - Out of bounds
+
+Some hash function assume a padded input buffer which can be
+accessed past its length up to the word size. This allows for faster
+loop processing, as no 2nd loop or switch table for the rest is
+needed, but it requires a cooperative calling enviroment and is as
+such considered cheating.
+
+Signed integer overflow
+
+A simple type error, this hash needs to use unsigned integer types
+internally, to avoid undefined and inconsistent behaviour.
+i.e. SuperFastHash: signed integer overflow: -2147483641 + -113 cannot
+be represented in type 'int'
+
+shift exponent overflow
+
+With: FNV1A_Pippip_Yurii, FNV1A_Totenschiff, pair_multiply_shift, sumhash32
+shift exponent 64 is too large for 64-bit type 'long unsigned int'
+
+
diff --git a/doc/intel.html b/doc/intel.html
index 0a53c2ea..794e3e51 100644
--- a/doc/intel.html
+++ b/doc/intel.html
@@ -256,6 +256,22 @@ SMhasher
+edonr224
+525.27
+365.89
+504.28 (4)
+
+
+
+
+edonr256
+525.27
+365.89
+504.28 (4)
+
+
+
+
blake2s-128
221.08
974.71
@@ -448,6 +464,38 @@ SMhasher
insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
o1hash
12439661.09
16.77
@@ -1560,6 +1608,30 @@ SMhasher
5 bad seeds
+w1hash
+2532.89
+37.95
+222.17 (4)
+
+
+
+
+rapidhash
+23789.79
+22.80
+138.71 (7)
+574
+
+
+
+rapidhash_unrolled
+23892.88
+23.41
+139.47 (12)
+782
+
+
+
umash32
4633.19
53.42
@@ -1663,12 +1735,30 @@ SMhasher
728
+
+polymur
+1017.15
+178.25
+313.64 (9)
+1128
+
+
+
+gxhash64
+1017.15
+178.25
+313.64 (9)
+
+
+
Other timings:
Default AMD Ryzen 5 PRO 3350G 3.6GHz
+ fast AMD EPYC 9554P 64-Core Processor (Server from 2024)
+ Intel i7-6820HQ 3.5GHz (Lenovo P50 from 2024)
AMD Ryzen 5 PRO 3350G 3.6GHz 32bit
AMD Ryzen3 3.5GHz (Lenovo E495)
Intel i7-4650 1.7GHz (Mac Air)
diff --git a/doc/md5-128.txt b/doc/md5-128.txt
index 67f0a50a..defa58ac 100644
--- a/doc/md5-128.txt
+++ b/doc/md5-128.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x158d9015840 - 0x158d90157f8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.124 bytes/cycle - 353.47 MiB/sec @ 3 ghz
-Alignment 6 - 0.124 bytes/cycle - 354.54 MiB/sec @ 3 ghz
-Alignment 5 - 0.124 bytes/cycle - 354.48 MiB/sec @ 3 ghz
-Alignment 4 - 0.124 bytes/cycle - 354.47 MiB/sec @ 3 ghz
-Alignment 3 - 0.124 bytes/cycle - 355.75 MiB/sec @ 3 ghz
-Alignment 2 - 0.124 bytes/cycle - 355.27 MiB/sec @ 3 ghz
-Alignment 1 - 0.124 bytes/cycle - 355.01 MiB/sec @ 3 ghz
-Alignment 0 - 0.124 bytes/cycle - 355.30 MiB/sec @ 3 ghz
-Average - 0.124 bytes/cycle - 354.79 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 666.54 cycles/hash
-Small key speed test - 2-byte keys - 665.78 cycles/hash
-Small key speed test - 3-byte keys - 666.00 cycles/hash
-Small key speed test - 4-byte keys - 665.35 cycles/hash
-Small key speed test - 5-byte keys - 664.82 cycles/hash
-Small key speed test - 6-byte keys - 666.49 cycles/hash
-Small key speed test - 7-byte keys - 665.14 cycles/hash
-Small key speed test - 8-byte keys - 686.96 cycles/hash
-Small key speed test - 9-byte keys - 688.93 cycles/hash
-Small key speed test - 10-byte keys - 686.99 cycles/hash
-Small key speed test - 11-byte keys - 682.32 cycles/hash
-Small key speed test - 12-byte keys - 682.21 cycles/hash
-Small key speed test - 13-byte keys - 685.27 cycles/hash
-Small key speed test - 14-byte keys - 681.70 cycles/hash
-Small key speed test - 15-byte keys - 678.81 cycles/hash
-Small key speed test - 16-byte keys - 677.28 cycles/hash
-Small key speed test - 17-byte keys - 681.03 cycles/hash
-Small key speed test - 18-byte keys - 679.41 cycles/hash
-Small key speed test - 19-byte keys - 677.45 cycles/hash
-Small key speed test - 20-byte keys - 675.40 cycles/hash
-Small key speed test - 21-byte keys - 676.81 cycles/hash
-Small key speed test - 22-byte keys - 677.08 cycles/hash
-Small key speed test - 23-byte keys - 676.59 cycles/hash
-Small key speed test - 24-byte keys - 676.07 cycles/hash
-Small key speed test - 25-byte keys - 677.55 cycles/hash
-Small key speed test - 26-byte keys - 678.64 cycles/hash
-Small key speed test - 27-byte keys - 674.93 cycles/hash
-Small key speed test - 28-byte keys - 676.24 cycles/hash
-Small key speed test - 29-byte keys - 675.16 cycles/hash
-Small key speed test - 30-byte keys - 677.15 cycles/hash
-Small key speed test - 31-byte keys - 681.87 cycles/hash
-Average 676.514 cycles/hash
+Alignment 7 - 0.120 bytes/cycle - 342.09 MiB/sec @ 3 ghz
+Alignment 6 - 0.120 bytes/cycle - 343.42 MiB/sec @ 3 ghz
+Alignment 5 - 0.120 bytes/cycle - 344.55 MiB/sec @ 3 ghz
+Alignment 4 - 0.120 bytes/cycle - 343.96 MiB/sec @ 3 ghz
+Alignment 3 - 0.120 bytes/cycle - 344.21 MiB/sec @ 3 ghz
+Alignment 2 - 0.121 bytes/cycle - 345.40 MiB/sec @ 3 ghz
+Alignment 1 - 0.121 bytes/cycle - 346.05 MiB/sec @ 3 ghz
+Alignment 0 - 0.121 bytes/cycle - 347.40 MiB/sec @ 3 ghz
+Average - 0.120 bytes/cycle - 344.63 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 664.05 cycles/hash
+Small key speed test - 2-byte keys - 666.04 cycles/hash
+Small key speed test - 3-byte keys - 666.21 cycles/hash
+Small key speed test - 4-byte keys - 667.93 cycles/hash
+Small key speed test - 5-byte keys - 667.95 cycles/hash
+Small key speed test - 6-byte keys - 666.23 cycles/hash
+Small key speed test - 7-byte keys - 660.95 cycles/hash
+Small key speed test - 8-byte keys - 679.07 cycles/hash
+Small key speed test - 9-byte keys - 676.55 cycles/hash
+Small key speed test - 10-byte keys - 672.30 cycles/hash
+Small key speed test - 11-byte keys - 673.69 cycles/hash
+Small key speed test - 12-byte keys - 673.95 cycles/hash
+Small key speed test - 13-byte keys - 674.51 cycles/hash
+Small key speed test - 14-byte keys - 674.35 cycles/hash
+Small key speed test - 15-byte keys - 674.12 cycles/hash
+Small key speed test - 16-byte keys - 675.14 cycles/hash
+Small key speed test - 17-byte keys - 675.29 cycles/hash
+Small key speed test - 18-byte keys - 675.77 cycles/hash
+Small key speed test - 19-byte keys - 675.37 cycles/hash
+Small key speed test - 20-byte keys - 674.88 cycles/hash
+Small key speed test - 21-byte keys - 673.26 cycles/hash
+Small key speed test - 22-byte keys - 671.88 cycles/hash
+Small key speed test - 23-byte keys - 677.26 cycles/hash
+Small key speed test - 24-byte keys - 668.64 cycles/hash
+Small key speed test - 25-byte keys - 663.38 cycles/hash
+Small key speed test - 26-byte keys - 662.44 cycles/hash
+Small key speed test - 27-byte keys - 662.08 cycles/hash
+Small key speed test - 28-byte keys - 661.88 cycles/hash
+Small key speed test - 29-byte keys - 663.03 cycles/hash
+Small key speed test - 30-byte keys - 661.95 cycles/hash
+Small key speed test - 31-byte keys - 661.95 cycles/hash
+Small key speed test - 32-byte keys - 664.95 cycles/hash
+Average 669.594 cycles/hash
+Average, weighted by key length freq. 672.997 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 674.476 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/md5_32.txt b/doc/md5_32.txt
index 38629bf1..6f52c415 100644
--- a/doc/md5_32.txt
+++ b/doc/md5_32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x240faa004fc - 0x240faa004b4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.120 bytes/cycle - 344.06 MiB/sec @ 3 ghz
-Alignment 6 - 0.120 bytes/cycle - 344.04 MiB/sec @ 3 ghz
-Alignment 5 - 0.120 bytes/cycle - 344.04 MiB/sec @ 3 ghz
-Alignment 4 - 0.120 bytes/cycle - 344.09 MiB/sec @ 3 ghz
-Alignment 3 - 0.120 bytes/cycle - 344.08 MiB/sec @ 3 ghz
-Alignment 2 - 0.120 bytes/cycle - 344.10 MiB/sec @ 3 ghz
-Alignment 1 - 0.120 bytes/cycle - 344.12 MiB/sec @ 3 ghz
-Alignment 0 - 0.120 bytes/cycle - 344.08 MiB/sec @ 3 ghz
-Average - 0.120 bytes/cycle - 344.08 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 638.97 cycles/hash
-Small key speed test - 2-byte keys - 643.31 cycles/hash
-Small key speed test - 3-byte keys - 643.51 cycles/hash
-Small key speed test - 4-byte keys - 638.93 cycles/hash
-Small key speed test - 5-byte keys - 638.90 cycles/hash
-Small key speed test - 6-byte keys - 638.94 cycles/hash
-Small key speed test - 7-byte keys - 641.84 cycles/hash
-Small key speed test - 8-byte keys - 663.35 cycles/hash
-Small key speed test - 9-byte keys - 662.95 cycles/hash
-Small key speed test - 10-byte keys - 662.95 cycles/hash
-Small key speed test - 11-byte keys - 665.09 cycles/hash
-Small key speed test - 12-byte keys - 662.97 cycles/hash
-Small key speed test - 13-byte keys - 662.97 cycles/hash
-Small key speed test - 14-byte keys - 665.18 cycles/hash
-Small key speed test - 15-byte keys - 662.97 cycles/hash
-Small key speed test - 16-byte keys - 663.72 cycles/hash
-Small key speed test - 17-byte keys - 664.98 cycles/hash
-Small key speed test - 18-byte keys - 663.32 cycles/hash
-Small key speed test - 19-byte keys - 663.36 cycles/hash
-Small key speed test - 20-byte keys - 662.67 cycles/hash
-Small key speed test - 21-byte keys - 663.65 cycles/hash
-Small key speed test - 22-byte keys - 663.70 cycles/hash
-Small key speed test - 23-byte keys - 663.65 cycles/hash
-Small key speed test - 24-byte keys - 662.64 cycles/hash
-Small key speed test - 25-byte keys - 662.64 cycles/hash
-Small key speed test - 26-byte keys - 662.64 cycles/hash
-Small key speed test - 27-byte keys - 662.60 cycles/hash
-Small key speed test - 28-byte keys - 662.62 cycles/hash
-Small key speed test - 29-byte keys - 662.99 cycles/hash
-Small key speed test - 30-byte keys - 662.77 cycles/hash
-Small key speed test - 31-byte keys - 662.86 cycles/hash
-Average 658.182 cycles/hash
+Alignment 7 - 0.127 bytes/cycle - 364.52 MiB/sec @ 3 ghz
+Alignment 6 - 0.127 bytes/cycle - 364.54 MiB/sec @ 3 ghz
+Alignment 5 - 0.127 bytes/cycle - 364.53 MiB/sec @ 3 ghz
+Alignment 4 - 0.127 bytes/cycle - 364.53 MiB/sec @ 3 ghz
+Alignment 3 - 0.127 bytes/cycle - 364.49 MiB/sec @ 3 ghz
+Alignment 2 - 0.127 bytes/cycle - 364.50 MiB/sec @ 3 ghz
+Alignment 1 - 0.127 bytes/cycle - 364.57 MiB/sec @ 3 ghz
+Alignment 0 - 0.113 bytes/cycle - 323.77 MiB/sec @ 3 ghz
+Average - 0.126 bytes/cycle - 359.43 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 625.14 cycles/hash
+Small key speed test - 2-byte keys - 602.67 cycles/hash
+Small key speed test - 3-byte keys - 603.47 cycles/hash
+Small key speed test - 4-byte keys - 621.72 cycles/hash
+Small key speed test - 5-byte keys - 625.73 cycles/hash
+Small key speed test - 6-byte keys - 625.44 cycles/hash
+Small key speed test - 7-byte keys - 624.28 cycles/hash
+Small key speed test - 8-byte keys - 642.00 cycles/hash
+Small key speed test - 9-byte keys - 642.00 cycles/hash
+Small key speed test - 10-byte keys - 642.44 cycles/hash
+Small key speed test - 11-byte keys - 642.19 cycles/hash
+Small key speed test - 12-byte keys - 642.00 cycles/hash
+Small key speed test - 13-byte keys - 643.04 cycles/hash
+Small key speed test - 14-byte keys - 642.17 cycles/hash
+Small key speed test - 15-byte keys - 642.00 cycles/hash
+Small key speed test - 16-byte keys - 643.96 cycles/hash
+Small key speed test - 17-byte keys - 644.97 cycles/hash
+Small key speed test - 18-byte keys - 645.15 cycles/hash
+Small key speed test - 19-byte keys - 645.57 cycles/hash
+Small key speed test - 20-byte keys - 645.44 cycles/hash
+Small key speed test - 21-byte keys - 644.99 cycles/hash
+Small key speed test - 22-byte keys - 644.92 cycles/hash
+Small key speed test - 23-byte keys - 645.25 cycles/hash
+Small key speed test - 24-byte keys - 646.95 cycles/hash
+Small key speed test - 25-byte keys - 646.92 cycles/hash
+Small key speed test - 26-byte keys - 646.47 cycles/hash
+Small key speed test - 27-byte keys - 646.99 cycles/hash
+Small key speed test - 28-byte keys - 646.60 cycles/hash
+Small key speed test - 29-byte keys - 645.97 cycles/hash
+Small key speed test - 30-byte keys - 645.94 cycles/hash
+Small key speed test - 31-byte keys - 645.99 cycles/hash
+Small key speed test - 32-byte keys - 647.02 cycles/hash
+Average 638.919 cycles/hash
+Average, weighted by key length freq. 643.482 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 641.677 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/md5_64.txt b/doc/md5_64.txt
index d3ab97ba..c697d164 100644
--- a/doc/md5_64.txt
+++ b/doc/md5_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1cfe5656824 - 0x1cfe56567b8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.111 bytes/cycle - 318.84 MiB/sec @ 3 ghz
-Alignment 6 - 0.123 bytes/cycle - 352.90 MiB/sec @ 3 ghz
-Alignment 5 - 0.123 bytes/cycle - 351.51 MiB/sec @ 3 ghz
-Alignment 4 - 0.123 bytes/cycle - 350.97 MiB/sec @ 3 ghz
-Alignment 3 - 0.123 bytes/cycle - 352.25 MiB/sec @ 3 ghz
-Alignment 2 - 0.124 bytes/cycle - 354.44 MiB/sec @ 3 ghz
-Alignment 1 - 0.124 bytes/cycle - 355.65 MiB/sec @ 3 ghz
-Alignment 0 - 0.124 bytes/cycle - 354.85 MiB/sec @ 3 ghz
-Average - 0.122 bytes/cycle - 348.93 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 637.45 cycles/hash
-Small key speed test - 2-byte keys - 636.61 cycles/hash
-Small key speed test - 3-byte keys - 634.87 cycles/hash
-Small key speed test - 4-byte keys - 637.58 cycles/hash
-Small key speed test - 5-byte keys - 637.30 cycles/hash
-Small key speed test - 6-byte keys - 638.00 cycles/hash
-Small key speed test - 7-byte keys - 637.83 cycles/hash
-Small key speed test - 8-byte keys - 654.30 cycles/hash
-Small key speed test - 9-byte keys - 653.16 cycles/hash
-Small key speed test - 10-byte keys - 652.82 cycles/hash
-Small key speed test - 11-byte keys - 650.68 cycles/hash
-Small key speed test - 12-byte keys - 651.19 cycles/hash
-Small key speed test - 13-byte keys - 651.02 cycles/hash
-Small key speed test - 14-byte keys - 652.22 cycles/hash
-Small key speed test - 15-byte keys - 654.16 cycles/hash
-Small key speed test - 16-byte keys - 651.94 cycles/hash
-Small key speed test - 17-byte keys - 651.80 cycles/hash
-Small key speed test - 18-byte keys - 649.37 cycles/hash
-Small key speed test - 19-byte keys - 653.61 cycles/hash
-Small key speed test - 20-byte keys - 652.07 cycles/hash
-Small key speed test - 21-byte keys - 651.94 cycles/hash
-Small key speed test - 22-byte keys - 647.90 cycles/hash
-Small key speed test - 23-byte keys - 653.62 cycles/hash
-Small key speed test - 24-byte keys - 665.52 cycles/hash
-Small key speed test - 25-byte keys - 666.14 cycles/hash
-Small key speed test - 26-byte keys - 666.01 cycles/hash
-Small key speed test - 27-byte keys - 664.93 cycles/hash
-Small key speed test - 28-byte keys - 664.85 cycles/hash
-Small key speed test - 29-byte keys - 665.18 cycles/hash
-Small key speed test - 30-byte keys - 664.30 cycles/hash
-Small key speed test - 31-byte keys - 717.42 cycles/hash
-Average 653.734 cycles/hash
+Alignment 7 - 0.123 bytes/cycle - 351.71 MiB/sec @ 3 ghz
+Alignment 6 - 0.124 bytes/cycle - 354.60 MiB/sec @ 3 ghz
+Alignment 5 - 0.127 bytes/cycle - 362.52 MiB/sec @ 3 ghz
+Alignment 4 - 0.127 bytes/cycle - 362.58 MiB/sec @ 3 ghz
+Alignment 3 - 0.127 bytes/cycle - 362.53 MiB/sec @ 3 ghz
+Alignment 2 - 0.127 bytes/cycle - 362.51 MiB/sec @ 3 ghz
+Alignment 1 - 0.127 bytes/cycle - 362.58 MiB/sec @ 3 ghz
+Alignment 0 - 0.127 bytes/cycle - 362.56 MiB/sec @ 3 ghz
+Average - 0.126 bytes/cycle - 360.20 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 616.87 cycles/hash
+Small key speed test - 2-byte keys - 620.24 cycles/hash
+Small key speed test - 3-byte keys - 619.30 cycles/hash
+Small key speed test - 4-byte keys - 618.92 cycles/hash
+Small key speed test - 5-byte keys - 618.89 cycles/hash
+Small key speed test - 6-byte keys - 619.30 cycles/hash
+Small key speed test - 7-byte keys - 618.89 cycles/hash
+Small key speed test - 8-byte keys - 636.08 cycles/hash
+Small key speed test - 9-byte keys - 634.18 cycles/hash
+Small key speed test - 10-byte keys - 634.03 cycles/hash
+Small key speed test - 11-byte keys - 633.98 cycles/hash
+Small key speed test - 12-byte keys - 633.97 cycles/hash
+Small key speed test - 13-byte keys - 633.92 cycles/hash
+Small key speed test - 14-byte keys - 634.10 cycles/hash
+Small key speed test - 15-byte keys - 663.34 cycles/hash
+Small key speed test - 16-byte keys - 639.85 cycles/hash
+Small key speed test - 17-byte keys - 639.83 cycles/hash
+Small key speed test - 18-byte keys - 639.79 cycles/hash
+Small key speed test - 19-byte keys - 639.59 cycles/hash
+Small key speed test - 20-byte keys - 639.64 cycles/hash
+Small key speed test - 21-byte keys - 639.59 cycles/hash
+Small key speed test - 22-byte keys - 638.00 cycles/hash
+Small key speed test - 23-byte keys - 639.71 cycles/hash
+Small key speed test - 24-byte keys - 670.33 cycles/hash
+Small key speed test - 25-byte keys - 657.00 cycles/hash
+Small key speed test - 26-byte keys - 657.00 cycles/hash
+Small key speed test - 27-byte keys - 658.37 cycles/hash
+Small key speed test - 28-byte keys - 658.23 cycles/hash
+Small key speed test - 29-byte keys - 659.60 cycles/hash
+Small key speed test - 30-byte keys - 658.47 cycles/hash
+Small key speed test - 31-byte keys - 659.57 cycles/hash
+Small key speed test - 32-byte keys - 661.47 cycles/hash
+Average 640.377 cycles/hash
+Average, weighted by key length freq. 641.356 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 636.497 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/multiply_shift.txt b/doc/multiply_shift.txt
index 2d02fd28..d584ff87 100644
--- a/doc/multiply_shift.txt
+++ b/doc/multiply_shift.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1217d40b720 - 0x1217d40b6b4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.891 bytes/cycle - 5410.09 MiB/sec @ 3 ghz
-Alignment 6 - 1.891 bytes/cycle - 5410.07 MiB/sec @ 3 ghz
-Alignment 5 - 1.891 bytes/cycle - 5410.29 MiB/sec @ 3 ghz
-Alignment 4 - 1.891 bytes/cycle - 5410.36 MiB/sec @ 3 ghz
-Alignment 3 - 1.891 bytes/cycle - 5410.61 MiB/sec @ 3 ghz
-Alignment 2 - 1.891 bytes/cycle - 5410.28 MiB/sec @ 3 ghz
-Alignment 1 - 1.891 bytes/cycle - 5410.30 MiB/sec @ 3 ghz
-Alignment 0 - 1.914 bytes/cycle - 5474.91 MiB/sec @ 3 ghz
-Average - 1.894 bytes/cycle - 5418.36 MiB/sec @ 3 ghz
+Alignment 7 - 2.893 bytes/cycle - 8277.46 MiB/sec @ 3 ghz
+Alignment 6 - 2.897 bytes/cycle - 8288.07 MiB/sec @ 3 ghz
+Alignment 5 - 2.897 bytes/cycle - 8289.01 MiB/sec @ 3 ghz
+Alignment 4 - 2.897 bytes/cycle - 8287.77 MiB/sec @ 3 ghz
+Alignment 3 - 2.893 bytes/cycle - 8277.32 MiB/sec @ 3 ghz
+Alignment 2 - 2.897 bytes/cycle - 8287.58 MiB/sec @ 3 ghz
+Alignment 1 - 2.897 bytes/cycle - 8288.08 MiB/sec @ 3 ghz
+Alignment 0 - 2.900 bytes/cycle - 8297.77 MiB/sec @ 3 ghz
+Average - 2.896 bytes/cycle - 8286.63 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 20.00 cycles/hash
-Small key speed test - 2-byte keys - 19.94 cycles/hash
-Small key speed test - 3-byte keys - 22.23 cycles/hash
-Small key speed test - 4-byte keys - 19.00 cycles/hash
-Small key speed test - 5-byte keys - 22.00 cycles/hash
-Small key speed test - 6-byte keys - 22.00 cycles/hash
-Small key speed test - 7-byte keys - 24.00 cycles/hash
-Small key speed test - 8-byte keys - 19.00 cycles/hash
-Small key speed test - 9-byte keys - 26.00 cycles/hash
-Small key speed test - 10-byte keys - 27.00 cycles/hash
-Small key speed test - 11-byte keys - 28.22 cycles/hash
-Small key speed test - 12-byte keys - 26.00 cycles/hash
-Small key speed test - 13-byte keys - 27.57 cycles/hash
-Small key speed test - 14-byte keys - 27.00 cycles/hash
-Small key speed test - 15-byte keys - 29.00 cycles/hash
-Small key speed test - 16-byte keys - 22.75 cycles/hash
-Small key speed test - 17-byte keys - 31.60 cycles/hash
-Small key speed test - 18-byte keys - 31.90 cycles/hash
-Small key speed test - 19-byte keys - 33.00 cycles/hash
-Small key speed test - 20-byte keys - 30.98 cycles/hash
-Small key speed test - 21-byte keys - 32.62 cycles/hash
-Small key speed test - 22-byte keys - 32.00 cycles/hash
-Small key speed test - 23-byte keys - 34.00 cycles/hash
-Small key speed test - 24-byte keys - 24.84 cycles/hash
-Small key speed test - 25-byte keys - 36.00 cycles/hash
-Small key speed test - 26-byte keys - 36.00 cycles/hash
-Small key speed test - 27-byte keys - 38.03 cycles/hash
-Small key speed test - 28-byte keys - 35.00 cycles/hash
-Small key speed test - 29-byte keys - 36.99 cycles/hash
-Small key speed test - 30-byte keys - 36.72 cycles/hash
-Small key speed test - 31-byte keys - 38.00 cycles/hash
-Average 28.691 cycles/hash
+Small key speed test - 1-byte keys - 20.81 cycles/hash
+Small key speed test - 2-byte keys - 20.97 cycles/hash
+Small key speed test - 3-byte keys - 22.86 cycles/hash
+Small key speed test - 4-byte keys - 20.00 cycles/hash
+Small key speed test - 5-byte keys - 22.13 cycles/hash
+Small key speed test - 6-byte keys - 23.00 cycles/hash
+Small key speed test - 7-byte keys - 23.99 cycles/hash
+Small key speed test - 8-byte keys - 20.00 cycles/hash
+Small key speed test - 9-byte keys - 23.43 cycles/hash
+Small key speed test - 10-byte keys - 23.86 cycles/hash
+Small key speed test - 11-byte keys - 24.43 cycles/hash
+Small key speed test - 12-byte keys - 23.00 cycles/hash
+Small key speed test - 13-byte keys - 25.00 cycles/hash
+Small key speed test - 14-byte keys - 24.00 cycles/hash
+Small key speed test - 15-byte keys - 26.00 cycles/hash
+Small key speed test - 16-byte keys - 23.00 cycles/hash
+Small key speed test - 17-byte keys - 26.00 cycles/hash
+Small key speed test - 18-byte keys - 26.00 cycles/hash
+Small key speed test - 19-byte keys - 26.46 cycles/hash
+Small key speed test - 20-byte keys - 26.00 cycles/hash
+Small key speed test - 21-byte keys - 26.00 cycles/hash
+Small key speed test - 22-byte keys - 26.14 cycles/hash
+Small key speed test - 23-byte keys - 27.43 cycles/hash
+Small key speed test - 24-byte keys - 26.00 cycles/hash
+Small key speed test - 25-byte keys - 30.00 cycles/hash
+Small key speed test - 26-byte keys - 29.00 cycles/hash
+Small key speed test - 27-byte keys - 30.00 cycles/hash
+Small key speed test - 28-byte keys - 29.00 cycles/hash
+Small key speed test - 29-byte keys - 29.32 cycles/hash
+Small key speed test - 30-byte keys - 29.00 cycles/hash
+Small key speed test - 31-byte keys - 30.00 cycles/hash
+Small key speed test - 32-byte keys - 29.72 cycles/hash
+Average 25.392 cycles/hash
+Average, weighted by key length freq. 25.279 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 23.365 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/pair_multiply_shift.txt b/doc/pair_multiply_shift.txt
index 406a5e3f..2bc2570c 100644
--- a/doc/pair_multiply_shift.txt
+++ b/doc/pair_multiply_shift.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1285b808b6c - 0x1285b808b00). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.356 bytes/cycle - 3880.32 MiB/sec @ 3 ghz
-Alignment 6 - 1.356 bytes/cycle - 3880.27 MiB/sec @ 3 ghz
-Alignment 5 - 1.356 bytes/cycle - 3880.30 MiB/sec @ 3 ghz
-Alignment 4 - 1.356 bytes/cycle - 3880.51 MiB/sec @ 3 ghz
-Alignment 3 - 1.356 bytes/cycle - 3880.26 MiB/sec @ 3 ghz
-Alignment 2 - 1.356 bytes/cycle - 3880.19 MiB/sec @ 3 ghz
-Alignment 1 - 1.356 bytes/cycle - 3880.23 MiB/sec @ 3 ghz
-Alignment 0 - 1.366 bytes/cycle - 3908.74 MiB/sec @ 3 ghz
-Average - 1.358 bytes/cycle - 3883.85 MiB/sec @ 3 ghz
+Alignment 7 - 2.001 bytes/cycle - 5725.78 MiB/sec @ 3 ghz
+Alignment 6 - 2.002 bytes/cycle - 5728.36 MiB/sec @ 3 ghz
+Alignment 5 - 2.000 bytes/cycle - 5722.20 MiB/sec @ 3 ghz
+Alignment 4 - 2.002 bytes/cycle - 5727.47 MiB/sec @ 3 ghz
+Alignment 3 - 2.001 bytes/cycle - 5726.09 MiB/sec @ 3 ghz
+Alignment 2 - 2.002 bytes/cycle - 5727.28 MiB/sec @ 3 ghz
+Alignment 1 - 2.001 bytes/cycle - 5726.19 MiB/sec @ 3 ghz
+Alignment 0 - 2.007 bytes/cycle - 5741.03 MiB/sec @ 3 ghz
+Average - 2.002 bytes/cycle - 5728.05 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 23.50 cycles/hash
-Small key speed test - 2-byte keys - 23.00 cycles/hash
-Small key speed test - 3-byte keys - 30.00 cycles/hash
-Small key speed test - 4-byte keys - 23.00 cycles/hash
-Small key speed test - 5-byte keys - 30.00 cycles/hash
-Small key speed test - 6-byte keys - 30.00 cycles/hash
-Small key speed test - 7-byte keys - 36.16 cycles/hash
-Small key speed test - 8-byte keys - 24.00 cycles/hash
-Small key speed test - 9-byte keys - 30.00 cycles/hash
-Small key speed test - 10-byte keys - 29.72 cycles/hash
-Small key speed test - 11-byte keys - 35.00 cycles/hash
-Small key speed test - 12-byte keys - 29.13 cycles/hash
-Small key speed test - 13-byte keys - 35.18 cycles/hash
-Small key speed test - 14-byte keys - 35.00 cycles/hash
-Small key speed test - 15-byte keys - 41.00 cycles/hash
-Small key speed test - 16-byte keys - 31.00 cycles/hash
-Small key speed test - 17-byte keys - 38.42 cycles/hash
-Small key speed test - 18-byte keys - 38.00 cycles/hash
-Small key speed test - 19-byte keys - 42.00 cycles/hash
-Small key speed test - 20-byte keys - 38.00 cycles/hash
-Small key speed test - 21-byte keys - 42.00 cycles/hash
-Small key speed test - 22-byte keys - 42.00 cycles/hash
-Small key speed test - 23-byte keys - 47.00 cycles/hash
-Small key speed test - 24-byte keys - 38.40 cycles/hash
-Small key speed test - 25-byte keys - 44.94 cycles/hash
-Small key speed test - 26-byte keys - 44.97 cycles/hash
-Small key speed test - 27-byte keys - 48.79 cycles/hash
-Small key speed test - 28-byte keys - 44.33 cycles/hash
-Small key speed test - 29-byte keys - 48.00 cycles/hash
-Small key speed test - 30-byte keys - 48.00 cycles/hash
-Small key speed test - 31-byte keys - 53.00 cycles/hash
-Average 36.888 cycles/hash
+Small key speed test - 1-byte keys - 27.00 cycles/hash
+Small key speed test - 2-byte keys - 27.34 cycles/hash
+Small key speed test - 3-byte keys - 35.00 cycles/hash
+Small key speed test - 4-byte keys - 27.00 cycles/hash
+Small key speed test - 5-byte keys - 34.94 cycles/hash
+Small key speed test - 6-byte keys - 35.14 cycles/hash
+Small key speed test - 7-byte keys - 43.00 cycles/hash
+Small key speed test - 8-byte keys - 26.49 cycles/hash
+Small key speed test - 9-byte keys - 35.00 cycles/hash
+Small key speed test - 10-byte keys - 35.00 cycles/hash
+Small key speed test - 11-byte keys - 42.89 cycles/hash
+Small key speed test - 12-byte keys - 35.00 cycles/hash
+Small key speed test - 13-byte keys - 43.00 cycles/hash
+Small key speed test - 14-byte keys - 43.00 cycles/hash
+Small key speed test - 15-byte keys - 50.49 cycles/hash
+Small key speed test - 16-byte keys - 30.00 cycles/hash
+Small key speed test - 17-byte keys - 36.00 cycles/hash
+Small key speed test - 18-byte keys - 36.00 cycles/hash
+Small key speed test - 19-byte keys - 43.25 cycles/hash
+Small key speed test - 20-byte keys - 35.00 cycles/hash
+Small key speed test - 21-byte keys - 43.98 cycles/hash
+Small key speed test - 22-byte keys - 43.99 cycles/hash
+Small key speed test - 23-byte keys - 51.94 cycles/hash
+Small key speed test - 24-byte keys - 34.14 cycles/hash
+Small key speed test - 25-byte keys - 43.99 cycles/hash
+Small key speed test - 26-byte keys - 43.00 cycles/hash
+Small key speed test - 27-byte keys - 51.00 cycles/hash
+Small key speed test - 28-byte keys - 42.24 cycles/hash
+Small key speed test - 29-byte keys - 51.93 cycles/hash
+Small key speed test - 30-byte keys - 51.00 cycles/hash
+Small key speed test - 31-byte keys - 58.21 cycles/hash
+Small key speed test - 32-byte keys - 33.42 cycles/hash
+Average 39.668 cycles/hash
+Average, weighted by key length freq. 40.153 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 34.436 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/phone.html b/doc/phone.html
index 5e7d8ac2..8860eac2 100644
--- a/doc/phone.html
+++ b/doc/phone.html
@@ -254,6 +254,22 @@ SMhasher
+edonr224
+525.27
+365.89
+504.28 (4)
+
+
+
+
+edonr256
+525.27
+365.89
+504.28 (4)
+
+
+
+
blake2s-128
646.95
385.84
@@ -438,6 +454,38 @@ SMhasher
insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
o1hash
2571095.19
9.81
@@ -1038,6 +1086,46 @@ SMhasher
0.9% bias
+discohash1
+4131.12
+199.00
+398.35 (5)
+1294
+bad seeds
+
+
+discohash1-128
+4072.95
+234.17
+438.43 (5)
+1294
+
+
+
+discohash2
+3986.52
+207.52
+421.99 (2)
+1294
+
+
+
+discohash2-128
+4094.73
+236.61
+433.35 (4)
+1294
+
+
+
+discoNONG
+3698.45
+399.67
+597.78 (9)
+
+bad seeds
+
+
TSip
6493.56
30.64
@@ -1206,6 +1294,14 @@ SMhasher
+CityCrc256
+19603.25
+42.27
+149.40 (4)
+
+
+
+
FarmHash32
4979.63
31.38
@@ -1406,6 +1502,30 @@ SMhasher
5 bad seeds
+w1hash
+2532.89
+37.95
+222.17 (4)
+
+
+
+
+rapidhash
+23789.79
+22.80
+138.71 (7)
+574
+
+
+
+rapidhash_unrolled
+23892.88
+23.41
+139.47 (12)
+782
+
+
+
umash32
@@ -1485,12 +1605,38 @@ SMhasher
1494
+
+komihash
+2208.60
+134.35
+268.71 (6)
+2799
+
+
+
+polymur
+1017.15
+178.25
+313.64 (9)
+1128
+
+
+
+gxhash64
+1017.15
+178.25
+313.64 (9)
+
+
+
Other timings:
Default AMD Ryzen 5 PRO 3350G 3.6GHz
+ fast AMD EPYC 9554P 64-Core Processor (Server from 2024)
+ Intel i7-6820HQ 3.5GHz (Lenovo P50 from 2024)
AMD Ryzen 5 PRO 3350G 3.6GHz 32bit
AMD Ryzen 3 3.5GHz (Lenovo E495)
Intel i5-2300 2.8GHz
diff --git a/doc/poly_1_mersenne.txt b/doc/poly_1_mersenne.txt
index 03f4264c..11d1d991 100644
--- a/doc/poly_1_mersenne.txt
+++ b/doc/poly_1_mersenne.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x12d788a826c4 - 0x12d788a8267c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.479 bytes/cycle - 1369.48 MiB/sec @ 3 ghz
-Alignment 6 - 0.479 bytes/cycle - 1369.47 MiB/sec @ 3 ghz
-Alignment 5 - 0.479 bytes/cycle - 1369.47 MiB/sec @ 3 ghz
-Alignment 4 - 0.479 bytes/cycle - 1369.48 MiB/sec @ 3 ghz
-Alignment 3 - 0.479 bytes/cycle - 1369.47 MiB/sec @ 3 ghz
-Alignment 2 - 0.479 bytes/cycle - 1369.48 MiB/sec @ 3 ghz
-Alignment 1 - 0.478 bytes/cycle - 1367.35 MiB/sec @ 3 ghz
-Alignment 0 - 0.479 bytes/cycle - 1369.47 MiB/sec @ 3 ghz
-Average - 0.479 bytes/cycle - 1369.21 MiB/sec @ 3 ghz
+Alignment 7 - 0.386 bytes/cycle - 1105.57 MiB/sec @ 3 ghz
+Alignment 6 - 0.399 bytes/cycle - 1140.32 MiB/sec @ 3 ghz
+Alignment 5 - 0.465 bytes/cycle - 1329.64 MiB/sec @ 3 ghz
+Alignment 4 - 0.465 bytes/cycle - 1330.10 MiB/sec @ 3 ghz
+Alignment 3 - 0.465 bytes/cycle - 1330.62 MiB/sec @ 3 ghz
+Alignment 2 - 0.465 bytes/cycle - 1330.59 MiB/sec @ 3 ghz
+Alignment 1 - 0.465 bytes/cycle - 1330.44 MiB/sec @ 3 ghz
+Alignment 0 - 0.465 bytes/cycle - 1329.70 MiB/sec @ 3 ghz
+Average - 0.447 bytes/cycle - 1278.37 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 32.00 cycles/hash
Small key speed test - 2-byte keys - 31.00 cycles/hash
-Small key speed test - 3-byte keys - 33.00 cycles/hash
-Small key speed test - 4-byte keys - 31.97 cycles/hash
-Small key speed test - 5-byte keys - 40.59 cycles/hash
-Small key speed test - 6-byte keys - 40.60 cycles/hash
-Small key speed test - 7-byte keys - 40.71 cycles/hash
-Small key speed test - 8-byte keys - 40.00 cycles/hash
-Small key speed test - 9-byte keys - 49.00 cycles/hash
-Small key speed test - 10-byte keys - 49.00 cycles/hash
-Small key speed test - 11-byte keys - 49.00 cycles/hash
-Small key speed test - 12-byte keys - 50.00 cycles/hash
-Small key speed test - 13-byte keys - 58.00 cycles/hash
-Small key speed test - 14-byte keys - 58.00 cycles/hash
-Small key speed test - 15-byte keys - 59.00 cycles/hash
-Small key speed test - 16-byte keys - 57.46 cycles/hash
-Small key speed test - 17-byte keys - 66.20 cycles/hash
-Small key speed test - 18-byte keys - 66.43 cycles/hash
-Small key speed test - 19-byte keys - 66.00 cycles/hash
-Small key speed test - 20-byte keys - 66.84 cycles/hash
-Small key speed test - 21-byte keys - 75.86 cycles/hash
-Small key speed test - 22-byte keys - 75.77 cycles/hash
-Small key speed test - 23-byte keys - 75.96 cycles/hash
-Small key speed test - 24-byte keys - 75.78 cycles/hash
-Small key speed test - 25-byte keys - 84.74 cycles/hash
-Small key speed test - 26-byte keys - 84.72 cycles/hash
-Small key speed test - 27-byte keys - 84.75 cycles/hash
-Small key speed test - 28-byte keys - 84.95 cycles/hash
-Small key speed test - 29-byte keys - 94.00 cycles/hash
-Small key speed test - 30-byte keys - 93.95 cycles/hash
-Small key speed test - 31-byte keys - 93.97 cycles/hash
-Average 61.589 cycles/hash
+Small key speed test - 3-byte keys - 33.63 cycles/hash
+Small key speed test - 4-byte keys - 32.00 cycles/hash
+Small key speed test - 5-byte keys - 41.00 cycles/hash
+Small key speed test - 6-byte keys - 41.00 cycles/hash
+Small key speed test - 7-byte keys - 41.00 cycles/hash
+Small key speed test - 8-byte keys - 40.93 cycles/hash
+Small key speed test - 9-byte keys - 49.92 cycles/hash
+Small key speed test - 10-byte keys - 50.00 cycles/hash
+Small key speed test - 11-byte keys - 49.96 cycles/hash
+Small key speed test - 12-byte keys - 50.71 cycles/hash
+Small key speed test - 13-byte keys - 59.00 cycles/hash
+Small key speed test - 14-byte keys - 59.00 cycles/hash
+Small key speed test - 15-byte keys - 59.76 cycles/hash
+Small key speed test - 16-byte keys - 58.63 cycles/hash
+Small key speed test - 17-byte keys - 67.20 cycles/hash
+Small key speed test - 18-byte keys - 67.46 cycles/hash
+Small key speed test - 19-byte keys - 67.00 cycles/hash
+Small key speed test - 20-byte keys - 67.76 cycles/hash
+Small key speed test - 21-byte keys - 76.66 cycles/hash
+Small key speed test - 22-byte keys - 76.61 cycles/hash
+Small key speed test - 23-byte keys - 76.64 cycles/hash
+Small key speed test - 24-byte keys - 77.00 cycles/hash
+Small key speed test - 25-byte keys - 85.67 cycles/hash
+Small key speed test - 26-byte keys - 85.57 cycles/hash
+Small key speed test - 27-byte keys - 85.85 cycles/hash
+Small key speed test - 28-byte keys - 85.66 cycles/hash
+Small key speed test - 29-byte keys - 95.44 cycles/hash
+Small key speed test - 30-byte keys - 95.24 cycles/hash
+Small key speed test - 31-byte keys - 95.32 cycles/hash
+Small key speed test - 32-byte keys - 94.72 cycles/hash
+Average 63.417 cycles/hash
+Average, weighted by key length freq. 63.248 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 53.569 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/poly_2_mersenne.txt b/doc/poly_2_mersenne.txt
index d6763216..8becbf85 100644
--- a/doc/poly_2_mersenne.txt
+++ b/doc/poly_2_mersenne.txt
@@ -10,49 +10,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x12e77ce7f914 - 0x12e77ce7f8a8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.477 bytes/cycle - 1363.46 MiB/sec @ 3 ghz
-Alignment 6 - 0.477 bytes/cycle - 1363.81 MiB/sec @ 3 ghz
-Alignment 5 - 0.476 bytes/cycle - 1363.05 MiB/sec @ 3 ghz
-Alignment 4 - 0.477 bytes/cycle - 1364.32 MiB/sec @ 3 ghz
-Alignment 3 - 0.477 bytes/cycle - 1366.06 MiB/sec @ 3 ghz
-Alignment 2 - 0.477 bytes/cycle - 1364.49 MiB/sec @ 3 ghz
-Alignment 1 - 0.477 bytes/cycle - 1363.53 MiB/sec @ 3 ghz
-Alignment 0 - 0.477 bytes/cycle - 1363.55 MiB/sec @ 3 ghz
-Average - 0.477 bytes/cycle - 1364.03 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 40.00 cycles/hash
-Small key speed test - 2-byte keys - 39.00 cycles/hash
-Small key speed test - 3-byte keys - 41.71 cycles/hash
-Small key speed test - 4-byte keys - 40.00 cycles/hash
-Small key speed test - 5-byte keys - 49.00 cycles/hash
-Small key speed test - 6-byte keys - 49.65 cycles/hash
-Small key speed test - 7-byte keys - 49.00 cycles/hash
-Small key speed test - 8-byte keys - 49.20 cycles/hash
-Small key speed test - 9-byte keys - 57.91 cycles/hash
-Small key speed test - 10-byte keys - 57.99 cycles/hash
-Small key speed test - 11-byte keys - 58.00 cycles/hash
-Small key speed test - 12-byte keys - 58.00 cycles/hash
-Small key speed test - 13-byte keys - 66.59 cycles/hash
-Small key speed test - 14-byte keys - 66.52 cycles/hash
-Small key speed test - 15-byte keys - 66.50 cycles/hash
-Small key speed test - 16-byte keys - 66.48 cycles/hash
-Small key speed test - 17-byte keys - 75.53 cycles/hash
-Small key speed test - 18-byte keys - 75.53 cycles/hash
-Small key speed test - 19-byte keys - 75.44 cycles/hash
-Small key speed test - 20-byte keys - 75.73 cycles/hash
-Small key speed test - 21-byte keys - 84.83 cycles/hash
-Small key speed test - 22-byte keys - 84.75 cycles/hash
-Small key speed test - 23-byte keys - 84.70 cycles/hash
-Small key speed test - 24-byte keys - 84.83 cycles/hash
-Small key speed test - 25-byte keys - 93.57 cycles/hash
-Small key speed test - 26-byte keys - 93.56 cycles/hash
-Small key speed test - 27-byte keys - 93.56 cycles/hash
-Small key speed test - 28-byte keys - 94.00 cycles/hash
-Small key speed test - 29-byte keys - 102.55 cycles/hash
-Small key speed test - 30-byte keys - 102.51 cycles/hash
-Small key speed test - 31-byte keys - 102.51 cycles/hash
-Average 70.295 cycles/hash
+Alignment 7 - 0.486 bytes/cycle - 1391.88 MiB/sec @ 3 ghz
+Alignment 6 - 0.486 bytes/cycle - 1391.75 MiB/sec @ 3 ghz
+Alignment 5 - 0.487 bytes/cycle - 1392.05 MiB/sec @ 3 ghz
+Alignment 4 - 0.486 bytes/cycle - 1391.72 MiB/sec @ 3 ghz
+Alignment 3 - 0.487 bytes/cycle - 1392.11 MiB/sec @ 3 ghz
+Alignment 2 - 0.487 bytes/cycle - 1392.08 MiB/sec @ 3 ghz
+Alignment 1 - 0.487 bytes/cycle - 1392.04 MiB/sec @ 3 ghz
+Alignment 0 - 0.486 bytes/cycle - 1391.54 MiB/sec @ 3 ghz
+Average - 0.487 bytes/cycle - 1391.90 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 39.00 cycles/hash
+Small key speed test - 2-byte keys - 38.69 cycles/hash
+Small key speed test - 3-byte keys - 41.00 cycles/hash
+Small key speed test - 4-byte keys - 39.00 cycles/hash
+Small key speed test - 5-byte keys - 48.00 cycles/hash
+Small key speed test - 6-byte keys - 48.58 cycles/hash
+Small key speed test - 7-byte keys - 48.00 cycles/hash
+Small key speed test - 8-byte keys - 48.00 cycles/hash
+Small key speed test - 9-byte keys - 56.80 cycles/hash
+Small key speed test - 10-byte keys - 56.99 cycles/hash
+Small key speed test - 11-byte keys - 57.00 cycles/hash
+Small key speed test - 12-byte keys - 57.00 cycles/hash
+Small key speed test - 13-byte keys - 65.54 cycles/hash
+Small key speed test - 14-byte keys - 65.63 cycles/hash
+Small key speed test - 15-byte keys - 65.00 cycles/hash
+Small key speed test - 16-byte keys - 65.00 cycles/hash
+Small key speed test - 17-byte keys - 74.00 cycles/hash
+Small key speed test - 18-byte keys - 74.00 cycles/hash
+Small key speed test - 19-byte keys - 74.00 cycles/hash
+Small key speed test - 20-byte keys - 74.41 cycles/hash
+Small key speed test - 21-byte keys - 83.00 cycles/hash
+Small key speed test - 22-byte keys - 83.00 cycles/hash
+Small key speed test - 23-byte keys - 83.00 cycles/hash
+Small key speed test - 24-byte keys - 83.59 cycles/hash
+Small key speed test - 25-byte keys - 91.64 cycles/hash
+Small key speed test - 26-byte keys - 91.71 cycles/hash
+Small key speed test - 27-byte keys - 91.66 cycles/hash
+Small key speed test - 28-byte keys - 92.57 cycles/hash
+Small key speed test - 29-byte keys - 100.59 cycles/hash
+Small key speed test - 30-byte keys - 100.54 cycles/hash
+Small key speed test - 31-byte keys - 100.61 cycles/hash
+Small key speed test - 32-byte keys - 101.51 cycles/hash
+Average 69.970 cycles/hash
+Average, weighted by key length freq. 69.735 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 60.199 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/poly_3_mersenne.txt b/doc/poly_3_mersenne.txt
index a60bba61..f42c231b 100644
--- a/doc/poly_3_mersenne.txt
+++ b/doc/poly_3_mersenne.txt
@@ -10,49 +10,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x12f7ecc784d4 - 0x12f7ecc7848c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.469 bytes/cycle - 1342.87 MiB/sec @ 3 ghz
-Alignment 6 - 0.469 bytes/cycle - 1341.58 MiB/sec @ 3 ghz
-Alignment 5 - 0.470 bytes/cycle - 1343.60 MiB/sec @ 3 ghz
-Alignment 4 - 0.469 bytes/cycle - 1343.20 MiB/sec @ 3 ghz
-Alignment 3 - 0.469 bytes/cycle - 1341.74 MiB/sec @ 3 ghz
-Alignment 2 - 0.470 bytes/cycle - 1343.58 MiB/sec @ 3 ghz
-Alignment 1 - 0.469 bytes/cycle - 1342.28 MiB/sec @ 3 ghz
-Alignment 0 - 0.470 bytes/cycle - 1343.75 MiB/sec @ 3 ghz
-Average - 0.469 bytes/cycle - 1342.82 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 49.26 cycles/hash
+Alignment 7 - 0.393 bytes/cycle - 1123.32 MiB/sec @ 3 ghz
+Alignment 6 - 0.472 bytes/cycle - 1350.53 MiB/sec @ 3 ghz
+Alignment 5 - 0.468 bytes/cycle - 1338.92 MiB/sec @ 3 ghz
+Alignment 4 - 0.470 bytes/cycle - 1345.68 MiB/sec @ 3 ghz
+Alignment 3 - 0.472 bytes/cycle - 1351.52 MiB/sec @ 3 ghz
+Alignment 2 - 0.472 bytes/cycle - 1349.84 MiB/sec @ 3 ghz
+Alignment 1 - 0.472 bytes/cycle - 1351.50 MiB/sec @ 3 ghz
+Alignment 0 - 0.472 bytes/cycle - 1349.89 MiB/sec @ 3 ghz
+Average - 0.461 bytes/cycle - 1320.15 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 49.00 cycles/hash
Small key speed test - 2-byte keys - 48.00 cycles/hash
-Small key speed test - 3-byte keys - 50.97 cycles/hash
+Small key speed test - 3-byte keys - 50.86 cycles/hash
Small key speed test - 4-byte keys - 50.00 cycles/hash
-Small key speed test - 5-byte keys - 58.00 cycles/hash
-Small key speed test - 6-byte keys - 57.95 cycles/hash
-Small key speed test - 7-byte keys - 58.69 cycles/hash
-Small key speed test - 8-byte keys - 58.95 cycles/hash
-Small key speed test - 9-byte keys - 67.58 cycles/hash
-Small key speed test - 10-byte keys - 67.45 cycles/hash
-Small key speed test - 11-byte keys - 67.44 cycles/hash
+Small key speed test - 5-byte keys - 58.62 cycles/hash
+Small key speed test - 6-byte keys - 57.51 cycles/hash
+Small key speed test - 7-byte keys - 58.00 cycles/hash
+Small key speed test - 8-byte keys - 58.48 cycles/hash
+Small key speed test - 9-byte keys - 67.00 cycles/hash
+Small key speed test - 10-byte keys - 67.00 cycles/hash
+Small key speed test - 11-byte keys - 67.00 cycles/hash
Small key speed test - 12-byte keys - 67.00 cycles/hash
-Small key speed test - 13-byte keys - 75.93 cycles/hash
-Small key speed test - 14-byte keys - 76.92 cycles/hash
-Small key speed test - 15-byte keys - 76.57 cycles/hash
+Small key speed test - 13-byte keys - 76.00 cycles/hash
+Small key speed test - 14-byte keys - 76.00 cycles/hash
+Small key speed test - 15-byte keys - 76.13 cycles/hash
Small key speed test - 16-byte keys - 76.00 cycles/hash
-Small key speed test - 17-byte keys - 84.84 cycles/hash
-Small key speed test - 18-byte keys - 84.73 cycles/hash
-Small key speed test - 19-byte keys - 84.98 cycles/hash
-Small key speed test - 20-byte keys - 85.90 cycles/hash
-Small key speed test - 21-byte keys - 94.98 cycles/hash
+Small key speed test - 17-byte keys - 84.00 cycles/hash
+Small key speed test - 18-byte keys - 84.29 cycles/hash
+Small key speed test - 19-byte keys - 84.80 cycles/hash
+Small key speed test - 20-byte keys - 85.00 cycles/hash
+Small key speed test - 21-byte keys - 94.00 cycles/hash
Small key speed test - 22-byte keys - 95.00 cycles/hash
-Small key speed test - 23-byte keys - 95.00 cycles/hash
-Small key speed test - 24-byte keys - 95.94 cycles/hash
-Small key speed test - 25-byte keys - 104.96 cycles/hash
-Small key speed test - 26-byte keys - 104.98 cycles/hash
-Small key speed test - 27-byte keys - 104.95 cycles/hash
-Small key speed test - 28-byte keys - 104.97 cycles/hash
-Small key speed test - 29-byte keys - 112.94 cycles/hash
-Small key speed test - 30-byte keys - 112.94 cycles/hash
-Small key speed test - 31-byte keys - 113.00 cycles/hash
-Average 80.220 cycles/hash
+Small key speed test - 23-byte keys - 94.94 cycles/hash
+Small key speed test - 24-byte keys - 95.33 cycles/hash
+Small key speed test - 25-byte keys - 104.00 cycles/hash
+Small key speed test - 26-byte keys - 104.27 cycles/hash
+Small key speed test - 27-byte keys - 104.33 cycles/hash
+Small key speed test - 28-byte keys - 104.68 cycles/hash
+Small key speed test - 29-byte keys - 112.28 cycles/hash
+Small key speed test - 30-byte keys - 112.00 cycles/hash
+Small key speed test - 31-byte keys - 112.28 cycles/hash
+Small key speed test - 32-byte keys - 112.16 cycles/hash
+Average 80.812 cycles/hash
+Average, weighted by key length freq. 80.451 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 70.725 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/poly_4_mersenne.txt b/doc/poly_4_mersenne.txt
index f305d3f3..a807876b 100644
--- a/doc/poly_4_mersenne.txt
+++ b/doc/poly_4_mersenne.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x130a6dc51a2c - 0x130a6dc519e4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.469 bytes/cycle - 1341.22 MiB/sec @ 3 ghz
-Alignment 6 - 0.470 bytes/cycle - 1343.75 MiB/sec @ 3 ghz
-Alignment 5 - 0.469 bytes/cycle - 1342.86 MiB/sec @ 3 ghz
-Alignment 4 - 0.470 bytes/cycle - 1343.75 MiB/sec @ 3 ghz
-Alignment 3 - 0.469 bytes/cycle - 1343.17 MiB/sec @ 3 ghz
-Alignment 2 - 0.470 bytes/cycle - 1343.63 MiB/sec @ 3 ghz
-Alignment 1 - 0.470 bytes/cycle - 1343.69 MiB/sec @ 3 ghz
-Alignment 0 - 0.470 bytes/cycle - 1343.47 MiB/sec @ 3 ghz
-Average - 0.469 bytes/cycle - 1343.19 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 58.71 cycles/hash
-Small key speed test - 2-byte keys - 57.12 cycles/hash
-Small key speed test - 3-byte keys - 59.00 cycles/hash
-Small key speed test - 4-byte keys - 58.00 cycles/hash
-Small key speed test - 5-byte keys - 67.00 cycles/hash
-Small key speed test - 6-byte keys - 67.00 cycles/hash
-Small key speed test - 7-byte keys - 67.12 cycles/hash
-Small key speed test - 8-byte keys - 67.12 cycles/hash
-Small key speed test - 9-byte keys - 76.09 cycles/hash
-Small key speed test - 10-byte keys - 76.95 cycles/hash
-Small key speed test - 11-byte keys - 76.92 cycles/hash
-Small key speed test - 12-byte keys - 75.96 cycles/hash
-Small key speed test - 13-byte keys - 85.01 cycles/hash
-Small key speed test - 14-byte keys - 84.93 cycles/hash
-Small key speed test - 15-byte keys - 84.97 cycles/hash
-Small key speed test - 16-byte keys - 85.11 cycles/hash
-Small key speed test - 17-byte keys - 93.92 cycles/hash
-Small key speed test - 18-byte keys - 94.90 cycles/hash
-Small key speed test - 19-byte keys - 94.00 cycles/hash
-Small key speed test - 20-byte keys - 94.25 cycles/hash
-Small key speed test - 21-byte keys - 105.90 cycles/hash
-Small key speed test - 22-byte keys - 106.08 cycles/hash
-Small key speed test - 23-byte keys - 105.43 cycles/hash
-Small key speed test - 24-byte keys - 104.45 cycles/hash
-Small key speed test - 25-byte keys - 112.90 cycles/hash
-Small key speed test - 26-byte keys - 112.95 cycles/hash
-Small key speed test - 27-byte keys - 112.92 cycles/hash
-Small key speed test - 28-byte keys - 112.92 cycles/hash
-Small key speed test - 29-byte keys - 121.63 cycles/hash
-Small key speed test - 30-byte keys - 121.91 cycles/hash
-Small key speed test - 31-byte keys - 121.90 cycles/hash
-Average 89.131 cycles/hash
+Alignment 7 - 0.488 bytes/cycle - 1395.41 MiB/sec @ 3 ghz
+Alignment 6 - 0.488 bytes/cycle - 1395.43 MiB/sec @ 3 ghz
+Alignment 5 - 0.488 bytes/cycle - 1395.42 MiB/sec @ 3 ghz
+Alignment 4 - 0.487 bytes/cycle - 1392.73 MiB/sec @ 3 ghz
+Alignment 3 - 0.487 bytes/cycle - 1392.10 MiB/sec @ 3 ghz
+Alignment 2 - 0.488 bytes/cycle - 1395.39 MiB/sec @ 3 ghz
+Alignment 1 - 0.487 bytes/cycle - 1392.45 MiB/sec @ 3 ghz
+Alignment 0 - 0.487 bytes/cycle - 1392.52 MiB/sec @ 3 ghz
+Average - 0.487 bytes/cycle - 1393.93 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 56.54 cycles/hash
+Small key speed test - 2-byte keys - 60.17 cycles/hash
+Small key speed test - 3-byte keys - 57.00 cycles/hash
+Small key speed test - 4-byte keys - 56.00 cycles/hash
+Small key speed test - 5-byte keys - 64.81 cycles/hash
+Small key speed test - 6-byte keys - 65.00 cycles/hash
+Small key speed test - 7-byte keys - 64.86 cycles/hash
+Small key speed test - 8-byte keys - 65.00 cycles/hash
+Small key speed test - 9-byte keys - 73.44 cycles/hash
+Small key speed test - 10-byte keys - 73.96 cycles/hash
+Small key speed test - 11-byte keys - 73.94 cycles/hash
+Small key speed test - 12-byte keys - 73.28 cycles/hash
+Small key speed test - 13-byte keys - 82.00 cycles/hash
+Small key speed test - 14-byte keys - 82.00 cycles/hash
+Small key speed test - 15-byte keys - 82.00 cycles/hash
+Small key speed test - 16-byte keys - 82.49 cycles/hash
+Small key speed test - 17-byte keys - 105.05 cycles/hash
+Small key speed test - 18-byte keys - 113.00 cycles/hash
+Small key speed test - 19-byte keys - 113.00 cycles/hash
+Small key speed test - 20-byte keys - 96.79 cycles/hash
+Small key speed test - 21-byte keys - 102.00 cycles/hash
+Small key speed test - 22-byte keys - 102.42 cycles/hash
+Small key speed test - 23-byte keys - 101.48 cycles/hash
+Small key speed test - 24-byte keys - 100.66 cycles/hash
+Small key speed test - 25-byte keys - 108.48 cycles/hash
+Small key speed test - 26-byte keys - 109.21 cycles/hash
+Small key speed test - 27-byte keys - 108.83 cycles/hash
+Small key speed test - 28-byte keys - 109.00 cycles/hash
+Small key speed test - 29-byte keys - 117.33 cycles/hash
+Small key speed test - 30-byte keys - 117.00 cycles/hash
+Small key speed test - 31-byte keys - 117.00 cycles/hash
+Small key speed test - 32-byte keys - 116.45 cycles/hash
+Average 89.068 cycles/hash
+Average, weighted by key length freq. 90.230 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 77.254 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/rmd128.txt b/doc/rmd128.txt
index a09212e6..3e036a55 100644
--- a/doc/rmd128.txt
+++ b/doc/rmd128.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x7391d28de5c - 0x7391d28ddf0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.117 bytes/cycle - 334.34 MiB/sec @ 3 ghz
-Alignment 6 - 0.117 bytes/cycle - 334.35 MiB/sec @ 3 ghz
-Alignment 5 - 0.117 bytes/cycle - 334.34 MiB/sec @ 3 ghz
-Alignment 4 - 0.117 bytes/cycle - 334.64 MiB/sec @ 3 ghz
-Alignment 3 - 0.117 bytes/cycle - 334.62 MiB/sec @ 3 ghz
-Alignment 2 - 0.117 bytes/cycle - 334.47 MiB/sec @ 3 ghz
-Alignment 1 - 0.117 bytes/cycle - 334.62 MiB/sec @ 3 ghz
-Alignment 0 - 0.117 bytes/cycle - 333.54 MiB/sec @ 3 ghz
-Average - 0.117 bytes/cycle - 334.36 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 693.94 cycles/hash
-Small key speed test - 2-byte keys - 693.86 cycles/hash
-Small key speed test - 3-byte keys - 692.23 cycles/hash
-Small key speed test - 4-byte keys - 687.11 cycles/hash
-Small key speed test - 5-byte keys - 684.53 cycles/hash
-Small key speed test - 6-byte keys - 683.65 cycles/hash
-Small key speed test - 7-byte keys - 682.00 cycles/hash
-Small key speed test - 8-byte keys - 680.97 cycles/hash
-Small key speed test - 9-byte keys - 676.93 cycles/hash
-Small key speed test - 10-byte keys - 677.00 cycles/hash
-Small key speed test - 11-byte keys - 675.30 cycles/hash
-Small key speed test - 12-byte keys - 672.85 cycles/hash
-Small key speed test - 13-byte keys - 671.80 cycles/hash
-Small key speed test - 14-byte keys - 670.00 cycles/hash
-Small key speed test - 15-byte keys - 667.97 cycles/hash
-Small key speed test - 16-byte keys - 664.93 cycles/hash
-Small key speed test - 17-byte keys - 663.02 cycles/hash
-Small key speed test - 18-byte keys - 660.06 cycles/hash
-Small key speed test - 19-byte keys - 632.48 cycles/hash
-Small key speed test - 20-byte keys - 657.94 cycles/hash
-Small key speed test - 21-byte keys - 655.56 cycles/hash
-Small key speed test - 22-byte keys - 654.00 cycles/hash
-Small key speed test - 23-byte keys - 625.84 cycles/hash
-Small key speed test - 24-byte keys - 636.93 cycles/hash
-Small key speed test - 25-byte keys - 642.85 cycles/hash
-Small key speed test - 26-byte keys - 629.98 cycles/hash
-Small key speed test - 27-byte keys - 640.88 cycles/hash
-Small key speed test - 28-byte keys - 616.31 cycles/hash
-Small key speed test - 29-byte keys - 614.81 cycles/hash
-Small key speed test - 30-byte keys - 613.12 cycles/hash
-Small key speed test - 31-byte keys - 611.17 cycles/hash
-Average 659.033 cycles/hash
+Alignment 7 - 0.103 bytes/cycle - 294.44 MiB/sec @ 3 ghz
+Alignment 6 - 0.103 bytes/cycle - 294.44 MiB/sec @ 3 ghz
+Alignment 5 - 0.103 bytes/cycle - 294.52 MiB/sec @ 3 ghz
+Alignment 4 - 0.103 bytes/cycle - 294.10 MiB/sec @ 3 ghz
+Alignment 3 - 0.103 bytes/cycle - 294.44 MiB/sec @ 3 ghz
+Alignment 2 - 0.103 bytes/cycle - 294.53 MiB/sec @ 3 ghz
+Alignment 1 - 0.103 bytes/cycle - 294.52 MiB/sec @ 3 ghz
+Alignment 0 - 0.103 bytes/cycle - 294.37 MiB/sec @ 3 ghz
+Average - 0.103 bytes/cycle - 294.42 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 757.98 cycles/hash
+Small key speed test - 2-byte keys - 749.83 cycles/hash
+Small key speed test - 3-byte keys - 745.42 cycles/hash
+Small key speed test - 4-byte keys - 741.18 cycles/hash
+Small key speed test - 5-byte keys - 729.11 cycles/hash
+Small key speed test - 6-byte keys - 731.12 cycles/hash
+Small key speed test - 7-byte keys - 728.91 cycles/hash
+Small key speed test - 8-byte keys - 730.13 cycles/hash
+Small key speed test - 9-byte keys - 728.50 cycles/hash
+Small key speed test - 10-byte keys - 726.89 cycles/hash
+Small key speed test - 11-byte keys - 725.40 cycles/hash
+Small key speed test - 12-byte keys - 727.30 cycles/hash
+Small key speed test - 13-byte keys - 724.33 cycles/hash
+Small key speed test - 14-byte keys - 725.59 cycles/hash
+Small key speed test - 15-byte keys - 723.63 cycles/hash
+Small key speed test - 16-byte keys - 721.12 cycles/hash
+Small key speed test - 17-byte keys - 719.30 cycles/hash
+Small key speed test - 18-byte keys - 698.42 cycles/hash
+Small key speed test - 19-byte keys - 698.80 cycles/hash
+Small key speed test - 20-byte keys - 697.33 cycles/hash
+Small key speed test - 21-byte keys - 695.55 cycles/hash
+Small key speed test - 22-byte keys - 695.01 cycles/hash
+Small key speed test - 23-byte keys - 694.26 cycles/hash
+Small key speed test - 24-byte keys - 692.79 cycles/hash
+Small key speed test - 25-byte keys - 692.22 cycles/hash
+Small key speed test - 26-byte keys - 690.87 cycles/hash
+Small key speed test - 27-byte keys - 690.96 cycles/hash
+Small key speed test - 28-byte keys - 689.80 cycles/hash
+Small key speed test - 29-byte keys - 685.72 cycles/hash
+Small key speed test - 30-byte keys - 686.95 cycles/hash
+Small key speed test - 31-byte keys - 681.89 cycles/hash
+Small key speed test - 32-byte keys - 679.23 cycles/hash
+Average 712.674 cycles/hash
+Average, weighted by key length freq. 713.429 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 724.707 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/rmd160.txt b/doc/rmd160.txt
index 728a8140..ec7ce06f 100644
--- a/doc/rmd160.txt
+++ b/doc/rmd160.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x7b7ede2f4f0 - 0x7b7ede2f484). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.074 bytes/cycle - 211.07 MiB/sec @ 3 ghz
-Alignment 6 - 0.074 bytes/cycle - 211.07 MiB/sec @ 3 ghz
-Alignment 5 - 0.074 bytes/cycle - 211.07 MiB/sec @ 3 ghz
-Alignment 4 - 0.074 bytes/cycle - 211.09 MiB/sec @ 3 ghz
-Alignment 3 - 0.074 bytes/cycle - 211.08 MiB/sec @ 3 ghz
-Alignment 2 - 0.074 bytes/cycle - 211.08 MiB/sec @ 3 ghz
-Alignment 1 - 0.074 bytes/cycle - 211.08 MiB/sec @ 3 ghz
-Alignment 0 - 0.073 bytes/cycle - 210.02 MiB/sec @ 3 ghz
-Average - 0.074 bytes/cycle - 210.94 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1010.60 cycles/hash
-Small key speed test - 2-byte keys - 1010.45 cycles/hash
-Small key speed test - 3-byte keys - 1008.49 cycles/hash
-Small key speed test - 4-byte keys - 1006.91 cycles/hash
-Small key speed test - 5-byte keys - 1004.60 cycles/hash
-Small key speed test - 6-byte keys - 1003.23 cycles/hash
-Small key speed test - 7-byte keys - 1001.00 cycles/hash
-Small key speed test - 8-byte keys - 998.00 cycles/hash
-Small key speed test - 9-byte keys - 996.53 cycles/hash
-Small key speed test - 10-byte keys - 994.73 cycles/hash
-Small key speed test - 11-byte keys - 993.00 cycles/hash
-Small key speed test - 12-byte keys - 991.06 cycles/hash
-Small key speed test - 13-byte keys - 989.12 cycles/hash
-Small key speed test - 14-byte keys - 987.43 cycles/hash
-Small key speed test - 15-byte keys - 985.81 cycles/hash
-Small key speed test - 16-byte keys - 984.60 cycles/hash
-Small key speed test - 17-byte keys - 980.96 cycles/hash
-Small key speed test - 18-byte keys - 979.06 cycles/hash
-Small key speed test - 19-byte keys - 961.42 cycles/hash
-Small key speed test - 20-byte keys - 975.76 cycles/hash
-Small key speed test - 21-byte keys - 973.99 cycles/hash
-Small key speed test - 22-byte keys - 971.93 cycles/hash
-Small key speed test - 23-byte keys - 954.16 cycles/hash
-Small key speed test - 24-byte keys - 952.14 cycles/hash
-Small key speed test - 25-byte keys - 950.42 cycles/hash
-Small key speed test - 26-byte keys - 948.88 cycles/hash
-Small key speed test - 27-byte keys - 962.93 cycles/hash
-Small key speed test - 28-byte keys - 945.29 cycles/hash
-Small key speed test - 29-byte keys - 943.11 cycles/hash
-Small key speed test - 30-byte keys - 941.45 cycles/hash
-Small key speed test - 31-byte keys - 939.83 cycles/hash
-Average 978.931 cycles/hash
+Alignment 7 - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+Alignment 6 - 0.066 bytes/cycle - 188.66 MiB/sec @ 3 ghz
+Alignment 5 - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+Alignment 4 - 0.066 bytes/cycle - 188.74 MiB/sec @ 3 ghz
+Alignment 3 - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+Alignment 2 - 0.066 bytes/cycle - 188.75 MiB/sec @ 3 ghz
+Alignment 1 - 0.066 bytes/cycle - 188.77 MiB/sec @ 3 ghz
+Alignment 0 - 0.066 bytes/cycle - 188.77 MiB/sec @ 3 ghz
+Average - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 1097.27 cycles/hash
+Small key speed test - 2-byte keys - 1095.22 cycles/hash
+Small key speed test - 3-byte keys - 1094.05 cycles/hash
+Small key speed test - 4-byte keys - 1089.87 cycles/hash
+Small key speed test - 5-byte keys - 1088.79 cycles/hash
+Small key speed test - 6-byte keys - 1086.45 cycles/hash
+Small key speed test - 7-byte keys - 1084.78 cycles/hash
+Small key speed test - 8-byte keys - 1082.67 cycles/hash
+Small key speed test - 9-byte keys - 1082.74 cycles/hash
+Small key speed test - 10-byte keys - 1080.56 cycles/hash
+Small key speed test - 11-byte keys - 1080.02 cycles/hash
+Small key speed test - 12-byte keys - 1079.16 cycles/hash
+Small key speed test - 13-byte keys - 1079.51 cycles/hash
+Small key speed test - 14-byte keys - 1078.03 cycles/hash
+Small key speed test - 15-byte keys - 1077.88 cycles/hash
+Small key speed test - 16-byte keys - 1076.63 cycles/hash
+Small key speed test - 17-byte keys - 1073.29 cycles/hash
+Small key speed test - 18-byte keys - 1065.18 cycles/hash
+Small key speed test - 19-byte keys - 1063.65 cycles/hash
+Small key speed test - 20-byte keys - 1062.66 cycles/hash
+Small key speed test - 21-byte keys - 1061.69 cycles/hash
+Small key speed test - 22-byte keys - 1060.73 cycles/hash
+Small key speed test - 23-byte keys - 1060.55 cycles/hash
+Small key speed test - 24-byte keys - 1039.77 cycles/hash
+Small key speed test - 25-byte keys - 1036.95 cycles/hash
+Small key speed test - 26-byte keys - 1035.21 cycles/hash
+Small key speed test - 27-byte keys - 1032.66 cycles/hash
+Small key speed test - 28-byte keys - 1031.57 cycles/hash
+Small key speed test - 29-byte keys - 1029.82 cycles/hash
+Small key speed test - 30-byte keys - 1027.22 cycles/hash
+Small key speed test - 31-byte keys - 1026.60 cycles/hash
+Small key speed test - 32-byte keys - 1027.58 cycles/hash
+Average 1065.273 cycles/hash
+Average, weighted by key length freq. 1069.103 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 1079.338 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/rmd256.txt b/doc/rmd256.txt
index 85a17b9b..42ca0530 100644
--- a/doc/rmd256.txt
+++ b/doc/rmd256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x8753bf2381c - 0x8753bf237b0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.127 bytes/cycle - 362.44 MiB/sec @ 3 ghz
-Alignment 6 - 0.127 bytes/cycle - 362.44 MiB/sec @ 3 ghz
-Alignment 5 - 0.127 bytes/cycle - 362.43 MiB/sec @ 3 ghz
-Alignment 4 - 0.127 bytes/cycle - 362.70 MiB/sec @ 3 ghz
-Alignment 3 - 0.127 bytes/cycle - 362.66 MiB/sec @ 3 ghz
-Alignment 2 - 0.127 bytes/cycle - 362.66 MiB/sec @ 3 ghz
-Alignment 1 - 0.127 bytes/cycle - 362.65 MiB/sec @ 3 ghz
-Alignment 0 - 0.127 bytes/cycle - 361.96 MiB/sec @ 3 ghz
-Average - 0.127 bytes/cycle - 362.49 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 649.00 cycles/hash
-Small key speed test - 2-byte keys - 650.75 cycles/hash
-Small key speed test - 3-byte keys - 646.51 cycles/hash
-Small key speed test - 4-byte keys - 645.31 cycles/hash
-Small key speed test - 5-byte keys - 643.69 cycles/hash
-Small key speed test - 6-byte keys - 641.58 cycles/hash
-Small key speed test - 7-byte keys - 641.86 cycles/hash
-Small key speed test - 8-byte keys - 639.05 cycles/hash
-Small key speed test - 9-byte keys - 636.00 cycles/hash
-Small key speed test - 10-byte keys - 634.50 cycles/hash
-Small key speed test - 11-byte keys - 633.14 cycles/hash
-Small key speed test - 12-byte keys - 632.61 cycles/hash
-Small key speed test - 13-byte keys - 629.47 cycles/hash
-Small key speed test - 14-byte keys - 628.37 cycles/hash
-Small key speed test - 15-byte keys - 625.84 cycles/hash
-Small key speed test - 16-byte keys - 621.55 cycles/hash
-Small key speed test - 17-byte keys - 618.53 cycles/hash
-Small key speed test - 18-byte keys - 617.83 cycles/hash
-Small key speed test - 19-byte keys - 616.02 cycles/hash
-Small key speed test - 20-byte keys - 606.90 cycles/hash
-Small key speed test - 21-byte keys - 593.74 cycles/hash
-Small key speed test - 22-byte keys - 610.23 cycles/hash
-Small key speed test - 23-byte keys - 590.22 cycles/hash
-Small key speed test - 24-byte keys - 588.12 cycles/hash
-Small key speed test - 25-byte keys - 604.00 cycles/hash
-Small key speed test - 26-byte keys - 584.97 cycles/hash
-Small key speed test - 27-byte keys - 583.08 cycles/hash
-Small key speed test - 28-byte keys - 581.51 cycles/hash
-Small key speed test - 29-byte keys - 579.69 cycles/hash
-Small key speed test - 30-byte keys - 577.51 cycles/hash
-Small key speed test - 31-byte keys - 576.03 cycles/hash
-Average 617.020 cycles/hash
+Alignment 7 - 0.130 bytes/cycle - 372.55 MiB/sec @ 3 ghz
+Alignment 6 - 0.130 bytes/cycle - 371.17 MiB/sec @ 3 ghz
+Alignment 5 - 0.128 bytes/cycle - 365.39 MiB/sec @ 3 ghz
+Alignment 4 - 0.127 bytes/cycle - 364.42 MiB/sec @ 3 ghz
+Alignment 3 - 0.127 bytes/cycle - 364.74 MiB/sec @ 3 ghz
+Alignment 2 - 0.127 bytes/cycle - 364.26 MiB/sec @ 3 ghz
+Alignment 1 - 0.127 bytes/cycle - 363.51 MiB/sec @ 3 ghz
+Alignment 0 - 0.127 bytes/cycle - 363.63 MiB/sec @ 3 ghz
+Average - 0.128 bytes/cycle - 366.21 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 643.49 cycles/hash
+Small key speed test - 2-byte keys - 638.83 cycles/hash
+Small key speed test - 3-byte keys - 636.72 cycles/hash
+Small key speed test - 4-byte keys - 637.79 cycles/hash
+Small key speed test - 5-byte keys - 639.08 cycles/hash
+Small key speed test - 6-byte keys - 637.19 cycles/hash
+Small key speed test - 7-byte keys - 638.28 cycles/hash
+Small key speed test - 8-byte keys - 636.35 cycles/hash
+Small key speed test - 9-byte keys - 635.53 cycles/hash
+Small key speed test - 10-byte keys - 634.00 cycles/hash
+Small key speed test - 11-byte keys - 633.51 cycles/hash
+Small key speed test - 12-byte keys - 632.55 cycles/hash
+Small key speed test - 13-byte keys - 631.00 cycles/hash
+Small key speed test - 14-byte keys - 628.00 cycles/hash
+Small key speed test - 15-byte keys - 628.22 cycles/hash
+Small key speed test - 16-byte keys - 626.00 cycles/hash
+Small key speed test - 17-byte keys - 626.58 cycles/hash
+Small key speed test - 18-byte keys - 609.75 cycles/hash
+Small key speed test - 19-byte keys - 608.49 cycles/hash
+Small key speed test - 20-byte keys - 608.68 cycles/hash
+Small key speed test - 21-byte keys - 606.99 cycles/hash
+Small key speed test - 22-byte keys - 606.00 cycles/hash
+Small key speed test - 23-byte keys - 605.00 cycles/hash
+Small key speed test - 24-byte keys - 594.35 cycles/hash
+Small key speed test - 25-byte keys - 592.17 cycles/hash
+Small key speed test - 26-byte keys - 586.78 cycles/hash
+Small key speed test - 27-byte keys - 589.07 cycles/hash
+Small key speed test - 28-byte keys - 586.43 cycles/hash
+Small key speed test - 29-byte keys - 581.98 cycles/hash
+Small key speed test - 30-byte keys - 580.12 cycles/hash
+Small key speed test - 31-byte keys - 578.55 cycles/hash
+Small key speed test - 32-byte keys - 574.92 cycles/hash
+Average 615.387 cycles/hash
+Average, weighted by key length freq. 619.529 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 630.614 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/ryzen3.html b/doc/ryzen3.html
index 0adbd657..f1f1c90d 100644
--- a/doc/ryzen3.html
+++ b/doc/ryzen3.html
@@ -256,6 +256,22 @@ SMhasher
+edonr224
+525.27
+365.89
+504.28 (4)
+
+
+
+
+edonr256
+525.27
+365.89
+504.28 (4)
+
+
+
+
blake2s-128
409.80
542.11
@@ -448,6 +464,38 @@ SMhasher
insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
o1hash
14677437.55
14.26
@@ -1344,6 +1392,14 @@ SMhasher
+CityCrc256
+19603.25
+42.27
+149.40 (4)
+
+
+
+
FarmHash32
27580.96
37.26
@@ -1600,6 +1656,30 @@ SMhasher
5 bad seeds
+w1hash
+2532.89
+37.95
+222.17 (4)
+
+
+
+
+rapidhash
+23789.79
+22.80
+138.71 (7)
+574
+
+
+
+rapidhash_unrolled
+23892.88
+23.41
+139.47 (12)
+782
+
+
+
umash32
19106.63
46.69
@@ -1703,12 +1783,22 @@ SMhasher
728
+
+gxhash64
+1017.15
+178.25
+313.64 (9)
+
+
+
Other timings:
Default AMD Ryzen 5 PRO 3350G 3.6GHz
+ fast AMD EPYC 9554P 64-Core Processor (Server from 2024)
+ Intel i7-6820HQ 3.5GHz (Lenovo P50 from 2024)
AMD Ryzen 5 PRO 3350G 3.6GHz 32bit
Intel i5-2300 2.8GHz
Intel i7-4650 1.7GHz (Mac Air)
diff --git a/doc/sha1-160.txt b/doc/sha1-160.txt
index 32d685ef..92b8746b 100644
--- a/doc/sha1-160.txt
+++ b/doc/sha1-160.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x2b1ec8b2f44 - 0x2b1ec8b2efc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.130 bytes/cycle - 371.81 MiB/sec @ 3 ghz
-Alignment 6 - 0.130 bytes/cycle - 371.82 MiB/sec @ 3 ghz
-Alignment 5 - 0.130 bytes/cycle - 371.82 MiB/sec @ 3 ghz
-Alignment 4 - 0.126 bytes/cycle - 361.73 MiB/sec @ 3 ghz
-Alignment 3 - 0.127 bytes/cycle - 361.94 MiB/sec @ 3 ghz
-Alignment 2 - 0.126 bytes/cycle - 361.65 MiB/sec @ 3 ghz
-Alignment 1 - 0.126 bytes/cycle - 359.73 MiB/sec @ 3 ghz
-Alignment 0 - 0.124 bytes/cycle - 354.29 MiB/sec @ 3 ghz
-Average - 0.127 bytes/cycle - 364.35 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1044.05 cycles/hash
-Small key speed test - 2-byte keys - 1052.76 cycles/hash
-Small key speed test - 3-byte keys - 1044.52 cycles/hash
-Small key speed test - 4-byte keys - 1037.52 cycles/hash
-Small key speed test - 5-byte keys - 1038.74 cycles/hash
-Small key speed test - 6-byte keys - 1024.64 cycles/hash
-Small key speed test - 7-byte keys - 1015.67 cycles/hash
-Small key speed test - 8-byte keys - 1010.68 cycles/hash
-Small key speed test - 9-byte keys - 1001.13 cycles/hash
-Small key speed test - 10-byte keys - 995.19 cycles/hash
-Small key speed test - 11-byte keys - 987.39 cycles/hash
-Small key speed test - 12-byte keys - 982.22 cycles/hash
-Small key speed test - 13-byte keys - 973.77 cycles/hash
-Small key speed test - 14-byte keys - 967.02 cycles/hash
-Small key speed test - 15-byte keys - 958.99 cycles/hash
-Small key speed test - 16-byte keys - 940.74 cycles/hash
-Small key speed test - 17-byte keys - 933.67 cycles/hash
-Small key speed test - 18-byte keys - 926.36 cycles/hash
-Small key speed test - 19-byte keys - 918.68 cycles/hash
-Small key speed test - 20-byte keys - 913.33 cycles/hash
-Small key speed test - 21-byte keys - 906.79 cycles/hash
-Small key speed test - 22-byte keys - 899.34 cycles/hash
-Small key speed test - 23-byte keys - 894.07 cycles/hash
-Small key speed test - 24-byte keys - 888.39 cycles/hash
-Small key speed test - 25-byte keys - 881.41 cycles/hash
-Small key speed test - 26-byte keys - 875.90 cycles/hash
-Small key speed test - 27-byte keys - 868.83 cycles/hash
-Small key speed test - 28-byte keys - 862.83 cycles/hash
-Small key speed test - 29-byte keys - 856.03 cycles/hash
-Small key speed test - 30-byte keys - 849.64 cycles/hash
-Small key speed test - 31-byte keys - 843.78 cycles/hash
-Average 948.196 cycles/hash
+Alignment 7 - 0.204 bytes/cycle - 583.39 MiB/sec @ 3 ghz
+Alignment 6 - 0.204 bytes/cycle - 583.45 MiB/sec @ 3 ghz
+Alignment 5 - 0.204 bytes/cycle - 583.42 MiB/sec @ 3 ghz
+Alignment 4 - 0.204 bytes/cycle - 583.48 MiB/sec @ 3 ghz
+Alignment 3 - 0.204 bytes/cycle - 583.47 MiB/sec @ 3 ghz
+Alignment 2 - 0.204 bytes/cycle - 583.32 MiB/sec @ 3 ghz
+Alignment 1 - 0.204 bytes/cycle - 583.43 MiB/sec @ 3 ghz
+Alignment 0 - 0.204 bytes/cycle - 583.44 MiB/sec @ 3 ghz
+Average - 0.204 bytes/cycle - 583.43 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 915.42 cycles/hash
+Small key speed test - 2-byte keys - 917.32 cycles/hash
+Small key speed test - 3-byte keys - 904.15 cycles/hash
+Small key speed test - 4-byte keys - 894.69 cycles/hash
+Small key speed test - 5-byte keys - 882.57 cycles/hash
+Small key speed test - 6-byte keys - 877.78 cycles/hash
+Small key speed test - 7-byte keys - 874.05 cycles/hash
+Small key speed test - 8-byte keys - 864.55 cycles/hash
+Small key speed test - 9-byte keys - 856.99 cycles/hash
+Small key speed test - 10-byte keys - 856.18 cycles/hash
+Small key speed test - 11-byte keys - 848.20 cycles/hash
+Small key speed test - 12-byte keys - 834.46 cycles/hash
+Small key speed test - 13-byte keys - 832.98 cycles/hash
+Small key speed test - 14-byte keys - 824.68 cycles/hash
+Small key speed test - 15-byte keys - 818.50 cycles/hash
+Small key speed test - 16-byte keys - 812.35 cycles/hash
+Small key speed test - 17-byte keys - 810.77 cycles/hash
+Small key speed test - 18-byte keys - 793.69 cycles/hash
+Small key speed test - 19-byte keys - 792.87 cycles/hash
+Small key speed test - 20-byte keys - 779.07 cycles/hash
+Small key speed test - 21-byte keys - 773.94 cycles/hash
+Small key speed test - 22-byte keys - 764.95 cycles/hash
+Small key speed test - 23-byte keys - 757.66 cycles/hash
+Small key speed test - 24-byte keys - 749.60 cycles/hash
+Small key speed test - 25-byte keys - 739.55 cycles/hash
+Small key speed test - 26-byte keys - 732.02 cycles/hash
+Small key speed test - 27-byte keys - 724.05 cycles/hash
+Small key speed test - 28-byte keys - 714.92 cycles/hash
+Small key speed test - 29-byte keys - 711.23 cycles/hash
+Small key speed test - 30-byte keys - 705.20 cycles/hash
+Small key speed test - 31-byte keys - 692.89 cycles/hash
+Small key speed test - 32-byte keys - 682.92 cycles/hash
+Average 804.381 cycles/hash
+Average, weighted by key length freq. 806.574 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 835.749 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha1_32.txt b/doc/sha1_32.txt
index ca0f7a88..1089c034 100644
--- a/doc/sha1_32.txt
+++ b/doc/sha1_32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x336d8fbdda4 - 0x336d8fbdd38). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.198 bytes/cycle - 567.43 MiB/sec @ 3 ghz
-Alignment 6 - 0.199 bytes/cycle - 568.49 MiB/sec @ 3 ghz
-Alignment 5 - 0.201 bytes/cycle - 574.59 MiB/sec @ 3 ghz
-Alignment 4 - 0.201 bytes/cycle - 575.44 MiB/sec @ 3 ghz
-Alignment 3 - 0.201 bytes/cycle - 575.80 MiB/sec @ 3 ghz
-Alignment 2 - 0.201 bytes/cycle - 574.90 MiB/sec @ 3 ghz
-Alignment 1 - 0.201 bytes/cycle - 575.50 MiB/sec @ 3 ghz
-Alignment 0 - 0.202 bytes/cycle - 577.55 MiB/sec @ 3 ghz
-Average - 0.201 bytes/cycle - 573.71 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 877.59 cycles/hash
-Small key speed test - 2-byte keys - 852.81 cycles/hash
-Small key speed test - 3-byte keys - 840.47 cycles/hash
-Small key speed test - 4-byte keys - 848.78 cycles/hash
-Small key speed test - 5-byte keys - 841.76 cycles/hash
-Small key speed test - 6-byte keys - 829.37 cycles/hash
-Small key speed test - 7-byte keys - 810.37 cycles/hash
-Small key speed test - 8-byte keys - 810.64 cycles/hash
-Small key speed test - 9-byte keys - 801.61 cycles/hash
-Small key speed test - 10-byte keys - 784.74 cycles/hash
-Small key speed test - 11-byte keys - 771.82 cycles/hash
-Small key speed test - 12-byte keys - 782.93 cycles/hash
-Small key speed test - 13-byte keys - 777.59 cycles/hash
-Small key speed test - 14-byte keys - 754.30 cycles/hash
-Small key speed test - 15-byte keys - 742.14 cycles/hash
-Small key speed test - 16-byte keys - 752.07 cycles/hash
-Small key speed test - 17-byte keys - 743.80 cycles/hash
-Small key speed test - 18-byte keys - 723.07 cycles/hash
-Small key speed test - 19-byte keys - 717.42 cycles/hash
-Small key speed test - 20-byte keys - 718.24 cycles/hash
-Small key speed test - 21-byte keys - 707.08 cycles/hash
-Small key speed test - 22-byte keys - 677.87 cycles/hash
-Small key speed test - 23-byte keys - 669.44 cycles/hash
-Small key speed test - 24-byte keys - 672.72 cycles/hash
-Small key speed test - 25-byte keys - 665.64 cycles/hash
-Small key speed test - 26-byte keys - 647.72 cycles/hash
-Small key speed test - 27-byte keys - 637.28 cycles/hash
-Small key speed test - 28-byte keys - 694.61 cycles/hash
-Small key speed test - 29-byte keys - 628.25 cycles/hash
-Small key speed test - 30-byte keys - 711.92 cycles/hash
-Small key speed test - 31-byte keys - 622.73 cycles/hash
-Average 745.703 cycles/hash
+Alignment 7 - 0.208 bytes/cycle - 594.55 MiB/sec @ 3 ghz
+Alignment 6 - 0.208 bytes/cycle - 594.62 MiB/sec @ 3 ghz
+Alignment 5 - 0.208 bytes/cycle - 594.75 MiB/sec @ 3 ghz
+Alignment 4 - 0.208 bytes/cycle - 594.81 MiB/sec @ 3 ghz
+Alignment 3 - 0.208 bytes/cycle - 594.70 MiB/sec @ 3 ghz
+Alignment 2 - 0.208 bytes/cycle - 594.70 MiB/sec @ 3 ghz
+Alignment 1 - 0.208 bytes/cycle - 594.78 MiB/sec @ 3 ghz
+Alignment 0 - 0.171 bytes/cycle - 489.60 MiB/sec @ 3 ghz
+Average - 0.203 bytes/cycle - 581.56 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 836.13 cycles/hash
+Small key speed test - 2-byte keys - 830.80 cycles/hash
+Small key speed test - 3-byte keys - 873.68 cycles/hash
+Small key speed test - 4-byte keys - 809.74 cycles/hash
+Small key speed test - 5-byte keys - 801.13 cycles/hash
+Small key speed test - 6-byte keys - 793.77 cycles/hash
+Small key speed test - 7-byte keys - 785.40 cycles/hash
+Small key speed test - 8-byte keys - 776.11 cycles/hash
+Small key speed test - 9-byte keys - 769.33 cycles/hash
+Small key speed test - 10-byte keys - 763.35 cycles/hash
+Small key speed test - 11-byte keys - 753.94 cycles/hash
+Small key speed test - 12-byte keys - 746.43 cycles/hash
+Small key speed test - 13-byte keys - 738.49 cycles/hash
+Small key speed test - 14-byte keys - 732.62 cycles/hash
+Small key speed test - 15-byte keys - 722.36 cycles/hash
+Small key speed test - 16-byte keys - 711.57 cycles/hash
+Small key speed test - 17-byte keys - 702.80 cycles/hash
+Small key speed test - 18-byte keys - 717.95 cycles/hash
+Small key speed test - 19-byte keys - 709.45 cycles/hash
+Small key speed test - 20-byte keys - 702.65 cycles/hash
+Small key speed test - 21-byte keys - 721.04 cycles/hash
+Small key speed test - 22-byte keys - 712.63 cycles/hash
+Small key speed test - 23-byte keys - 700.15 cycles/hash
+Small key speed test - 24-byte keys - 670.31 cycles/hash
+Small key speed test - 25-byte keys - 687.68 cycles/hash
+Small key speed test - 26-byte keys - 681.78 cycles/hash
+Small key speed test - 27-byte keys - 654.87 cycles/hash
+Small key speed test - 28-byte keys - 639.41 cycles/hash
+Small key speed test - 29-byte keys - 658.88 cycles/hash
+Small key speed test - 30-byte keys - 645.84 cycles/hash
+Small key speed test - 31-byte keys - 622.70 cycles/hash
+Small key speed test - 32-byte keys - 610.39 cycles/hash
+Average 727.605 cycles/hash
+Average, weighted by key length freq. 722.154 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 742.172 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha1_64.txt b/doc/sha1_64.txt
index c38220de..771703d1 100644
--- a/doc/sha1_64.txt
+++ b/doc/sha1_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x3b0ac769410 - 0x3b0ac7693c8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.201 bytes/cycle - 574.85 MiB/sec @ 3 ghz
-Alignment 6 - 0.199 bytes/cycle - 570.09 MiB/sec @ 3 ghz
-Alignment 5 - 0.201 bytes/cycle - 575.03 MiB/sec @ 3 ghz
-Alignment 4 - 0.201 bytes/cycle - 573.77 MiB/sec @ 3 ghz
-Alignment 3 - 0.201 bytes/cycle - 574.93 MiB/sec @ 3 ghz
-Alignment 2 - 0.201 bytes/cycle - 574.20 MiB/sec @ 3 ghz
-Alignment 1 - 0.201 bytes/cycle - 574.56 MiB/sec @ 3 ghz
-Alignment 0 - 0.195 bytes/cycle - 558.81 MiB/sec @ 3 ghz
-Average - 0.200 bytes/cycle - 572.03 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 879.02 cycles/hash
-Small key speed test - 2-byte keys - 870.84 cycles/hash
-Small key speed test - 3-byte keys - 861.24 cycles/hash
-Small key speed test - 4-byte keys - 849.15 cycles/hash
-Small key speed test - 5-byte keys - 849.04 cycles/hash
-Small key speed test - 6-byte keys - 839.15 cycles/hash
-Small key speed test - 7-byte keys - 831.42 cycles/hash
-Small key speed test - 8-byte keys - 829.69 cycles/hash
-Small key speed test - 9-byte keys - 830.41 cycles/hash
-Small key speed test - 10-byte keys - 820.96 cycles/hash
-Small key speed test - 11-byte keys - 851.71 cycles/hash
-Small key speed test - 12-byte keys - 920.00 cycles/hash
-Small key speed test - 13-byte keys - 788.78 cycles/hash
-Small key speed test - 14-byte keys - 777.96 cycles/hash
-Small key speed test - 15-byte keys - 778.62 cycles/hash
-Small key speed test - 16-byte keys - 762.22 cycles/hash
-Small key speed test - 17-byte keys - 762.52 cycles/hash
-Small key speed test - 18-byte keys - 751.25 cycles/hash
-Small key speed test - 19-byte keys - 742.58 cycles/hash
-Small key speed test - 20-byte keys - 739.80 cycles/hash
-Small key speed test - 21-byte keys - 718.54 cycles/hash
-Small key speed test - 22-byte keys - 706.08 cycles/hash
-Small key speed test - 23-byte keys - 695.48 cycles/hash
-Small key speed test - 24-byte keys - 693.27 cycles/hash
-Small key speed test - 25-byte keys - 681.72 cycles/hash
-Small key speed test - 26-byte keys - 674.24 cycles/hash
-Small key speed test - 27-byte keys - 667.27 cycles/hash
-Small key speed test - 28-byte keys - 668.07 cycles/hash
-Small key speed test - 29-byte keys - 655.94 cycles/hash
-Small key speed test - 30-byte keys - 652.32 cycles/hash
-Small key speed test - 31-byte keys - 645.11 cycles/hash
-Average 767.561 cycles/hash
+Alignment 7 - 0.201 bytes/cycle - 576.33 MiB/sec @ 3 ghz
+Alignment 6 - 0.195 bytes/cycle - 559.29 MiB/sec @ 3 ghz
+Alignment 5 - 0.201 bytes/cycle - 576.19 MiB/sec @ 3 ghz
+Alignment 4 - 0.201 bytes/cycle - 576.20 MiB/sec @ 3 ghz
+Alignment 3 - 0.201 bytes/cycle - 576.21 MiB/sec @ 3 ghz
+Alignment 2 - 0.201 bytes/cycle - 576.15 MiB/sec @ 3 ghz
+Alignment 1 - 0.201 bytes/cycle - 576.21 MiB/sec @ 3 ghz
+Alignment 0 - 0.201 bytes/cycle - 576.09 MiB/sec @ 3 ghz
+Average - 0.201 bytes/cycle - 574.08 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 896.17 cycles/hash
+Small key speed test - 2-byte keys - 879.70 cycles/hash
+Small key speed test - 3-byte keys - 868.37 cycles/hash
+Small key speed test - 4-byte keys - 866.84 cycles/hash
+Small key speed test - 5-byte keys - 849.28 cycles/hash
+Small key speed test - 6-byte keys - 841.59 cycles/hash
+Small key speed test - 7-byte keys - 828.13 cycles/hash
+Small key speed test - 8-byte keys - 831.01 cycles/hash
+Small key speed test - 9-byte keys - 828.85 cycles/hash
+Small key speed test - 10-byte keys - 821.24 cycles/hash
+Small key speed test - 11-byte keys - 801.68 cycles/hash
+Small key speed test - 12-byte keys - 791.07 cycles/hash
+Small key speed test - 13-byte keys - 799.60 cycles/hash
+Small key speed test - 14-byte keys - 786.29 cycles/hash
+Small key speed test - 15-byte keys - 780.79 cycles/hash
+Small key speed test - 16-byte keys - 770.48 cycles/hash
+Small key speed test - 17-byte keys - 761.51 cycles/hash
+Small key speed test - 18-byte keys - 750.45 cycles/hash
+Small key speed test - 19-byte keys - 744.70 cycles/hash
+Small key speed test - 20-byte keys - 737.64 cycles/hash
+Small key speed test - 21-byte keys - 729.30 cycles/hash
+Small key speed test - 22-byte keys - 718.55 cycles/hash
+Small key speed test - 23-byte keys - 712.86 cycles/hash
+Small key speed test - 24-byte keys - 707.46 cycles/hash
+Small key speed test - 25-byte keys - 697.09 cycles/hash
+Small key speed test - 26-byte keys - 686.47 cycles/hash
+Small key speed test - 27-byte keys - 679.63 cycles/hash
+Small key speed test - 28-byte keys - 672.62 cycles/hash
+Small key speed test - 29-byte keys - 663.70 cycles/hash
+Small key speed test - 30-byte keys - 655.05 cycles/hash
+Small key speed test - 31-byte keys - 647.40 cycles/hash
+Small key speed test - 32-byte keys - 637.76 cycles/hash
+Average 763.852 cycles/hash
+Average, weighted by key length freq. 765.105 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 798.305 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha1ni.txt b/doc/sha1ni.txt
index 666b5a63..d9311265 100644
--- a/doc/sha1ni.txt
+++ b/doc/sha1ni.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x6b749cdcc58 - 0x6b749cdcbec). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 6 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 5 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 4 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 3 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 2 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 1 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Alignment 0 - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-Average - 0.706 bytes/cycle - 2019.96 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 129.00 cycles/hash
-Small key speed test - 2-byte keys - 129.00 cycles/hash
-Small key speed test - 3-byte keys - 129.00 cycles/hash
-Small key speed test - 4-byte keys - 129.00 cycles/hash
-Small key speed test - 5-byte keys - 129.00 cycles/hash
-Small key speed test - 6-byte keys - 129.00 cycles/hash
-Small key speed test - 7-byte keys - 130.00 cycles/hash
-Small key speed test - 8-byte keys - 136.00 cycles/hash
-Small key speed test - 9-byte keys - 137.00 cycles/hash
-Small key speed test - 10-byte keys - 137.00 cycles/hash
-Small key speed test - 11-byte keys - 137.00 cycles/hash
-Small key speed test - 12-byte keys - 137.00 cycles/hash
-Small key speed test - 13-byte keys - 137.00 cycles/hash
-Small key speed test - 14-byte keys - 137.00 cycles/hash
-Small key speed test - 15-byte keys - 141.00 cycles/hash
-Small key speed test - 16-byte keys - 136.00 cycles/hash
-Small key speed test - 17-byte keys - 139.00 cycles/hash
-Small key speed test - 18-byte keys - 139.00 cycles/hash
-Small key speed test - 19-byte keys - 139.00 cycles/hash
-Small key speed test - 20-byte keys - 136.00 cycles/hash
-Small key speed test - 21-byte keys - 139.00 cycles/hash
-Small key speed test - 22-byte keys - 140.00 cycles/hash
-Small key speed test - 23-byte keys - 139.00 cycles/hash
-Small key speed test - 24-byte keys - 136.00 cycles/hash
-Small key speed test - 25-byte keys - 138.00 cycles/hash
-Small key speed test - 26-byte keys - 138.00 cycles/hash
-Small key speed test - 27-byte keys - 138.00 cycles/hash
-Small key speed test - 28-byte keys - 136.00 cycles/hash
-Small key speed test - 29-byte keys - 138.00 cycles/hash
-Small key speed test - 30-byte keys - 138.00 cycles/hash
-Small key speed test - 31-byte keys - 139.00 cycles/hash
-Average 135.839 cycles/hash
+Alignment 7 - 0.570 bytes/cycle - 1630.88 MiB/sec @ 3 ghz
+Alignment 6 - 0.571 bytes/cycle - 1632.31 MiB/sec @ 3 ghz
+Alignment 5 - 0.571 bytes/cycle - 1634.00 MiB/sec @ 3 ghz
+Alignment 4 - 0.571 bytes/cycle - 1633.37 MiB/sec @ 3 ghz
+Alignment 3 - 0.570 bytes/cycle - 1631.85 MiB/sec @ 3 ghz
+Alignment 2 - 0.571 bytes/cycle - 1634.17 MiB/sec @ 3 ghz
+Alignment 1 - 0.571 bytes/cycle - 1633.02 MiB/sec @ 3 ghz
+Alignment 0 - 0.571 bytes/cycle - 1633.45 MiB/sec @ 3 ghz
+Average - 0.571 bytes/cycle - 1632.88 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 168.55 cycles/hash
+Small key speed test - 2-byte keys - 168.56 cycles/hash
+Small key speed test - 3-byte keys - 168.57 cycles/hash
+Small key speed test - 4-byte keys - 168.56 cycles/hash
+Small key speed test - 5-byte keys - 168.70 cycles/hash
+Small key speed test - 6-byte keys - 168.58 cycles/hash
+Small key speed test - 7-byte keys - 168.62 cycles/hash
+Small key speed test - 8-byte keys - 168.66 cycles/hash
+Small key speed test - 9-byte keys - 168.65 cycles/hash
+Small key speed test - 10-byte keys - 168.61 cycles/hash
+Small key speed test - 11-byte keys - 168.59 cycles/hash
+Small key speed test - 12-byte keys - 168.64 cycles/hash
+Small key speed test - 13-byte keys - 168.59 cycles/hash
+Small key speed test - 14-byte keys - 168.59 cycles/hash
+Small key speed test - 15-byte keys - 168.62 cycles/hash
+Small key speed test - 16-byte keys - 168.47 cycles/hash
+Small key speed test - 17-byte keys - 174.19 cycles/hash
+Small key speed test - 18-byte keys - 174.19 cycles/hash
+Small key speed test - 19-byte keys - 174.20 cycles/hash
+Small key speed test - 20-byte keys - 169.39 cycles/hash
+Small key speed test - 21-byte keys - 174.22 cycles/hash
+Small key speed test - 22-byte keys - 174.20 cycles/hash
+Small key speed test - 23-byte keys - 174.21 cycles/hash
+Small key speed test - 24-byte keys - 169.39 cycles/hash
+Small key speed test - 25-byte keys - 174.21 cycles/hash
+Small key speed test - 26-byte keys - 174.00 cycles/hash
+Small key speed test - 27-byte keys - 174.40 cycles/hash
+Small key speed test - 28-byte keys - 169.32 cycles/hash
+Small key speed test - 29-byte keys - 174.18 cycles/hash
+Small key speed test - 30-byte keys - 174.25 cycles/hash
+Small key speed test - 31-byte keys - 174.17 cycles/hash
+Small key speed test - 32-byte keys - 168.54 cycles/hash
+Average 170.769 cycles/hash
+Average, weighted by key length freq. 170.612 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 168.624 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha1ni_32.txt b/doc/sha1ni_32.txt
index b92f604d..0a5fe247 100644
--- a/doc/sha1ni_32.txt
+++ b/doc/sha1ni_32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x6d692607410 - 0x6d6926073c8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.489 bytes/cycle - 1399.44 MiB/sec @ 3 ghz
-Alignment 6 - 0.568 bytes/cycle - 1624.13 MiB/sec @ 3 ghz
-Alignment 5 - 0.568 bytes/cycle - 1624.55 MiB/sec @ 3 ghz
-Alignment 4 - 0.567 bytes/cycle - 1621.99 MiB/sec @ 3 ghz
-Alignment 3 - 0.567 bytes/cycle - 1621.56 MiB/sec @ 3 ghz
-Alignment 2 - 0.566 bytes/cycle - 1618.69 MiB/sec @ 3 ghz
-Alignment 1 - 0.566 bytes/cycle - 1618.53 MiB/sec @ 3 ghz
-Alignment 0 - 0.566 bytes/cycle - 1619.84 MiB/sec @ 3 ghz
-Average - 0.557 bytes/cycle - 1593.59 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 167.83 cycles/hash
-Small key speed test - 2-byte keys - 167.52 cycles/hash
-Small key speed test - 3-byte keys - 167.29 cycles/hash
-Small key speed test - 4-byte keys - 167.64 cycles/hash
-Small key speed test - 5-byte keys - 167.82 cycles/hash
-Small key speed test - 6-byte keys - 171.03 cycles/hash
-Small key speed test - 7-byte keys - 166.97 cycles/hash
-Small key speed test - 8-byte keys - 166.99 cycles/hash
-Small key speed test - 9-byte keys - 166.97 cycles/hash
-Small key speed test - 10-byte keys - 166.97 cycles/hash
-Small key speed test - 11-byte keys - 166.96 cycles/hash
-Small key speed test - 12-byte keys - 167.36 cycles/hash
-Small key speed test - 13-byte keys - 169.40 cycles/hash
-Small key speed test - 14-byte keys - 169.90 cycles/hash
-Small key speed test - 15-byte keys - 169.67 cycles/hash
-Small key speed test - 16-byte keys - 169.61 cycles/hash
-Small key speed test - 17-byte keys - 175.88 cycles/hash
-Small key speed test - 18-byte keys - 175.59 cycles/hash
-Small key speed test - 19-byte keys - 175.60 cycles/hash
-Small key speed test - 20-byte keys - 170.85 cycles/hash
-Small key speed test - 21-byte keys - 175.66 cycles/hash
-Small key speed test - 22-byte keys - 175.78 cycles/hash
-Small key speed test - 23-byte keys - 175.88 cycles/hash
-Small key speed test - 24-byte keys - 170.86 cycles/hash
-Small key speed test - 25-byte keys - 175.70 cycles/hash
-Small key speed test - 26-byte keys - 175.59 cycles/hash
-Small key speed test - 27-byte keys - 175.28 cycles/hash
-Small key speed test - 28-byte keys - 170.95 cycles/hash
-Small key speed test - 29-byte keys - 175.96 cycles/hash
-Small key speed test - 30-byte keys - 175.98 cycles/hash
-Small key speed test - 31-byte keys - 175.71 cycles/hash
-Average 171.329 cycles/hash
+Alignment 7 - 0.554 bytes/cycle - 1585.50 MiB/sec @ 3 ghz
+Alignment 6 - 0.554 bytes/cycle - 1583.99 MiB/sec @ 3 ghz
+Alignment 5 - 0.553 bytes/cycle - 1583.32 MiB/sec @ 3 ghz
+Alignment 4 - 0.553 bytes/cycle - 1582.77 MiB/sec @ 3 ghz
+Alignment 3 - 0.553 bytes/cycle - 1583.18 MiB/sec @ 3 ghz
+Alignment 2 - 0.553 bytes/cycle - 1582.96 MiB/sec @ 3 ghz
+Alignment 1 - 0.553 bytes/cycle - 1582.82 MiB/sec @ 3 ghz
+Alignment 0 - 0.553 bytes/cycle - 1583.44 MiB/sec @ 3 ghz
+Average - 0.553 bytes/cycle - 1583.50 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 171.02 cycles/hash
+Small key speed test - 2-byte keys - 170.93 cycles/hash
+Small key speed test - 3-byte keys - 170.96 cycles/hash
+Small key speed test - 4-byte keys - 171.06 cycles/hash
+Small key speed test - 5-byte keys - 171.16 cycles/hash
+Small key speed test - 6-byte keys - 170.95 cycles/hash
+Small key speed test - 7-byte keys - 170.95 cycles/hash
+Small key speed test - 8-byte keys - 170.96 cycles/hash
+Small key speed test - 9-byte keys - 170.96 cycles/hash
+Small key speed test - 10-byte keys - 170.95 cycles/hash
+Small key speed test - 11-byte keys - 170.95 cycles/hash
+Small key speed test - 12-byte keys - 171.03 cycles/hash
+Small key speed test - 13-byte keys - 170.94 cycles/hash
+Small key speed test - 14-byte keys - 170.95 cycles/hash
+Small key speed test - 15-byte keys - 170.95 cycles/hash
+Small key speed test - 16-byte keys - 170.88 cycles/hash
+Small key speed test - 17-byte keys - 176.96 cycles/hash
+Small key speed test - 18-byte keys - 176.94 cycles/hash
+Small key speed test - 19-byte keys - 176.94 cycles/hash
+Small key speed test - 20-byte keys - 172.29 cycles/hash
+Small key speed test - 21-byte keys - 174.93 cycles/hash
+Small key speed test - 22-byte keys - 173.57 cycles/hash
+Small key speed test - 23-byte keys - 173.54 cycles/hash
+Small key speed test - 24-byte keys - 169.55 cycles/hash
+Small key speed test - 25-byte keys - 173.54 cycles/hash
+Small key speed test - 26-byte keys - 173.54 cycles/hash
+Small key speed test - 27-byte keys - 173.52 cycles/hash
+Small key speed test - 28-byte keys - 169.54 cycles/hash
+Small key speed test - 29-byte keys - 173.50 cycles/hash
+Small key speed test - 30-byte keys - 173.51 cycles/hash
+Small key speed test - 31-byte keys - 173.53 cycles/hash
+Small key speed test - 32-byte keys - 168.54 cycles/hash
+Average 172.174 cycles/hash
+Average, weighted by key length freq. 172.471 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 170.959 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha2-224.txt b/doc/sha2-224.txt
index b5b670b3..77e367cd 100644
--- a/doc/sha2-224.txt
+++ b/doc/sha2-224.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x42f95d79428 - 0x42f95d793e0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.051 bytes/cycle - 145.30 MiB/sec @ 3 ghz
-Alignment 6 - 0.051 bytes/cycle - 145.37 MiB/sec @ 3 ghz
-Alignment 5 - 0.051 bytes/cycle - 145.23 MiB/sec @ 3 ghz
-Alignment 4 - 0.051 bytes/cycle - 145.37 MiB/sec @ 3 ghz
-Alignment 3 - 0.051 bytes/cycle - 145.37 MiB/sec @ 3 ghz
-Alignment 2 - 0.051 bytes/cycle - 145.20 MiB/sec @ 3 ghz
-Alignment 1 - 0.051 bytes/cycle - 145.39 MiB/sec @ 3 ghz
-Alignment 0 - 0.051 bytes/cycle - 146.44 MiB/sec @ 3 ghz
-Average - 0.051 bytes/cycle - 145.46 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1405.35 cycles/hash
-Small key speed test - 2-byte keys - 1408.74 cycles/hash
-Small key speed test - 3-byte keys - 1405.81 cycles/hash
-Small key speed test - 4-byte keys - 1400.14 cycles/hash
-Small key speed test - 5-byte keys - 1398.93 cycles/hash
-Small key speed test - 6-byte keys - 1397.26 cycles/hash
-Small key speed test - 7-byte keys - 1395.94 cycles/hash
-Small key speed test - 8-byte keys - 1398.07 cycles/hash
-Small key speed test - 9-byte keys - 1360.44 cycles/hash
-Small key speed test - 10-byte keys - 1358.85 cycles/hash
-Small key speed test - 11-byte keys - 1356.49 cycles/hash
-Small key speed test - 12-byte keys - 1366.36 cycles/hash
-Small key speed test - 13-byte keys - 1364.91 cycles/hash
-Small key speed test - 14-byte keys - 1352.22 cycles/hash
-Small key speed test - 15-byte keys - 1361.56 cycles/hash
-Small key speed test - 16-byte keys - 1353.62 cycles/hash
-Small key speed test - 17-byte keys - 1341.00 cycles/hash
-Small key speed test - 18-byte keys - 1332.35 cycles/hash
-Small key speed test - 19-byte keys - 1318.61 cycles/hash
-Small key speed test - 20-byte keys - 1327.72 cycles/hash
-Small key speed test - 21-byte keys - 1325.51 cycles/hash
-Small key speed test - 22-byte keys - 1323.62 cycles/hash
-Small key speed test - 23-byte keys - 1323.02 cycles/hash
-Small key speed test - 24-byte keys - 1321.21 cycles/hash
-Small key speed test - 25-byte keys - 1307.79 cycles/hash
-Small key speed test - 26-byte keys - 1305.99 cycles/hash
-Small key speed test - 27-byte keys - 1304.29 cycles/hash
-Small key speed test - 28-byte keys - 1302.54 cycles/hash
-Small key speed test - 29-byte keys - 1312.21 cycles/hash
-Small key speed test - 30-byte keys - 1309.59 cycles/hash
-Small key speed test - 31-byte keys - 1308.52 cycles/hash
-Average 1349.957 cycles/hash
+Alignment 7 - 0.082 bytes/cycle - 233.90 MiB/sec @ 3 ghz
+Alignment 6 - 0.082 bytes/cycle - 233.97 MiB/sec @ 3 ghz
+Alignment 5 - 0.082 bytes/cycle - 233.89 MiB/sec @ 3 ghz
+Alignment 4 - 0.082 bytes/cycle - 233.97 MiB/sec @ 3 ghz
+Alignment 3 - 0.082 bytes/cycle - 233.89 MiB/sec @ 3 ghz
+Alignment 2 - 0.082 bytes/cycle - 233.96 MiB/sec @ 3 ghz
+Alignment 1 - 0.082 bytes/cycle - 233.90 MiB/sec @ 3 ghz
+Alignment 0 - 0.082 bytes/cycle - 233.93 MiB/sec @ 3 ghz
+Average - 0.082 bytes/cycle - 233.93 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 945.40 cycles/hash
+Small key speed test - 2-byte keys - 933.96 cycles/hash
+Small key speed test - 3-byte keys - 933.73 cycles/hash
+Small key speed test - 4-byte keys - 938.28 cycles/hash
+Small key speed test - 5-byte keys - 937.94 cycles/hash
+Small key speed test - 6-byte keys - 935.40 cycles/hash
+Small key speed test - 7-byte keys - 933.81 cycles/hash
+Small key speed test - 8-byte keys - 929.98 cycles/hash
+Small key speed test - 9-byte keys - 932.13 cycles/hash
+Small key speed test - 10-byte keys - 928.40 cycles/hash
+Small key speed test - 11-byte keys - 926.57 cycles/hash
+Small key speed test - 12-byte keys - 925.59 cycles/hash
+Small key speed test - 13-byte keys - 927.44 cycles/hash
+Small key speed test - 14-byte keys - 926.41 cycles/hash
+Small key speed test - 15-byte keys - 906.99 cycles/hash
+Small key speed test - 16-byte keys - 911.74 cycles/hash
+Small key speed test - 17-byte keys - 910.16 cycles/hash
+Small key speed test - 18-byte keys - 917.32 cycles/hash
+Small key speed test - 19-byte keys - 916.17 cycles/hash
+Small key speed test - 20-byte keys - 916.25 cycles/hash
+Small key speed test - 21-byte keys - 916.46 cycles/hash
+Small key speed test - 22-byte keys - 917.59 cycles/hash
+Small key speed test - 23-byte keys - 919.98 cycles/hash
+Small key speed test - 24-byte keys - 910.52 cycles/hash
+Small key speed test - 25-byte keys - 891.45 cycles/hash
+Small key speed test - 26-byte keys - 886.49 cycles/hash
+Small key speed test - 27-byte keys - 885.11 cycles/hash
+Small key speed test - 28-byte keys - 880.83 cycles/hash
+Small key speed test - 29-byte keys - 873.80 cycles/hash
+Small key speed test - 30-byte keys - 871.78 cycles/hash
+Small key speed test - 31-byte keys - 869.50 cycles/hash
+Small key speed test - 32-byte keys - 865.14 cycles/hash
+Average 913.198 cycles/hash
+Average, weighted by key length freq. 916.214 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 922.025 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha2-224_64.txt b/doc/sha2-224_64.txt
index bd5bd80f..a6730b79 100644
--- a/doc/sha2-224_64.txt
+++ b/doc/sha2-224_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x4d0e9ea75d4 - 0x4d0e9ea758c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.052 bytes/cycle - 147.51 MiB/sec @ 3 ghz
-Alignment 6 - 0.052 bytes/cycle - 147.66 MiB/sec @ 3 ghz
-Alignment 5 - 0.052 bytes/cycle - 147.63 MiB/sec @ 3 ghz
-Alignment 4 - 0.052 bytes/cycle - 147.73 MiB/sec @ 3 ghz
-Alignment 3 - 0.052 bytes/cycle - 147.60 MiB/sec @ 3 ghz
-Alignment 2 - 0.052 bytes/cycle - 147.70 MiB/sec @ 3 ghz
-Alignment 1 - 0.052 bytes/cycle - 147.70 MiB/sec @ 3 ghz
-Alignment 0 - 0.052 bytes/cycle - 148.67 MiB/sec @ 3 ghz
-Average - 0.052 bytes/cycle - 147.77 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1369.75 cycles/hash
-Small key speed test - 2-byte keys - 1381.08 cycles/hash
-Small key speed test - 3-byte keys - 1381.76 cycles/hash
-Small key speed test - 4-byte keys - 1372.05 cycles/hash
-Small key speed test - 5-byte keys - 1361.94 cycles/hash
-Small key speed test - 6-byte keys - 1359.56 cycles/hash
-Small key speed test - 7-byte keys - 1370.55 cycles/hash
-Small key speed test - 8-byte keys - 1369.51 cycles/hash
-Small key speed test - 9-byte keys - 1367.90 cycles/hash
-Small key speed test - 10-byte keys - 1367.23 cycles/hash
-Small key speed test - 11-byte keys - 1366.87 cycles/hash
-Small key speed test - 12-byte keys - 1362.03 cycles/hash
-Small key speed test - 13-byte keys - 1360.29 cycles/hash
-Small key speed test - 14-byte keys - 1359.14 cycles/hash
-Small key speed test - 15-byte keys - 1357.93 cycles/hash
-Small key speed test - 16-byte keys - 1349.23 cycles/hash
-Small key speed test - 17-byte keys - 1349.17 cycles/hash
-Small key speed test - 18-byte keys - 1346.11 cycles/hash
-Small key speed test - 19-byte keys - 1347.92 cycles/hash
-Small key speed test - 20-byte keys - 1342.29 cycles/hash
-Small key speed test - 21-byte keys - 1330.62 cycles/hash
-Small key speed test - 22-byte keys - 1321.47 cycles/hash
-Small key speed test - 23-byte keys - 1317.59 cycles/hash
-Small key speed test - 24-byte keys - 1316.21 cycles/hash
-Small key speed test - 25-byte keys - 1315.51 cycles/hash
-Small key speed test - 26-byte keys - 1312.75 cycles/hash
-Small key speed test - 27-byte keys - 1311.82 cycles/hash
-Small key speed test - 28-byte keys - 1309.00 cycles/hash
-Small key speed test - 29-byte keys - 1296.74 cycles/hash
-Small key speed test - 30-byte keys - 1295.20 cycles/hash
-Small key speed test - 31-byte keys - 1304.07 cycles/hash
-Average 1344.299 cycles/hash
+Alignment 7 - 0.081 bytes/cycle - 232.94 MiB/sec @ 3 ghz
+Alignment 6 - 0.081 bytes/cycle - 232.29 MiB/sec @ 3 ghz
+Alignment 5 - 0.081 bytes/cycle - 230.95 MiB/sec @ 3 ghz
+Alignment 4 - 0.081 bytes/cycle - 230.93 MiB/sec @ 3 ghz
+Alignment 3 - 0.081 bytes/cycle - 230.94 MiB/sec @ 3 ghz
+Alignment 2 - 0.081 bytes/cycle - 230.95 MiB/sec @ 3 ghz
+Alignment 1 - 0.081 bytes/cycle - 230.94 MiB/sec @ 3 ghz
+Alignment 0 - 0.081 bytes/cycle - 231.21 MiB/sec @ 3 ghz
+Average - 0.081 bytes/cycle - 231.39 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 949.14 cycles/hash
+Small key speed test - 2-byte keys - 944.93 cycles/hash
+Small key speed test - 3-byte keys - 944.15 cycles/hash
+Small key speed test - 4-byte keys - 941.51 cycles/hash
+Small key speed test - 5-byte keys - 939.03 cycles/hash
+Small key speed test - 6-byte keys - 939.08 cycles/hash
+Small key speed test - 7-byte keys - 939.50 cycles/hash
+Small key speed test - 8-byte keys - 939.72 cycles/hash
+Small key speed test - 9-byte keys - 938.39 cycles/hash
+Small key speed test - 10-byte keys - 935.91 cycles/hash
+Small key speed test - 11-byte keys - 937.55 cycles/hash
+Small key speed test - 12-byte keys - 937.91 cycles/hash
+Small key speed test - 13-byte keys - 934.94 cycles/hash
+Small key speed test - 14-byte keys - 926.97 cycles/hash
+Small key speed test - 15-byte keys - 918.32 cycles/hash
+Small key speed test - 16-byte keys - 915.94 cycles/hash
+Small key speed test - 17-byte keys - 923.87 cycles/hash
+Small key speed test - 18-byte keys - 929.01 cycles/hash
+Small key speed test - 19-byte keys - 927.95 cycles/hash
+Small key speed test - 20-byte keys - 926.38 cycles/hash
+Small key speed test - 21-byte keys - 928.98 cycles/hash
+Small key speed test - 22-byte keys - 914.70 cycles/hash
+Small key speed test - 23-byte keys - 912.86 cycles/hash
+Small key speed test - 24-byte keys - 895.31 cycles/hash
+Small key speed test - 25-byte keys - 896.68 cycles/hash
+Small key speed test - 26-byte keys - 894.89 cycles/hash
+Small key speed test - 27-byte keys - 891.26 cycles/hash
+Small key speed test - 28-byte keys - 884.50 cycles/hash
+Small key speed test - 29-byte keys - 883.60 cycles/hash
+Small key speed test - 30-byte keys - 882.41 cycles/hash
+Small key speed test - 31-byte keys - 880.89 cycles/hash
+Small key speed test - 32-byte keys - 875.94 cycles/hash
+Average 919.756 cycles/hash
+Average, weighted by key length freq. 923.629 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 928.091 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha2-256.txt b/doc/sha2-256.txt
index a2ca53d5..a997b418 100644
--- a/doc/sha2-256.txt
+++ b/doc/sha2-256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x5738ecb4734 - 0x5738ecb46c8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.052 bytes/cycle - 147.65 MiB/sec @ 3 ghz
-Alignment 6 - 0.052 bytes/cycle - 147.51 MiB/sec @ 3 ghz
-Alignment 5 - 0.052 bytes/cycle - 147.48 MiB/sec @ 3 ghz
-Alignment 4 - 0.052 bytes/cycle - 149.37 MiB/sec @ 3 ghz
-Alignment 3 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 2 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 1 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 0 - 0.053 bytes/cycle - 150.44 MiB/sec @ 3 ghz
-Average - 0.052 bytes/cycle - 148.82 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1363.73 cycles/hash
-Small key speed test - 2-byte keys - 1363.10 cycles/hash
-Small key speed test - 3-byte keys - 1362.28 cycles/hash
-Small key speed test - 4-byte keys - 1360.33 cycles/hash
-Small key speed test - 5-byte keys - 1356.92 cycles/hash
-Small key speed test - 6-byte keys - 1355.82 cycles/hash
-Small key speed test - 7-byte keys - 1353.19 cycles/hash
-Small key speed test - 8-byte keys - 1351.83 cycles/hash
-Small key speed test - 9-byte keys - 1350.90 cycles/hash
-Small key speed test - 10-byte keys - 1348.39 cycles/hash
-Small key speed test - 11-byte keys - 1346.24 cycles/hash
-Small key speed test - 12-byte keys - 1343.93 cycles/hash
-Small key speed test - 13-byte keys - 1343.12 cycles/hash
-Small key speed test - 14-byte keys - 1341.50 cycles/hash
-Small key speed test - 15-byte keys - 1325.42 cycles/hash
-Small key speed test - 16-byte keys - 1337.26 cycles/hash
-Small key speed test - 17-byte keys - 1335.22 cycles/hash
-Small key speed test - 18-byte keys - 1318.66 cycles/hash
-Small key speed test - 19-byte keys - 1316.77 cycles/hash
-Small key speed test - 20-byte keys - 1315.30 cycles/hash
-Small key speed test - 21-byte keys - 1313.30 cycles/hash
-Small key speed test - 22-byte keys - 1311.59 cycles/hash
-Small key speed test - 23-byte keys - 1309.78 cycles/hash
-Small key speed test - 24-byte keys - 1308.17 cycles/hash
-Small key speed test - 25-byte keys - 1306.14 cycles/hash
-Small key speed test - 26-byte keys - 1304.27 cycles/hash
-Small key speed test - 27-byte keys - 1302.48 cycles/hash
-Small key speed test - 28-byte keys - 1300.87 cycles/hash
-Small key speed test - 29-byte keys - 1298.77 cycles/hash
-Small key speed test - 30-byte keys - 1296.94 cycles/hash
-Small key speed test - 31-byte keys - 1295.11 cycles/hash
-Average 1330.236 cycles/hash
+Alignment 7 - 0.081 bytes/cycle - 232.62 MiB/sec @ 3 ghz
+Alignment 6 - 0.082 bytes/cycle - 235.03 MiB/sec @ 3 ghz
+Alignment 5 - 0.081 bytes/cycle - 230.87 MiB/sec @ 3 ghz
+Alignment 4 - 0.081 bytes/cycle - 230.87 MiB/sec @ 3 ghz
+Alignment 3 - 0.081 bytes/cycle - 230.84 MiB/sec @ 3 ghz
+Alignment 2 - 0.081 bytes/cycle - 230.89 MiB/sec @ 3 ghz
+Alignment 1 - 0.081 bytes/cycle - 230.92 MiB/sec @ 3 ghz
+Alignment 0 - 0.081 bytes/cycle - 231.18 MiB/sec @ 3 ghz
+Average - 0.081 bytes/cycle - 231.65 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 948.79 cycles/hash
+Small key speed test - 2-byte keys - 946.61 cycles/hash
+Small key speed test - 3-byte keys - 944.39 cycles/hash
+Small key speed test - 4-byte keys - 943.87 cycles/hash
+Small key speed test - 5-byte keys - 943.04 cycles/hash
+Small key speed test - 6-byte keys - 940.97 cycles/hash
+Small key speed test - 7-byte keys - 941.84 cycles/hash
+Small key speed test - 8-byte keys - 940.54 cycles/hash
+Small key speed test - 9-byte keys - 936.93 cycles/hash
+Small key speed test - 10-byte keys - 937.43 cycles/hash
+Small key speed test - 11-byte keys - 937.95 cycles/hash
+Small key speed test - 12-byte keys - 931.41 cycles/hash
+Small key speed test - 13-byte keys - 930.38 cycles/hash
+Small key speed test - 14-byte keys - 929.57 cycles/hash
+Small key speed test - 15-byte keys - 923.88 cycles/hash
+Small key speed test - 16-byte keys - 919.01 cycles/hash
+Small key speed test - 17-byte keys - 920.95 cycles/hash
+Small key speed test - 18-byte keys - 925.36 cycles/hash
+Small key speed test - 19-byte keys - 930.62 cycles/hash
+Small key speed test - 20-byte keys - 914.95 cycles/hash
+Small key speed test - 21-byte keys - 912.67 cycles/hash
+Small key speed test - 22-byte keys - 913.12 cycles/hash
+Small key speed test - 23-byte keys - 910.22 cycles/hash
+Small key speed test - 24-byte keys - 903.08 cycles/hash
+Small key speed test - 25-byte keys - 898.55 cycles/hash
+Small key speed test - 26-byte keys - 893.13 cycles/hash
+Small key speed test - 27-byte keys - 885.91 cycles/hash
+Small key speed test - 28-byte keys - 867.88 cycles/hash
+Small key speed test - 29-byte keys - 865.37 cycles/hash
+Small key speed test - 30-byte keys - 862.44 cycles/hash
+Small key speed test - 31-byte keys - 861.86 cycles/hash
+Small key speed test - 32-byte keys - 861.43 cycles/hash
+Average 916.379 cycles/hash
+Average, weighted by key length freq. 921.494 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 928.961 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha2-256_64.txt b/doc/sha2-256_64.txt
index 2545dd8b..e3408777 100644
--- a/doc/sha2-256_64.txt
+++ b/doc/sha2-256_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x615acadc000 - 0x615acadbfb8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 6 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 5 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 4 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 3 - 0.052 bytes/cycle - 149.35 MiB/sec @ 3 ghz
-Alignment 2 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 1 - 0.052 bytes/cycle - 149.36 MiB/sec @ 3 ghz
-Alignment 0 - 0.053 bytes/cycle - 150.46 MiB/sec @ 3 ghz
-Average - 0.052 bytes/cycle - 149.50 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1366.56 cycles/hash
-Small key speed test - 2-byte keys - 1363.94 cycles/hash
-Small key speed test - 3-byte keys - 1363.67 cycles/hash
-Small key speed test - 4-byte keys - 1354.46 cycles/hash
-Small key speed test - 5-byte keys - 1360.43 cycles/hash
-Small key speed test - 6-byte keys - 1356.57 cycles/hash
-Small key speed test - 7-byte keys - 1355.55 cycles/hash
-Small key speed test - 8-byte keys - 1353.03 cycles/hash
-Small key speed test - 9-byte keys - 1352.69 cycles/hash
-Small key speed test - 10-byte keys - 1350.62 cycles/hash
-Small key speed test - 11-byte keys - 1349.06 cycles/hash
-Small key speed test - 12-byte keys - 1346.25 cycles/hash
-Small key speed test - 13-byte keys - 1345.70 cycles/hash
-Small key speed test - 14-byte keys - 1343.99 cycles/hash
-Small key speed test - 15-byte keys - 1325.27 cycles/hash
-Small key speed test - 16-byte keys - 1321.52 cycles/hash
-Small key speed test - 17-byte keys - 1320.18 cycles/hash
-Small key speed test - 18-byte keys - 1318.36 cycles/hash
-Small key speed test - 19-byte keys - 1316.60 cycles/hash
-Small key speed test - 20-byte keys - 1314.40 cycles/hash
-Small key speed test - 21-byte keys - 1313.10 cycles/hash
-Small key speed test - 22-byte keys - 1311.32 cycles/hash
-Small key speed test - 23-byte keys - 1310.04 cycles/hash
-Small key speed test - 24-byte keys - 1307.44 cycles/hash
-Small key speed test - 25-byte keys - 1306.08 cycles/hash
-Small key speed test - 26-byte keys - 1304.23 cycles/hash
-Small key speed test - 27-byte keys - 1302.41 cycles/hash
-Small key speed test - 28-byte keys - 1300.33 cycles/hash
-Small key speed test - 29-byte keys - 1299.05 cycles/hash
-Small key speed test - 30-byte keys - 1297.22 cycles/hash
-Small key speed test - 31-byte keys - 1295.49 cycles/hash
-Average 1329.857 cycles/hash
+Alignment 7 - 0.083 bytes/cycle - 238.37 MiB/sec @ 3 ghz
+Alignment 6 - 0.083 bytes/cycle - 238.72 MiB/sec @ 3 ghz
+Alignment 5 - 0.083 bytes/cycle - 238.33 MiB/sec @ 3 ghz
+Alignment 4 - 0.083 bytes/cycle - 238.33 MiB/sec @ 3 ghz
+Alignment 3 - 0.083 bytes/cycle - 238.40 MiB/sec @ 3 ghz
+Alignment 2 - 0.083 bytes/cycle - 238.36 MiB/sec @ 3 ghz
+Alignment 1 - 0.083 bytes/cycle - 238.34 MiB/sec @ 3 ghz
+Alignment 0 - 0.083 bytes/cycle - 238.44 MiB/sec @ 3 ghz
+Average - 0.083 bytes/cycle - 238.41 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 915.19 cycles/hash
+Small key speed test - 2-byte keys - 920.95 cycles/hash
+Small key speed test - 3-byte keys - 919.84 cycles/hash
+Small key speed test - 4-byte keys - 920.17 cycles/hash
+Small key speed test - 5-byte keys - 919.38 cycles/hash
+Small key speed test - 6-byte keys - 920.23 cycles/hash
+Small key speed test - 7-byte keys - 916.30 cycles/hash
+Small key speed test - 8-byte keys - 978.19 cycles/hash
+Small key speed test - 9-byte keys - 943.34 cycles/hash
+Small key speed test - 10-byte keys - 942.80 cycles/hash
+Small key speed test - 11-byte keys - 940.47 cycles/hash
+Small key speed test - 12-byte keys - 935.94 cycles/hash
+Small key speed test - 13-byte keys - 935.13 cycles/hash
+Small key speed test - 14-byte keys - 933.97 cycles/hash
+Small key speed test - 15-byte keys - 928.48 cycles/hash
+Small key speed test - 16-byte keys - 926.89 cycles/hash
+Small key speed test - 17-byte keys - 926.33 cycles/hash
+Small key speed test - 18-byte keys - 929.54 cycles/hash
+Small key speed test - 19-byte keys - 931.01 cycles/hash
+Small key speed test - 20-byte keys - 912.46 cycles/hash
+Small key speed test - 21-byte keys - 914.87 cycles/hash
+Small key speed test - 22-byte keys - 897.71 cycles/hash
+Small key speed test - 23-byte keys - 910.94 cycles/hash
+Small key speed test - 24-byte keys - 900.59 cycles/hash
+Small key speed test - 25-byte keys - 878.94 cycles/hash
+Small key speed test - 26-byte keys - 894.19 cycles/hash
+Small key speed test - 27-byte keys - 884.06 cycles/hash
+Small key speed test - 28-byte keys - 882.23 cycles/hash
+Small key speed test - 29-byte keys - 881.18 cycles/hash
+Small key speed test - 30-byte keys - 880.34 cycles/hash
+Small key speed test - 31-byte keys - 880.59 cycles/hash
+Small key speed test - 32-byte keys - 877.07 cycles/hash
+Average 914.979 cycles/hash
+Average, weighted by key length freq. 924.887 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 934.658 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha2ni-256.txt b/doc/sha2ni-256.txt
index f655f054..19a269ff 100644
--- a/doc/sha2ni-256.txt
+++ b/doc/sha2ni-256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x6f64f2166a4 - 0x6f64f216638). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Alignment 6 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Alignment 5 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Alignment 4 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Alignment 3 - 0.658 bytes/cycle - 1881.66 MiB/sec @ 3 ghz
-Alignment 2 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Alignment 1 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Alignment 0 - 0.668 bytes/cycle - 1910.35 MiB/sec @ 3 ghz
-Average - 0.666 bytes/cycle - 1906.77 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 139.88 cycles/hash
-Small key speed test - 2-byte keys - 138.97 cycles/hash
-Small key speed test - 3-byte keys - 139.27 cycles/hash
-Small key speed test - 4-byte keys - 138.77 cycles/hash
-Small key speed test - 5-byte keys - 138.86 cycles/hash
-Small key speed test - 6-byte keys - 139.27 cycles/hash
-Small key speed test - 7-byte keys - 139.99 cycles/hash
-Small key speed test - 8-byte keys - 146.66 cycles/hash
-Small key speed test - 9-byte keys - 145.77 cycles/hash
-Small key speed test - 10-byte keys - 145.76 cycles/hash
-Small key speed test - 11-byte keys - 147.63 cycles/hash
-Small key speed test - 12-byte keys - 146.47 cycles/hash
-Small key speed test - 13-byte keys - 147.64 cycles/hash
-Small key speed test - 14-byte keys - 147.50 cycles/hash
-Small key speed test - 15-byte keys - 148.91 cycles/hash
-Small key speed test - 16-byte keys - 142.21 cycles/hash
-Small key speed test - 17-byte keys - 147.32 cycles/hash
-Small key speed test - 18-byte keys - 147.52 cycles/hash
-Small key speed test - 19-byte keys - 147.85 cycles/hash
-Small key speed test - 20-byte keys - 144.43 cycles/hash
-Small key speed test - 21-byte keys - 150.39 cycles/hash
-Small key speed test - 22-byte keys - 148.81 cycles/hash
-Small key speed test - 23-byte keys - 147.83 cycles/hash
-Small key speed test - 24-byte keys - 145.60 cycles/hash
-Small key speed test - 25-byte keys - 153.04 cycles/hash
-Small key speed test - 26-byte keys - 147.95 cycles/hash
-Small key speed test - 27-byte keys - 147.08 cycles/hash
-Small key speed test - 28-byte keys - 146.92 cycles/hash
-Small key speed test - 29-byte keys - 146.81 cycles/hash
-Small key speed test - 30-byte keys - 147.05 cycles/hash
-Small key speed test - 31-byte keys - 147.48 cycles/hash
-Average 145.473 cycles/hash
+Alignment 7 - 0.544 bytes/cycle - 1557.19 MiB/sec @ 3 ghz
+Alignment 6 - 0.544 bytes/cycle - 1557.38 MiB/sec @ 3 ghz
+Alignment 5 - 0.544 bytes/cycle - 1556.41 MiB/sec @ 3 ghz
+Alignment 4 - 0.544 bytes/cycle - 1555.25 MiB/sec @ 3 ghz
+Alignment 3 - 0.544 bytes/cycle - 1555.47 MiB/sec @ 3 ghz
+Alignment 2 - 0.544 bytes/cycle - 1557.20 MiB/sec @ 3 ghz
+Alignment 1 - 0.544 bytes/cycle - 1557.09 MiB/sec @ 3 ghz
+Alignment 0 - 0.544 bytes/cycle - 1557.33 MiB/sec @ 3 ghz
+Average - 0.544 bytes/cycle - 1556.66 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 179.04 cycles/hash
+Small key speed test - 2-byte keys - 179.98 cycles/hash
+Small key speed test - 3-byte keys - 179.92 cycles/hash
+Small key speed test - 4-byte keys - 180.08 cycles/hash
+Small key speed test - 5-byte keys - 180.15 cycles/hash
+Small key speed test - 6-byte keys - 180.18 cycles/hash
+Small key speed test - 7-byte keys - 180.13 cycles/hash
+Small key speed test - 8-byte keys - 179.65 cycles/hash
+Small key speed test - 9-byte keys - 179.77 cycles/hash
+Small key speed test - 10-byte keys - 179.73 cycles/hash
+Small key speed test - 11-byte keys - 179.75 cycles/hash
+Small key speed test - 12-byte keys - 179.74 cycles/hash
+Small key speed test - 13-byte keys - 179.89 cycles/hash
+Small key speed test - 14-byte keys - 179.89 cycles/hash
+Small key speed test - 15-byte keys - 179.74 cycles/hash
+Small key speed test - 16-byte keys - 174.56 cycles/hash
+Small key speed test - 17-byte keys - 182.62 cycles/hash
+Small key speed test - 18-byte keys - 182.72 cycles/hash
+Small key speed test - 19-byte keys - 182.58 cycles/hash
+Small key speed test - 20-byte keys - 180.87 cycles/hash
+Small key speed test - 21-byte keys - 182.55 cycles/hash
+Small key speed test - 22-byte keys - 182.57 cycles/hash
+Small key speed test - 23-byte keys - 182.72 cycles/hash
+Small key speed test - 24-byte keys - 180.87 cycles/hash
+Small key speed test - 25-byte keys - 182.55 cycles/hash
+Small key speed test - 26-byte keys - 182.67 cycles/hash
+Small key speed test - 27-byte keys - 183.24 cycles/hash
+Small key speed test - 28-byte keys - 180.88 cycles/hash
+Small key speed test - 29-byte keys - 182.72 cycles/hash
+Small key speed test - 30-byte keys - 182.83 cycles/hash
+Small key speed test - 31-byte keys - 182.72 cycles/hash
+Small key speed test - 32-byte keys - 176.70 cycles/hash
+Average 180.750 cycles/hash
+Average, weighted by key length freq. 180.502 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 177.795 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha2ni-256_64.txt b/doc/sha2ni-256_64.txt
index f623aa55..068cd138 100644
--- a/doc/sha2ni-256_64.txt
+++ b/doc/sha2ni-256_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x717477b8a4c - 0x717477b89e0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 6 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 5 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 4 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 3 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 2 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 1 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Alignment 0 - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-Average - 0.668 bytes/cycle - 1910.34 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 141.68 cycles/hash
-Small key speed test - 2-byte keys - 141.00 cycles/hash
-Small key speed test - 3-byte keys - 141.77 cycles/hash
-Small key speed test - 4-byte keys - 141.00 cycles/hash
-Small key speed test - 5-byte keys - 141.71 cycles/hash
-Small key speed test - 6-byte keys - 141.92 cycles/hash
-Small key speed test - 7-byte keys - 142.51 cycles/hash
-Small key speed test - 8-byte keys - 144.31 cycles/hash
-Small key speed test - 9-byte keys - 144.57 cycles/hash
-Small key speed test - 10-byte keys - 144.55 cycles/hash
-Small key speed test - 11-byte keys - 145.77 cycles/hash
-Small key speed test - 12-byte keys - 145.00 cycles/hash
-Small key speed test - 13-byte keys - 145.76 cycles/hash
-Small key speed test - 14-byte keys - 145.79 cycles/hash
-Small key speed test - 15-byte keys - 148.00 cycles/hash
-Small key speed test - 16-byte keys - 142.00 cycles/hash
-Small key speed test - 17-byte keys - 148.46 cycles/hash
-Small key speed test - 18-byte keys - 148.48 cycles/hash
-Small key speed test - 19-byte keys - 148.48 cycles/hash
-Small key speed test - 20-byte keys - 145.53 cycles/hash
-Small key speed test - 21-byte keys - 148.49 cycles/hash
-Small key speed test - 22-byte keys - 148.94 cycles/hash
-Small key speed test - 23-byte keys - 150.05 cycles/hash
-Small key speed test - 24-byte keys - 145.34 cycles/hash
-Small key speed test - 25-byte keys - 149.85 cycles/hash
-Small key speed test - 26-byte keys - 149.81 cycles/hash
-Small key speed test - 27-byte keys - 150.13 cycles/hash
-Small key speed test - 28-byte keys - 145.79 cycles/hash
-Small key speed test - 29-byte keys - 150.47 cycles/hash
-Small key speed test - 30-byte keys - 150.11 cycles/hash
-Small key speed test - 31-byte keys - 150.50 cycles/hash
-Average 146.057 cycles/hash
+Alignment 7 - 0.528 bytes/cycle - 1511.17 MiB/sec @ 3 ghz
+Alignment 6 - 0.527 bytes/cycle - 1508.43 MiB/sec @ 3 ghz
+Alignment 5 - 0.527 bytes/cycle - 1508.11 MiB/sec @ 3 ghz
+Alignment 4 - 0.527 bytes/cycle - 1508.37 MiB/sec @ 3 ghz
+Alignment 3 - 0.527 bytes/cycle - 1508.71 MiB/sec @ 3 ghz
+Alignment 2 - 0.527 bytes/cycle - 1507.68 MiB/sec @ 3 ghz
+Alignment 1 - 0.527 bytes/cycle - 1508.95 MiB/sec @ 3 ghz
+Alignment 0 - 0.527 bytes/cycle - 1509.11 MiB/sec @ 3 ghz
+Average - 0.527 bytes/cycle - 1508.82 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 183.11 cycles/hash
+Small key speed test - 2-byte keys - 183.92 cycles/hash
+Small key speed test - 3-byte keys - 183.91 cycles/hash
+Small key speed test - 4-byte keys - 183.93 cycles/hash
+Small key speed test - 5-byte keys - 184.25 cycles/hash
+Small key speed test - 6-byte keys - 184.50 cycles/hash
+Small key speed test - 7-byte keys - 183.98 cycles/hash
+Small key speed test - 8-byte keys - 183.86 cycles/hash
+Small key speed test - 9-byte keys - 183.89 cycles/hash
+Small key speed test - 10-byte keys - 183.87 cycles/hash
+Small key speed test - 11-byte keys - 183.92 cycles/hash
+Small key speed test - 12-byte keys - 183.90 cycles/hash
+Small key speed test - 13-byte keys - 183.90 cycles/hash
+Small key speed test - 14-byte keys - 183.94 cycles/hash
+Small key speed test - 15-byte keys - 183.88 cycles/hash
+Small key speed test - 16-byte keys - 179.29 cycles/hash
+Small key speed test - 17-byte keys - 187.41 cycles/hash
+Small key speed test - 18-byte keys - 186.96 cycles/hash
+Small key speed test - 19-byte keys - 186.94 cycles/hash
+Small key speed test - 20-byte keys - 184.77 cycles/hash
+Small key speed test - 21-byte keys - 186.97 cycles/hash
+Small key speed test - 22-byte keys - 187.14 cycles/hash
+Small key speed test - 23-byte keys - 186.99 cycles/hash
+Small key speed test - 24-byte keys - 184.79 cycles/hash
+Small key speed test - 25-byte keys - 186.90 cycles/hash
+Small key speed test - 26-byte keys - 186.83 cycles/hash
+Small key speed test - 27-byte keys - 187.02 cycles/hash
+Small key speed test - 28-byte keys - 184.77 cycles/hash
+Small key speed test - 29-byte keys - 186.93 cycles/hash
+Small key speed test - 30-byte keys - 186.73 cycles/hash
+Small key speed test - 31-byte keys - 187.15 cycles/hash
+Small key speed test - 32-byte keys - 180.00 cycles/hash
+Average 184.886 cycles/hash
+Average, weighted by key length freq. 184.726 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 182.153 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha3-256.txt b/doc/sha3-256.txt
index 8f6d13dc..cbb8c405 100644
--- a/doc/sha3-256.txt
+++ b/doc/sha3-256.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xec62a073840 - 0xec62a0737f8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.033 bytes/cycle - 93.93 MiB/sec @ 3 ghz
-Alignment 6 - 0.033 bytes/cycle - 93.94 MiB/sec @ 3 ghz
-Alignment 5 - 0.033 bytes/cycle - 93.97 MiB/sec @ 3 ghz
-Alignment 4 - 0.033 bytes/cycle - 93.91 MiB/sec @ 3 ghz
-Alignment 3 - 0.033 bytes/cycle - 93.93 MiB/sec @ 3 ghz
-Alignment 2 - 0.033 bytes/cycle - 93.93 MiB/sec @ 3 ghz
-Alignment 1 - 0.033 bytes/cycle - 93.91 MiB/sec @ 3 ghz
-Alignment 0 - 0.033 bytes/cycle - 93.86 MiB/sec @ 3 ghz
-Average - 0.033 bytes/cycle - 93.92 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 4114.10 cycles/hash
-Small key speed test - 2-byte keys - 4141.08 cycles/hash
-Small key speed test - 3-byte keys - 4155.71 cycles/hash
-Small key speed test - 4-byte keys - 4133.79 cycles/hash
-Small key speed test - 5-byte keys - 4101.77 cycles/hash
-Small key speed test - 6-byte keys - 4144.97 cycles/hash
-Small key speed test - 7-byte keys - 4079.45 cycles/hash
-Small key speed test - 8-byte keys - 4065.37 cycles/hash
-Small key speed test - 9-byte keys - 4119.42 cycles/hash
-Small key speed test - 10-byte keys - 4154.09 cycles/hash
-Small key speed test - 11-byte keys - 4179.31 cycles/hash
-Small key speed test - 12-byte keys - 4139.29 cycles/hash
-Small key speed test - 13-byte keys - 4236.05 cycles/hash
-Small key speed test - 14-byte keys - 4186.40 cycles/hash
-Small key speed test - 15-byte keys - 4173.82 cycles/hash
-Small key speed test - 16-byte keys - 4105.11 cycles/hash
-Small key speed test - 17-byte keys - 4097.55 cycles/hash
-Small key speed test - 18-byte keys - 4187.46 cycles/hash
-Small key speed test - 19-byte keys - 4165.25 cycles/hash
-Small key speed test - 20-byte keys - 4187.63 cycles/hash
-Small key speed test - 21-byte keys - 4181.13 cycles/hash
-Small key speed test - 22-byte keys - 4196.54 cycles/hash
-Small key speed test - 23-byte keys - 4180.88 cycles/hash
-Small key speed test - 24-byte keys - 4094.26 cycles/hash
-Small key speed test - 25-byte keys - 4067.08 cycles/hash
-Small key speed test - 26-byte keys - 4107.06 cycles/hash
-Small key speed test - 27-byte keys - 4093.25 cycles/hash
-Small key speed test - 28-byte keys - 4179.72 cycles/hash
-Small key speed test - 29-byte keys - 4158.25 cycles/hash
-Small key speed test - 30-byte keys - 4157.02 cycles/hash
-Small key speed test - 31-byte keys - 4155.43 cycles/hash
-Average 4143.169 cycles/hash
+Alignment 7 - 0.044 bytes/cycle - 126.08 MiB/sec @ 3 ghz
+Alignment 6 - 0.044 bytes/cycle - 125.82 MiB/sec @ 3 ghz
+Alignment 5 - 0.044 bytes/cycle - 126.03 MiB/sec @ 3 ghz
+Alignment 4 - 0.044 bytes/cycle - 126.02 MiB/sec @ 3 ghz
+Alignment 3 - 0.044 bytes/cycle - 126.06 MiB/sec @ 3 ghz
+Alignment 2 - 0.044 bytes/cycle - 125.99 MiB/sec @ 3 ghz
+Alignment 1 - 0.044 bytes/cycle - 125.94 MiB/sec @ 3 ghz
+Alignment 0 - 0.044 bytes/cycle - 125.87 MiB/sec @ 3 ghz
+Average - 0.044 bytes/cycle - 125.98 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 3093.32 cycles/hash
+Small key speed test - 2-byte keys - 3095.27 cycles/hash
+Small key speed test - 3-byte keys - 3092.19 cycles/hash
+Small key speed test - 4-byte keys - 3092.68 cycles/hash
+Small key speed test - 5-byte keys - 3090.83 cycles/hash
+Small key speed test - 6-byte keys - 3101.59 cycles/hash
+Small key speed test - 7-byte keys - 3101.21 cycles/hash
+Small key speed test - 8-byte keys - 3094.59 cycles/hash
+Small key speed test - 9-byte keys - 3098.49 cycles/hash
+Small key speed test - 10-byte keys - 3104.98 cycles/hash
+Small key speed test - 11-byte keys - 3098.24 cycles/hash
+Small key speed test - 12-byte keys - 3102.23 cycles/hash
+Small key speed test - 13-byte keys - 3107.86 cycles/hash
+Small key speed test - 14-byte keys - 3136.45 cycles/hash
+Small key speed test - 15-byte keys - 3136.66 cycles/hash
+Small key speed test - 16-byte keys - 3130.67 cycles/hash
+Small key speed test - 17-byte keys - 3133.08 cycles/hash
+Small key speed test - 18-byte keys - 3130.61 cycles/hash
+Small key speed test - 19-byte keys - 3135.79 cycles/hash
+Small key speed test - 20-byte keys - 3131.56 cycles/hash
+Small key speed test - 21-byte keys - 3136.78 cycles/hash
+Small key speed test - 22-byte keys - 3141.83 cycles/hash
+Small key speed test - 23-byte keys - 3140.13 cycles/hash
+Small key speed test - 24-byte keys - 3130.39 cycles/hash
+Small key speed test - 25-byte keys - 3133.38 cycles/hash
+Small key speed test - 26-byte keys - 3136.11 cycles/hash
+Small key speed test - 27-byte keys - 3138.69 cycles/hash
+Small key speed test - 28-byte keys - 3136.92 cycles/hash
+Small key speed test - 29-byte keys - 3138.74 cycles/hash
+Small key speed test - 30-byte keys - 3141.02 cycles/hash
+Small key speed test - 31-byte keys - 3143.60 cycles/hash
+Small key speed test - 32-byte keys - 3132.57 cycles/hash
+Average 3120.577 cycles/hash
+Average, weighted by key length freq. 3123.588 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 3114.300 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sha3-256_64.txt b/doc/sha3-256_64.txt
index 32fa5b67..585ed171 100644
--- a/doc/sha3-256_64.txt
+++ b/doc/sha3-256_64.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x10c83a2352d4 - 0x10c83a235268). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.032 bytes/cycle - 90.50 MiB/sec @ 3 ghz
-Alignment 6 - 0.032 bytes/cycle - 90.55 MiB/sec @ 3 ghz
-Alignment 5 - 0.032 bytes/cycle - 90.47 MiB/sec @ 3 ghz
-Alignment 4 - 0.032 bytes/cycle - 90.37 MiB/sec @ 3 ghz
-Alignment 3 - 0.032 bytes/cycle - 90.39 MiB/sec @ 3 ghz
-Alignment 2 - 0.032 bytes/cycle - 90.44 MiB/sec @ 3 ghz
-Alignment 1 - 0.032 bytes/cycle - 90.49 MiB/sec @ 3 ghz
-Alignment 0 - 0.032 bytes/cycle - 90.37 MiB/sec @ 3 ghz
-Average - 0.032 bytes/cycle - 90.45 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 4228.13 cycles/hash
-Small key speed test - 2-byte keys - 4268.07 cycles/hash
-Small key speed test - 3-byte keys - 4239.80 cycles/hash
-Small key speed test - 4-byte keys - 4224.15 cycles/hash
-Small key speed test - 5-byte keys - 4227.78 cycles/hash
-Small key speed test - 6-byte keys - 4218.62 cycles/hash
-Small key speed test - 7-byte keys - 4218.68 cycles/hash
-Small key speed test - 8-byte keys - 4180.73 cycles/hash
-Small key speed test - 9-byte keys - 4199.07 cycles/hash
-Small key speed test - 10-byte keys - 4218.26 cycles/hash
-Small key speed test - 11-byte keys - 4229.81 cycles/hash
-Small key speed test - 12-byte keys - 4255.13 cycles/hash
-Small key speed test - 13-byte keys - 4217.48 cycles/hash
-Small key speed test - 14-byte keys - 4229.85 cycles/hash
-Small key speed test - 15-byte keys - 4292.28 cycles/hash
-Small key speed test - 16-byte keys - 4191.55 cycles/hash
-Small key speed test - 17-byte keys - 4224.98 cycles/hash
-Small key speed test - 18-byte keys - 4220.06 cycles/hash
-Small key speed test - 19-byte keys - 4230.68 cycles/hash
-Small key speed test - 20-byte keys - 4228.93 cycles/hash
-Small key speed test - 21-byte keys - 4239.40 cycles/hash
-Small key speed test - 22-byte keys - 4244.20 cycles/hash
-Small key speed test - 23-byte keys - 4247.26 cycles/hash
-Small key speed test - 24-byte keys - 4215.65 cycles/hash
-Small key speed test - 25-byte keys - 4218.37 cycles/hash
-Small key speed test - 26-byte keys - 4230.94 cycles/hash
-Small key speed test - 27-byte keys - 4241.15 cycles/hash
-Small key speed test - 28-byte keys - 4266.03 cycles/hash
-Small key speed test - 29-byte keys - 4207.71 cycles/hash
-Small key speed test - 30-byte keys - 4249.37 cycles/hash
-Small key speed test - 31-byte keys - 4258.41 cycles/hash
-Average 4231.049 cycles/hash
+Alignment 7 - 0.044 bytes/cycle - 124.60 MiB/sec @ 3 ghz
+Alignment 6 - 0.044 bytes/cycle - 124.65 MiB/sec @ 3 ghz
+Alignment 5 - 0.044 bytes/cycle - 124.64 MiB/sec @ 3 ghz
+Alignment 4 - 0.044 bytes/cycle - 124.71 MiB/sec @ 3 ghz
+Alignment 3 - 0.044 bytes/cycle - 124.71 MiB/sec @ 3 ghz
+Alignment 2 - 0.044 bytes/cycle - 124.48 MiB/sec @ 3 ghz
+Alignment 1 - 0.044 bytes/cycle - 124.65 MiB/sec @ 3 ghz
+Alignment 0 - 0.044 bytes/cycle - 124.68 MiB/sec @ 3 ghz
+Average - 0.044 bytes/cycle - 124.64 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 3131.41 cycles/hash
+Small key speed test - 2-byte keys - 3131.49 cycles/hash
+Small key speed test - 3-byte keys - 3127.13 cycles/hash
+Small key speed test - 4-byte keys - 3130.38 cycles/hash
+Small key speed test - 5-byte keys - 3131.75 cycles/hash
+Small key speed test - 6-byte keys - 3127.85 cycles/hash
+Small key speed test - 7-byte keys - 3142.87 cycles/hash
+Small key speed test - 8-byte keys - 3128.25 cycles/hash
+Small key speed test - 9-byte keys - 3133.22 cycles/hash
+Small key speed test - 10-byte keys - 3133.76 cycles/hash
+Small key speed test - 11-byte keys - 3131.66 cycles/hash
+Small key speed test - 12-byte keys - 3133.93 cycles/hash
+Small key speed test - 13-byte keys - 3133.54 cycles/hash
+Small key speed test - 14-byte keys - 3141.64 cycles/hash
+Small key speed test - 15-byte keys - 3144.97 cycles/hash
+Small key speed test - 16-byte keys - 3091.83 cycles/hash
+Small key speed test - 17-byte keys - 3083.27 cycles/hash
+Small key speed test - 18-byte keys - 3098.83 cycles/hash
+Small key speed test - 19-byte keys - 3106.56 cycles/hash
+Small key speed test - 20-byte keys - 3107.69 cycles/hash
+Small key speed test - 21-byte keys - 3109.98 cycles/hash
+Small key speed test - 22-byte keys - 3063.26 cycles/hash
+Small key speed test - 23-byte keys - 3046.29 cycles/hash
+Small key speed test - 24-byte keys - 3043.67 cycles/hash
+Small key speed test - 25-byte keys - 3042.83 cycles/hash
+Small key speed test - 26-byte keys - 3045.86 cycles/hash
+Small key speed test - 27-byte keys - 3042.54 cycles/hash
+Small key speed test - 28-byte keys - 3045.12 cycles/hash
+Small key speed test - 29-byte keys - 3098.92 cycles/hash
+Small key speed test - 30-byte keys - 3115.60 cycles/hash
+Small key speed test - 31-byte keys - 3138.43 cycles/hash
+Small key speed test - 32-byte keys - 3143.42 cycles/hash
+Average 3107.123 cycles/hash
+Average, weighted by key length freq. 3110.394 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 3117.056 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/sumhash.txt b/doc/sumhash.txt
index 02219517..20dd0c90 100644
--- a/doc/sumhash.txt
+++ b/doc/sumhash.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x11532052aa0 - 0x11532052a58). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.503 bytes/cycle - 7161.70 MiB/sec @ 3 ghz
-Alignment 6 - 2.503 bytes/cycle - 7161.74 MiB/sec @ 3 ghz
-Alignment 5 - 2.503 bytes/cycle - 7161.64 MiB/sec @ 3 ghz
-Alignment 4 - 2.503 bytes/cycle - 7161.67 MiB/sec @ 3 ghz
-Alignment 3 - 2.503 bytes/cycle - 7161.69 MiB/sec @ 3 ghz
-Alignment 2 - 2.503 bytes/cycle - 7161.75 MiB/sec @ 3 ghz
-Alignment 1 - 2.503 bytes/cycle - 7161.75 MiB/sec @ 3 ghz
-Alignment 0 - 2.524 bytes/cycle - 7220.75 MiB/sec @ 3 ghz
-Average - 2.506 bytes/cycle - 7169.08 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 12.00 cycles/hash
-Small key speed test - 2-byte keys - 13.00 cycles/hash
-Small key speed test - 3-byte keys - 14.00 cycles/hash
-Small key speed test - 4-byte keys - 15.00 cycles/hash
-Small key speed test - 5-byte keys - 16.00 cycles/hash
-Small key speed test - 6-byte keys - 17.00 cycles/hash
-Small key speed test - 7-byte keys - 17.24 cycles/hash
-Small key speed test - 8-byte keys - 18.98 cycles/hash
-Small key speed test - 9-byte keys - 19.00 cycles/hash
-Small key speed test - 10-byte keys - 21.00 cycles/hash
-Small key speed test - 11-byte keys - 21.41 cycles/hash
-Small key speed test - 12-byte keys - 23.00 cycles/hash
-Small key speed test - 13-byte keys - 23.00 cycles/hash
-Small key speed test - 14-byte keys - 24.13 cycles/hash
-Small key speed test - 15-byte keys - 25.00 cycles/hash
-Small key speed test - 16-byte keys - 28.83 cycles/hash
-Small key speed test - 17-byte keys - 29.78 cycles/hash
-Small key speed test - 18-byte keys - 29.76 cycles/hash
-Small key speed test - 19-byte keys - 30.78 cycles/hash
-Small key speed test - 20-byte keys - 32.25 cycles/hash
-Small key speed test - 21-byte keys - 33.80 cycles/hash
-Small key speed test - 22-byte keys - 33.79 cycles/hash
-Small key speed test - 23-byte keys - 34.79 cycles/hash
-Small key speed test - 24-byte keys - 35.00 cycles/hash
-Small key speed test - 25-byte keys - 36.87 cycles/hash
-Small key speed test - 26-byte keys - 37.14 cycles/hash
-Small key speed test - 27-byte keys - 37.00 cycles/hash
-Small key speed test - 28-byte keys - 39.48 cycles/hash
-Small key speed test - 29-byte keys - 39.00 cycles/hash
-Small key speed test - 30-byte keys - 40.82 cycles/hash
-Small key speed test - 31-byte keys - 41.80 cycles/hash
-Average 27.118 cycles/hash
+Alignment 7 - 3.156 bytes/cycle - 9029.93 MiB/sec @ 3 ghz
+Alignment 6 - 3.155 bytes/cycle - 9026.67 MiB/sec @ 3 ghz
+Alignment 5 - 3.156 bytes/cycle - 9029.93 MiB/sec @ 3 ghz
+Alignment 4 - 3.818 bytes/cycle - 10924.73 MiB/sec @ 3 ghz
+Alignment 3 - 3.808 bytes/cycle - 10895.26 MiB/sec @ 3 ghz
+Alignment 2 - 3.802 bytes/cycle - 10876.20 MiB/sec @ 3 ghz
+Alignment 1 - 3.776 bytes/cycle - 10802.42 MiB/sec @ 3 ghz
+Alignment 0 - 3.807 bytes/cycle - 10892.24 MiB/sec @ 3 ghz
+Average - 3.560 bytes/cycle - 10184.67 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 14.00 cycles/hash
+Small key speed test - 2-byte keys - 15.00 cycles/hash
+Small key speed test - 3-byte keys - 16.00 cycles/hash
+Small key speed test - 4-byte keys - 17.00 cycles/hash
+Small key speed test - 5-byte keys - 18.00 cycles/hash
+Small key speed test - 6-byte keys - 19.00 cycles/hash
+Small key speed test - 7-byte keys - 19.00 cycles/hash
+Small key speed test - 8-byte keys - 21.00 cycles/hash
+Small key speed test - 9-byte keys - 21.88 cycles/hash
+Small key speed test - 10-byte keys - 22.99 cycles/hash
+Small key speed test - 11-byte keys - 23.18 cycles/hash
+Small key speed test - 12-byte keys - 24.19 cycles/hash
+Small key speed test - 13-byte keys - 25.21 cycles/hash
+Small key speed test - 14-byte keys - 26.71 cycles/hash
+Small key speed test - 15-byte keys - 27.00 cycles/hash
+Small key speed test - 16-byte keys - 31.00 cycles/hash
+Small key speed test - 17-byte keys - 30.86 cycles/hash
+Small key speed test - 18-byte keys - 31.70 cycles/hash
+Small key speed test - 19-byte keys - 33.00 cycles/hash
+Small key speed test - 20-byte keys - 33.60 cycles/hash
+Small key speed test - 21-byte keys - 34.00 cycles/hash
+Small key speed test - 22-byte keys - 36.47 cycles/hash
+Small key speed test - 23-byte keys - 37.00 cycles/hash
+Small key speed test - 24-byte keys - 37.96 cycles/hash
+Small key speed test - 25-byte keys - 38.38 cycles/hash
+Small key speed test - 26-byte keys - 39.00 cycles/hash
+Small key speed test - 27-byte keys - 40.82 cycles/hash
+Small key speed test - 28-byte keys - 42.75 cycles/hash
+Small key speed test - 29-byte keys - 42.00 cycles/hash
+Small key speed test - 30-byte keys - 43.00 cycles/hash
+Small key speed test - 31-byte keys - 44.00 cycles/hash
+Small key speed test - 32-byte keys - 35.00 cycles/hash
+Average 29.396 cycles/hash
+Average, weighted by key length freq. 29.532 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 25.986 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/sumhash32.txt b/doc/sumhash32.txt
index 666b2c5d..864c4501 100644
--- a/doc/sumhash32.txt
+++ b/doc/sumhash32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest . FAIL !!!!!
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x11c103e4204 - 0x11c103e4198). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 7.670 bytes/cycle - 21945.45 MiB/sec @ 3 ghz
-Alignment 6 - 7.670 bytes/cycle - 21943.21 MiB/sec @ 3 ghz
-Alignment 5 - 7.668 bytes/cycle - 21938.28 MiB/sec @ 3 ghz
-Alignment 4 - 7.670 bytes/cycle - 21944.54 MiB/sec @ 3 ghz
-Alignment 3 - 7.669 bytes/cycle - 21940.18 MiB/sec @ 3 ghz
-Alignment 2 - 7.670 bytes/cycle - 21944.41 MiB/sec @ 3 ghz
-Alignment 1 - 7.669 bytes/cycle - 21940.85 MiB/sec @ 3 ghz
-Alignment 0 - 9.386 bytes/cycle - 26852.49 MiB/sec @ 3 ghz
-Average - 7.884 bytes/cycle - 22556.18 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 16.13 cycles/hash
+Alignment 7 - 15.399 bytes/cycle - 44057.17 MiB/sec @ 3 ghz
+Alignment 6 - 15.431 bytes/cycle - 44149.12 MiB/sec @ 3 ghz
+Alignment 5 - 15.422 bytes/cycle - 44124.12 MiB/sec @ 3 ghz
+Alignment 4 - 15.515 bytes/cycle - 44389.87 MiB/sec @ 3 ghz
+Alignment 3 - 15.406 bytes/cycle - 44075.82 MiB/sec @ 3 ghz
+Alignment 2 - 15.415 bytes/cycle - 44103.38 MiB/sec @ 3 ghz
+Alignment 1 - 15.414 bytes/cycle - 44100.27 MiB/sec @ 3 ghz
+Alignment 0 - 17.143 bytes/cycle - 49047.23 MiB/sec @ 3 ghz
+Average - 15.643 bytes/cycle - 44755.87 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 16.00 cycles/hash
Small key speed test - 2-byte keys - 18.00 cycles/hash
-Small key speed test - 3-byte keys - 18.00 cycles/hash
-Small key speed test - 4-byte keys - 13.19 cycles/hash
-Small key speed test - 5-byte keys - 22.00 cycles/hash
-Small key speed test - 6-byte keys - 23.00 cycles/hash
-Small key speed test - 7-byte keys - 24.00 cycles/hash
-Small key speed test - 8-byte keys - 14.91 cycles/hash
-Small key speed test - 9-byte keys - 22.00 cycles/hash
-Small key speed test - 10-byte keys - 24.00 cycles/hash
-Small key speed test - 11-byte keys - 24.95 cycles/hash
-Small key speed test - 12-byte keys - 15.00 cycles/hash
-Small key speed test - 13-byte keys - 22.00 cycles/hash
-Small key speed test - 14-byte keys - 24.00 cycles/hash
-Small key speed test - 15-byte keys - 25.00 cycles/hash
-Small key speed test - 16-byte keys - 16.00 cycles/hash
-Small key speed test - 17-byte keys - 22.12 cycles/hash
-Small key speed test - 18-byte keys - 24.00 cycles/hash
-Small key speed test - 19-byte keys - 26.02 cycles/hash
-Small key speed test - 20-byte keys - 17.00 cycles/hash
-Small key speed test - 21-byte keys - 23.00 cycles/hash
-Small key speed test - 22-byte keys - 25.00 cycles/hash
-Small key speed test - 23-byte keys - 26.00 cycles/hash
-Small key speed test - 24-byte keys - 25.00 cycles/hash
-Small key speed test - 25-byte keys - 27.98 cycles/hash
-Small key speed test - 26-byte keys - 28.90 cycles/hash
-Small key speed test - 27-byte keys - 29.82 cycles/hash
-Small key speed test - 28-byte keys - 26.29 cycles/hash
-Small key speed test - 29-byte keys - 28.75 cycles/hash
-Small key speed test - 30-byte keys - 29.35 cycles/hash
-Small key speed test - 31-byte keys - 30.98 cycles/hash
-Average 22.980 cycles/hash
+Small key speed test - 3-byte keys - 34.19 cycles/hash
+Small key speed test - 4-byte keys - 14.00 cycles/hash
+Small key speed test - 5-byte keys - 18.00 cycles/hash
+Small key speed test - 6-byte keys - 19.00 cycles/hash
+Small key speed test - 7-byte keys - 20.55 cycles/hash
+Small key speed test - 8-byte keys - 14.80 cycles/hash
+Small key speed test - 9-byte keys - 19.00 cycles/hash
+Small key speed test - 10-byte keys - 20.00 cycles/hash
+Small key speed test - 11-byte keys - 21.00 cycles/hash
+Small key speed test - 12-byte keys - 15.65 cycles/hash
+Small key speed test - 13-byte keys - 19.00 cycles/hash
+Small key speed test - 14-byte keys - 20.00 cycles/hash
+Small key speed test - 15-byte keys - 21.00 cycles/hash
+Small key speed test - 16-byte keys - 23.00 cycles/hash
+Small key speed test - 17-byte keys - 23.93 cycles/hash
+Small key speed test - 18-byte keys - 25.00 cycles/hash
+Small key speed test - 19-byte keys - 28.79 cycles/hash
+Small key speed test - 20-byte keys - 26.29 cycles/hash
+Small key speed test - 21-byte keys - 24.93 cycles/hash
+Small key speed test - 22-byte keys - 26.34 cycles/hash
+Small key speed test - 23-byte keys - 26.96 cycles/hash
+Small key speed test - 24-byte keys - 24.91 cycles/hash
+Small key speed test - 25-byte keys - 25.15 cycles/hash
+Small key speed test - 26-byte keys - 26.13 cycles/hash
+Small key speed test - 27-byte keys - 27.00 cycles/hash
+Small key speed test - 28-byte keys - 25.21 cycles/hash
+Small key speed test - 29-byte keys - 26.55 cycles/hash
+Small key speed test - 30-byte keys - 27.00 cycles/hash
+Small key speed test - 31-byte keys - 50.31 cycles/hash
+Small key speed test - 32-byte keys - 23.00 cycles/hash
+Average 23.459 cycles/hash
+Average, weighted by key length freq. 22.558 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 20.679 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests (when inlined) ]]]
diff --git a/doc/table.html b/doc/table.html
index fb724f98..3778d75e 100644
--- a/doc/table.html
+++ b/doc/table.html
@@ -33,7 +33,7 @@ SMhasher
donothing32
-11149460.06
+11536809.55
4.00
-
13
@@ -41,7 +41,7 @@ SMhasher
donothing64
-11787676.42
+12269832.97
4.00
-
13
@@ -49,15 +49,15 @@ SMhasher
donothing128
-11745060.76
-4.06
+11961841.48
+4.08
-
13
test NOP
NOP_OAAT_read64
-11372846.37
+11652662.97
14.00
-
47
@@ -65,41 +65,41 @@ SMhasher
BadHash
-769.94
-73.97
+794.68
+72.80
-
47
test FAIL
sumhash
-10699.57
-29.53
+10184.67
+29.40
-
363
test FAIL
sumhash32
-42877.79
-23.12
+44755.87
+23.46
-
863
UB , test FAIL
multiply_shift
-8026.77
-26.05
-226.80 (8)
+8286.63
+25.39
+209.06 (2)
345
fails all tests
pair_multiply_shift
-5708.67
-40.06
-225.31 (9)
+5728.05
+39.67
+218.48 (12)
609
fails all tests
@@ -113,833 +113,865 @@ SMhasher
crc32
-383.12
-134.21
-257.50 (11)
+369.88
+142.33
+396.81 (101)
422
insecure, 8590x collisions, distrib
md5_32
-350.53
-644.31
-894.12 (10)
+359.43
+638.92
+865.21 (6)
4419
md5_64
-351.01
-656.67
-897.43 (12)
+360.20
+640.38
+869.55 (6)
4419
md5-128
-350.89
-681.88
-894.03 (13)
+344.63
+669.59
+856.34 (5)
4419
sha1_32
-576.35
-758.06
-1096.49 (21)
+581.56
+727.61
+1006.74 (15)
5126
Sanity, collisions, 36.6% distrib
sha1_64
-575.68
-764.88
-1079.91 (15)
+574.08
+763.85
+1023.04 (8)
5126
Sanity, collisions, 36.6% distrib
sha1-160
-577.18
-816.85
-1139.30 (15)
+583.43
+804.38
+1073.46 (5)
5126
Comb/Cyclic low3
sha2-224
-229.05
-941.31
-1174.74 (7)
+233.93
+913.20
+1138.44 (5)
Cyclic low32
sha2-224_64
-231.62
-930.54
-1177.04 (15)
+231.39
+919.76
+1155.33 (4)
Cyclic low32
sha2-256
-231.70
-918.53
-1159.54 (11)
+231.65
+916.38
+1125.80 (5)
sha2-256_64
-232.00
-933.51
-1181.41 (8)
+238.41
+914.98
+1156.78 (11)
sha1ni
-1601.21
-174.16
-397.28 (6)
+1632.88
+170.77
+379.84 (5)
989
insecure,sanity, Permutation, Zeroes, amd epyc only
sha1ni_32
-1576.17
-174.04
-405.56 (6)
+1583.50
+172.17
+387.70 (4)
989
insecure,sanity, Permutation, Zeroes, TwoBytes, amd epyc only
sha2ni-256
-1527.38
-184.35
-404.40 (4)
+1556.66
+180.75
+393.79 (5)
4241
insecure,sanity, Permutation, Zeroes, amd epyc only
sha2ni-256_64
-1501.85
-186.20
-407.96 (5)
+1508.82
+184.89
+393.07 (6)
4241
insecure,sanity, Permutation, Zeroes, TwoBytes, amd epyc only
blake3_c
-1288.84
-357.69
-582.89 (6)
+1298.04
+354.25
+563.63 (4)
no 32bit portability
rmd128
-290.90
-710.49
-965.55 (6)
+294.42
+712.67
+930.65 (4)
rmd160
-189.55
-1064.64
-1318.25 (9)
+188.73
+1065.27
+1302.59 (4)
rmd256
-364.81
-584.86
-835.02 (11)
+366.21
+615.39
+830.04 (7)
edonr224
-864.69
-303.42
-526.94 (6)
+863.77
+304.76
+496.66 (3)
edonr256
-847.85
-305.79
-510.01 (4)
+870.97
+296.40
+517.82 (6)
blake2s-128
-336.27
-637.95
-832.64 (16)
+342.97
+638.83
+814.87 (4)
blake2s-160
-340.76
-661.25
-873.83 (8)
+341.74
+659.29
+852.11 (6)
blake2s-224
-336.83
-666.69
-836.98 (7)
+338.62
+663.16
+810.94 (4)
blake2s-256
-342.04
-643.80
-832.70 (8)
+341.65
+645.77
+817.15 (3)
blake2s-256_64
-336.23
-666.56
-851.74 (8)
+338.46
+672.72
+823.38 (5)
blake2b-160
-575.54
-783.01
-996.46 (13)
+578.32
+780.45
+975.69 (4)
blake2b-224
-582.54
-775.35
-965.16 (6)
+578.57
+767.44
+904.19 (7)
blake2b-256
-565.29
-777.07
-1001.37 (9)
+582.49
+757.63
+949.62 (4)
Sparse high 32-bit
blake2b-256_64
-585.25
-756.60
-969.16 (6)
+579.28
+765.02
+953.39 (5)
asconhashv12
-161.43
-825.11
-953.40 (5)
+162.99
+840.29
+904.60 (4)
6490
asconhashv12_64
-159.68
-386.90
-480.86 (4)
+159.33
+402.54
+473.15 (4)
4341
sha3-256
-125.35
-3136.07
-3334.68 (6)
+125.98
+3120.58
+3384.96 (6)
PerlinNoise
sha3-256_64
-125.55
-3102.97
-3412.38 (19)
+124.64
+3107.12
+3392.77 (6)
PerlinNoise
hasshe2
-2773.89
-64.35
-282.30 (3)
+2879.93
+62.47
+272.34 (2)
445
Permutation,TwoBytes,Zeroes,Seed
poly_1_mersenne
-1369.21
-61.59
-248.86 (4)
+1278.37
+63.42
+244.41 (1)
479
fails most tests
poly_2_mersenne
-1364.03
-70.30
-261.00 (6)
+1391.90
+69.97
+255.44 (3)
479
poly_3_mersenne
-1342.82
-80.22
-268.79 (2)
+1320.15
+80.81
+263.12 (2)
479
poly_4_mersenne
-1343.19
-89.13
-277.52 (3)
+1393.93
+89.07
+262.97 (2)
479
tabulation32
-5781.16
-40.00
-241.79 (10)
+5819.40
+40.16
+233.00 (3)
848
collisions
tabulation
-7875.01
-39.95
-249.49 (3)
+7407.94
+39.83
+240.25 (4)
554
crc32_hw
-6244.38
-41.23
-226.80 (2)
+5537.79
+40.80
+225.65 (3)
653
insecure, 100% bias, collisions, distrib, machine-specific (x86 SSE4.2)
crc32_hw1
-7569.29
-49.07
-233.75 (3)
+7626.17
+50.21
+228.50 (2)
671
insecure, 100% bias, collisions, distrib, machine-specific (x86 SSE4.2)
crc64_hw
-6143.62
-40.48
-223.13 (2)
+5579.17
+40.87
+202.19 (1)
652
insecure, 100% bias, collisions, distrib, machine-specific (x64 SSE4.2)
crc32_pclmul
-8403.09
-105.42
-572.99 (6)
+7963.20
+106.02
+567.70 (3)
481
insecure, 100% bias, collisions, distrib, machine-specific (x86 PCLMUL)
+crc64_jones1
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones2
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones3
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
+crc64_jones
+
+
+
+
+insecure, 100% bias, collisions, distrib
+
+
o1hash
-11629440.57
-18.15
-199.35 (2)
+11530366.92
+18.40
+206.94 (1)
101
insecure, zeros, fails all tests
fibonacci
-16878.32
-22.94
-803.18 (15)
+15409.62
+22.67
+872.83 (3)
1692
UB , zeros, fails all tests
FNV1a
-760.52
-73.83
-254.29 (5)
+754.70
+75.28
+226.30 (2)
204
zeros, fails all tests
FNV1A_Totenschiff
-6274.78
-26.23
-251.13 (2)
+6166.85
+26.60
+235.71 (2)
270
UB , zeros, fails all tests
FNV1A_Pippip_Yurii
-6172.14
-27.55
-244.80 (2)
+6115.29
+28.03
+233.52 (2)
147
UB , sanity, fails all tests
FNV1a_YT
-13486.49
-30.50
-237.43 (4)
+13481.70
+30.67
+233.71 (7)
321
UB , fails all tests
FNV2
-6171.60
-32.20
-208.59 (4)
+5630.87
+32.09
+207.08 (1)
278
fails all tests
FNV64
-774.37
-72.43
-201.15 (2)
+747.70
+74.18
+189.18 (1)
79
fails all tests
FNV128
-390.14
-136.42
-289.00 (3)
+408.59
+130.82
+299.47 (20)
171
fails all tests
k-hash32
-2230.42
-53.05
-264.64 (3)
+2227.90
+53.85
+255.78 (2)
808
UB , insecure, zeros, fails all tests
k-hash64
-2451.88
-48.66
-249.44 (2)
+2492.66
+48.18
+242.58 (2)
609
UB , insecure, zeros, fails all tests
fletcher2
-15552.61
-20.61
-335.31 (3)
+15410.12
+20.72
+345.55 (5)
248
UB , fails all tests
fletcher4
-15556.93
-20.60
-358.60 (3)
+15603.68
+21.24
+320.09 (2)
371
UB , fails all tests
bernstein
-1045.97
-58.31
-225.78 (3)
+1032.00
+59.04
+225.09 (3)
41
fails all tests
sdbm
-784.83
-68.57
-222.68 (5)
+772.01
+71.67
+220.09 (2)
41
fails all tests
x17
-748.75
-74.13
-236.00 (10)
+765.01
+75.61
+225.81 (2)
79
99.98% bias, fails all tests
libiberty
-628.66
-84.95
-225.07 (4)
+618.39
+86.58
+220.95 (2)
37
insecure, 100% bias, fails all tests
gcc
-611.69
-86.47
-231.51 (5)
+612.10
+88.44
+224.62 (2)
39
insecure, 100% bias, fails all tests
JenkinsOOAT
-627.64
-107.04
-252.79 (3)
+615.60
+111.23
+251.08 (2)
153
53.5% bias, fails all tests
JenkinsOOAT_perl
-608.10
-94.17
-254.09 (4)
+631.79
+93.13
+232.44 (1)
65
1.5-11.5% bias, 7.2x collisions, LongNeighbors
MicroOAAT
-701.35
-76.68
-251.01 (3)
+730.89
+78.25
+236.07 (3)
68
100% bias, distrib
VHASH_32
-13053.40
-65.84
-289.86 (3)
+13084.37
+65.45
+280.14 (2)
1231
sanity, Seed, MomentChi2
VHASH_64
-13465.50
-63.88
-286.38 (5)
+13217.64
+64.90
+270.04 (2)
1231
sanity, Seed, Sparse
farsh32
-27038.23
-66.88
-278.89 (5)
+27583.89
+65.65
+266.64 (2)
944
insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors
farsh64
-13829.32
-112.46
-332.59 (3)
+13558.69
+113.74
+327.26 (3)
944
insecure: AppendedZeroes, collisions+bias, MomentChi2, LongNeighbors
farsh128
-6878.88
-233.35
-384.85 (3)
+7055.39
+229.42
+375.57 (4)
??
farsh256
-3467.37
-440.40
-593.57 (5)
+3466.26
+444.74
+610.23 (4)
??
jodyhash32
-1794.34
-41.12
-235.12 (4)
+1762.46
+42.66
+236.09 (2)
102
bias, collisions, distr, LongNeighbors
jodyhash64
-4813.10
-40.72
-239.22 (6)
+4861.84
+44.05
+234.35 (2)
118
bias, collisions, distr, LongNeighbors
lookup3
-2475.35
-39.65
-240.10 (3)
+2474.09
+40.19
+238.22 (3)
341
UB , 28% bias, collisions, 30% distr
superfast
-2058.22
-49.56
-254.12 (3)
+2085.79
+49.89
+230.76 (3)
210
UB , 91% bias, 5273.01x collisions, 37% distr, BIC
MurmurOAAT
-506.66
-103.33
-236.89 (3)
+513.75
+105.23
+244.81 (4)
47
collisions, 99.998% distr., BIC, LongNeighbors
Crap8
-3041.14
-37.25
-247.87 (4)
+3081.04
+37.15
+234.94 (2)
342
UB , 2.42% bias, collisions, 2% distrib
Murmur1
-2027.85
-48.51
-253.34 (3)
+1955.36
+48.84
+236.25 (2)
UB , fails all tests, 1 bad seed
Murmur2
-3089.18
-41.22
-238.42 (4)
+3082.03
+41.62
+250.72 (4)
358
UB , 1.7% bias, 81x coll, 1.7% distrib, BIC
Murmur2A
-3087.98
-45.90
-238.54 (4)
+2850.40
+46.60
+284.58 (13)
407
UB , 12.7% bias, LongNeighbors
Murmur2B
-5919.38
-38.18
-215.96 (3)
+6039.96
+38.70
+212.23 (1)
433
UB , 1.8% bias, collisions, 3.4% distrib, BIC
Murmur2C
-3810.98
-49.09
-218.51 (3)
+3802.68
+49.82
+220.13 (2)
444
UB , 91% bias, collisions, distr, BIC, LongNeighbors
Murmur3A
-2982.67
-49.08
-245.78 (4)
+3027.30
+48.99
+234.49 (2)
351
UB , Moment Chi2 69
PMurHash32
-3005.85
-48.88
-242.38 (3)
+3001.44
+48.99
+240.35 (3)
1862
Moment Chi2 69
Murmur3C
-4833.18
-56.87
-250.47 (6)
+4824.95
+57.39
+243.91 (2)
859
UB , LongNeighbors, DiffDist
PMPML_32
-6639.68
-45.33
-257.45 (3)
+6904.30
+44.25
+233.59 (2)
1084
Avalanche >512, unseeded: Seed, MomentChi2
PMPML_64
-9833.77
-50.00
-251.64 (6)
+10030.67
+49.22
+239.07 (5)
1305
unseeded: Seed, MomentChi2
xxHash32
-5865.17
-49.20
-242.74 (3)
+6064.37
+48.86
+234.27 (3)
738
LongNeighbors, collisions with 4bit diff, MomentChi2 220
metrohash64_1
-14298.77
-40.31
-223.25 (4)
+14495.30
+40.83
+213.00 (2)
624
UB , LongNeighbors, BIC, MomentChi2
metrohash64_2
-14316.37
-40.23
-218.28 (3)
+14359.39
+41.09
+215.53 (2)
627
UB , LongNeighbors
metrohash64crc_1
-6929.69
-44.65
-223.68 (3)
+8010.90
+44.43
+213.94 (2)
632
UB , cyclic collisions 8 byte, BIC, MomentChi2, machine-specific (x64 SSE4.2)
metrohash64crc_2
-8150.65
-43.72
-219.45 (5)
+7939.65
+44.84
+222.01 (2)
632
UB , cyclic collisions 8 byte, BIC, machine-specific (x64 SSE4.2)
metrohash128_1
-15806.97
-72.30
-260.90 (4)
+15556.40
+73.49
+259.05 (2)
773
UB , LongNeighbors
metrohash128_2
-15822.60
-72.30
-255.34 (3)
+15408.56
+74.36
+259.57 (2)
773
UB , LongNeighbors
cmetrohash64_1o
-14921.73
-38.95
-213.25 (2)
+14678.56
+40.33
+216.44 (2)
3506
LongNeighbors, MomentChi2
cmetrohash64_1
-14151.73
-40.90
-211.89 (2)
+14332.75
+41.04
+216.05 (2)
652
LongNeighbors, BIC, MomentChi2
cmetrohash64_2
-14294.26
-40.76
-221.40 (4)
+14498.20
+40.87
+219.65 (2)
655
LongNeighbors
City64noSeed
-14209.19
-31.80
-225.90 (5)
+14023.27
+33.37
+223.59 (2)
1038
Avalanche, Sparse, TwoBytes, MomentChi2, Seed
City64
-13887.84
-46.32
-239.77 (3)
+14390.09
+46.69
+231.99 (2)
1120
Sparse, TwoBytes
t1ha1_64le
-13442.64
-31.41
-219.58 (3)
+13425.03
+31.37
+221.97 (2)
517
Avalanche
t1ha1_64be
-11586.02
-32.74
-232.55 (3)
+12002.50
+31.57
+226.52 (2)
555
Avalanche
t1ha0_32le
-7401.21
-48.27
-238.99 (3)
+7276.16
+49.11
+236.39 (2)
509
Sparse, LongNeighbors
t1ha0_32be
-6217.37
-50.66
-244.51 (3)
+6860.87
+50.16
+241.26 (2)
533
Sparse, LongNeighbors
@@ -961,49 +993,49 @@ SMhasher
aesnihash
-5579.32
-56.83
-258.71 (5)
+5365.60
+57.21
+255.87 (3)
1209
fails many tests, machine-specific (x64 AES-NI)
falkhash
-50631.69
-123.02
-322.14 (7)
+52401.48
+122.70
+316.79 (4)
264
Sparse, LongNeighbors, machine-specific (x64 AES-NI)
MeowHash
-29969.40
-64.96
-274.29 (4)
+29969.81
+64.90
+273.79 (8)
1764
Sparse, machine-specific (x64 AES-NI)
MeowHash64low
-29485.59
-65.98
-278.05 (3)
+29438.45
+63.76
+269.41 (4)
1764
Sparse, machine-specific (x64 AES-NI)
MeowHash32low
-26944.58
-65.95
-292.79 (9)
+30562.54
+63.77
+283.26 (3)
1764
Sparse, machine-specific (x64 AES-NI)
tifuhash_64
-161.70
+158.95
486.01
-526.50 (7)
+-
276
@@ -1057,25 +1089,25 @@ SMhasher
pearsonbhash64
-1794.83
-97.80
-268.90 (8)
+1749.98
+99.84
+257.11 (2)
683
pearsonbhash128
-1691.62
-104.57
-272.38 (4)
+1656.68
+106.78
+276.92 (3)
1134
pearsonbhash256
-1442.59
-126.04
-309.34 (4)
+1418.61
+123.68
+301.26 (3)
844
@@ -1169,25 +1201,25 @@ SMhasher
pearsonhash64
-434.17
-124.14
-230.79 (4)
+439.85
+123.07
+213.68 (1)
Avalanche, Seed, SSSE3 only. broken MSVC
pearsonhash128
-434.23
-121.34
-221.03 (7)
+438.49
+123.81
+212.89 (2)
Avalanche, Seed, SSSE3 only. broken MSVC
pearsonhash256
-444.08
-119.11
-229.75 (4)
+440.63
+120.72
+224.63 (2)
Avalanche, Seed, SSSE3 only. broken MSVC
@@ -1201,17 +1233,17 @@ SMhasher
aesni
-31232.34
-29.21
-230.14 (4)
+31185.98
+29.45
+226.75 (2)
519
machine-specific (x64 AES-NI)
aesni-low
-31221.14
-29.64
-226.18 (3)
+31027.39
+29.47
+232.54 (2)
519
machine-specific (x64 AES-NI)
@@ -1345,9 +1377,9 @@ SMhasher
City32
-5551.28
-54.40
-261.64 (2)
+5745.83
+52.44
+242.69 (2)
1319
@@ -1376,6 +1408,14 @@ SMhasher
+CityCrc256
+19603.25
+42.27
+149.40 (4)
+
+
+
+
FarmHash32
21755.58
47.54
@@ -1425,33 +1465,33 @@ SMhasher
metrohash64
-14741.56
-39.44
-215.76 (2)
+14209.14
+40.85
+225.16 (2)
624
LongNeighbors
metrohash128
-15634.66
-73.28
-261.23 (4)
+15847.63
+72.33
+266.54 (2)
624
UB
metrohash128crc_1
-8009.23
-78.72
-281.55 (13)
+8182.02
+77.38
+256.80 (2)
723
UB , machine-specific (x64 SSE4.2)
metrohash128crc_2
-7878.22
-79.90
-275.22 (4)
+7996.33
+78.81
+262.53 (2)
723
UB , machine-specific (x64 SSE4.2)
@@ -1593,17 +1633,17 @@ SMhasher
MeowHash
-29969.40
-64.96
-274.29 (4)
+29969.81
+64.90
+273.79 (8)
1764
Sparse low32, machine-specific (x64 AES-NI)
MeowHash32low
-26944.58
-65.95
-292.79 (9)
+30562.54
+63.77
+283.26 (3)
1764
Sparse, machine-specific (x64 AES-NI)
@@ -1632,6 +1672,14 @@ SMhasher
5 bad seeds
+w1hash
+2532.89
+37.95
+222.17 (4)
+
+
+
+
rapidhash
23789.79
22.80
@@ -1759,13 +1807,31 @@ SMhasher
1128
+
+komihash
+12341.32
+33.90
+249.42 (15)
+728
+
+
+
+gxhash64
+1017.15
+178.25
+313.64 (9)
+
+
+
Other timings:
- AMD Ryzen 5 PRO 3350G 3.6GHz 32bit
+ Intel i7-6820HQ 3.5GHz (Lenovo P50 from 2024)
+ fast AMD EPYC 9554P 64-Core Processor (Server from 2024)
AMD Ryzen 3 3.5GHz (Lenovo E495)
+ AMD Ryzen 5 PRO 3350G 3.6GHz 32bit
Intel i5-2300 2.8GHz
Intel i7-4650 1.7GHz (Mac Air)
Cortex-A53 2GHz (Sony XPeria L4)
diff --git a/doc/tabulation.txt b/doc/tabulation.txt
index da00e4cb..48f40408 100644
--- a/doc/tabulation.txt
+++ b/doc/tabulation.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x131dc55e43d4 - 0x131dc55e4368). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.754 bytes/cycle - 7879.93 MiB/sec @ 3 ghz
-Alignment 6 - 2.750 bytes/cycle - 7867.09 MiB/sec @ 3 ghz
-Alignment 5 - 2.750 bytes/cycle - 7867.14 MiB/sec @ 3 ghz
-Alignment 4 - 2.750 bytes/cycle - 7867.74 MiB/sec @ 3 ghz
-Alignment 3 - 2.750 bytes/cycle - 7866.79 MiB/sec @ 3 ghz
-Alignment 2 - 2.763 bytes/cycle - 7906.26 MiB/sec @ 3 ghz
-Alignment 1 - 2.753 bytes/cycle - 7875.83 MiB/sec @ 3 ghz
-Alignment 0 - 2.751 bytes/cycle - 7869.33 MiB/sec @ 3 ghz
-Average - 2.753 bytes/cycle - 7875.01 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 34.20 cycles/hash
-Small key speed test - 2-byte keys - 35.27 cycles/hash
-Small key speed test - 3-byte keys - 37.00 cycles/hash
-Small key speed test - 4-byte keys - 33.97 cycles/hash
-Small key speed test - 5-byte keys - 35.89 cycles/hash
-Small key speed test - 6-byte keys - 35.46 cycles/hash
-Small key speed test - 7-byte keys - 37.65 cycles/hash
-Small key speed test - 8-byte keys - 34.10 cycles/hash
-Small key speed test - 9-byte keys - 37.92 cycles/hash
-Small key speed test - 10-byte keys - 37.00 cycles/hash
-Small key speed test - 11-byte keys - 39.95 cycles/hash
-Small key speed test - 12-byte keys - 36.81 cycles/hash
-Small key speed test - 13-byte keys - 39.99 cycles/hash
-Small key speed test - 14-byte keys - 38.92 cycles/hash
-Small key speed test - 15-byte keys - 40.99 cycles/hash
-Small key speed test - 16-byte keys - 36.80 cycles/hash
-Small key speed test - 17-byte keys - 40.99 cycles/hash
-Small key speed test - 18-byte keys - 40.25 cycles/hash
-Small key speed test - 19-byte keys - 43.15 cycles/hash
-Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 42.30 cycles/hash
-Small key speed test - 22-byte keys - 41.91 cycles/hash
-Small key speed test - 23-byte keys - 44.00 cycles/hash
-Small key speed test - 24-byte keys - 39.12 cycles/hash
-Small key speed test - 25-byte keys - 44.86 cycles/hash
-Small key speed test - 26-byte keys - 44.19 cycles/hash
-Small key speed test - 27-byte keys - 44.79 cycles/hash
-Small key speed test - 28-byte keys - 43.70 cycles/hash
-Small key speed test - 29-byte keys - 45.57 cycles/hash
-Small key speed test - 30-byte keys - 45.02 cycles/hash
-Small key speed test - 31-byte keys - 47.65 cycles/hash
-Average 39.949 cycles/hash
+Alignment 7 - 2.300 bytes/cycle - 6580.04 MiB/sec @ 3 ghz
+Alignment 6 - 2.300 bytes/cycle - 6579.95 MiB/sec @ 3 ghz
+Alignment 5 - 2.300 bytes/cycle - 6580.04 MiB/sec @ 3 ghz
+Alignment 4 - 2.773 bytes/cycle - 7932.90 MiB/sec @ 3 ghz
+Alignment 3 - 2.768 bytes/cycle - 7918.21 MiB/sec @ 3 ghz
+Alignment 2 - 2.759 bytes/cycle - 7892.95 MiB/sec @ 3 ghz
+Alignment 1 - 2.758 bytes/cycle - 7889.84 MiB/sec @ 3 ghz
+Alignment 0 - 2.758 bytes/cycle - 7889.63 MiB/sec @ 3 ghz
+Average - 2.589 bytes/cycle - 7407.94 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 34.15 cycles/hash
+Small key speed test - 2-byte keys - 34.93 cycles/hash
+Small key speed test - 3-byte keys - 37.14 cycles/hash
+Small key speed test - 4-byte keys - 33.80 cycles/hash
+Small key speed test - 5-byte keys - 35.70 cycles/hash
+Small key speed test - 6-byte keys - 35.32 cycles/hash
+Small key speed test - 7-byte keys - 37.30 cycles/hash
+Small key speed test - 8-byte keys - 33.82 cycles/hash
+Small key speed test - 9-byte keys - 37.83 cycles/hash
+Small key speed test - 10-byte keys - 36.96 cycles/hash
+Small key speed test - 11-byte keys - 39.78 cycles/hash
+Small key speed test - 12-byte keys - 36.00 cycles/hash
+Small key speed test - 13-byte keys - 39.82 cycles/hash
+Small key speed test - 14-byte keys - 38.69 cycles/hash
+Small key speed test - 15-byte keys - 40.76 cycles/hash
+Small key speed test - 16-byte keys - 36.53 cycles/hash
+Small key speed test - 17-byte keys - 40.89 cycles/hash
+Small key speed test - 18-byte keys - 40.13 cycles/hash
+Small key speed test - 19-byte keys - 42.98 cycles/hash
+Small key speed test - 20-byte keys - 38.98 cycles/hash
+Small key speed test - 21-byte keys - 42.15 cycles/hash
+Small key speed test - 22-byte keys - 41.90 cycles/hash
+Small key speed test - 23-byte keys - 43.98 cycles/hash
+Small key speed test - 24-byte keys - 38.99 cycles/hash
+Small key speed test - 25-byte keys - 44.60 cycles/hash
+Small key speed test - 26-byte keys - 43.90 cycles/hash
+Small key speed test - 27-byte keys - 44.56 cycles/hash
+Small key speed test - 28-byte keys - 43.00 cycles/hash
+Small key speed test - 29-byte keys - 45.25 cycles/hash
+Small key speed test - 30-byte keys - 44.73 cycles/hash
+Small key speed test - 31-byte keys - 47.48 cycles/hash
+Small key speed test - 32-byte keys - 42.59 cycles/hash
+Average 39.833 cycles/hash
+Average, weighted by key length freq. 39.790 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 37.299 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/doc/tabulation32.txt b/doc/tabulation32.txt
index 9af45baa..646c3e15 100644
--- a/doc/tabulation32.txt
+++ b/doc/tabulation32.txt
@@ -9,49 +9,53 @@ Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x13272429ec64 - 0x13272429ebf8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.018 bytes/cycle - 5773.40 MiB/sec @ 3 ghz
-Alignment 6 - 2.021 bytes/cycle - 5782.08 MiB/sec @ 3 ghz
-Alignment 5 - 2.020 bytes/cycle - 5778.71 MiB/sec @ 3 ghz
-Alignment 4 - 2.019 bytes/cycle - 5775.22 MiB/sec @ 3 ghz
-Alignment 3 - 2.021 bytes/cycle - 5782.43 MiB/sec @ 3 ghz
-Alignment 2 - 2.022 bytes/cycle - 5783.79 MiB/sec @ 3 ghz
-Alignment 1 - 2.022 bytes/cycle - 5784.80 MiB/sec @ 3 ghz
-Alignment 0 - 2.023 bytes/cycle - 5788.85 MiB/sec @ 3 ghz
-Average - 2.021 bytes/cycle - 5781.16 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 29.80 cycles/hash
-Small key speed test - 2-byte keys - 27.96 cycles/hash
+Alignment 7 - 2.031 bytes/cycle - 5809.66 MiB/sec @ 3 ghz
+Alignment 6 - 2.032 bytes/cycle - 5812.70 MiB/sec @ 3 ghz
+Alignment 5 - 2.035 bytes/cycle - 5822.05 MiB/sec @ 3 ghz
+Alignment 4 - 2.035 bytes/cycle - 5822.73 MiB/sec @ 3 ghz
+Alignment 3 - 2.034 bytes/cycle - 5820.19 MiB/sec @ 3 ghz
+Alignment 2 - 2.035 bytes/cycle - 5822.30 MiB/sec @ 3 ghz
+Alignment 1 - 2.034 bytes/cycle - 5819.76 MiB/sec @ 3 ghz
+Alignment 0 - 2.036 bytes/cycle - 5825.78 MiB/sec @ 3 ghz
+Average - 2.034 bytes/cycle - 5819.40 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 29.62 cycles/hash
+Small key speed test - 2-byte keys - 27.72 cycles/hash
Small key speed test - 3-byte keys - 29.00 cycles/hash
-Small key speed test - 4-byte keys - 27.97 cycles/hash
-Small key speed test - 5-byte keys - 30.12 cycles/hash
-Small key speed test - 6-byte keys - 29.42 cycles/hash
+Small key speed test - 4-byte keys - 28.00 cycles/hash
+Small key speed test - 5-byte keys - 30.00 cycles/hash
+Small key speed test - 6-byte keys - 29.00 cycles/hash
Small key speed test - 7-byte keys - 31.00 cycles/hash
-Small key speed test - 8-byte keys - 28.85 cycles/hash
-Small key speed test - 9-byte keys - 32.53 cycles/hash
-Small key speed test - 10-byte keys - 30.92 cycles/hash
+Small key speed test - 8-byte keys - 28.00 cycles/hash
+Small key speed test - 9-byte keys - 32.30 cycles/hash
+Small key speed test - 10-byte keys - 30.32 cycles/hash
Small key speed test - 11-byte keys - 33.00 cycles/hash
-Small key speed test - 12-byte keys - 30.00 cycles/hash
-Small key speed test - 13-byte keys - 33.00 cycles/hash
-Small key speed test - 14-byte keys - 32.00 cycles/hash
-Small key speed test - 15-byte keys - 34.00 cycles/hash
-Small key speed test - 16-byte keys - 45.42 cycles/hash
-Small key speed test - 17-byte keys - 47.53 cycles/hash
+Small key speed test - 12-byte keys - 29.89 cycles/hash
+Small key speed test - 13-byte keys - 32.99 cycles/hash
+Small key speed test - 14-byte keys - 31.98 cycles/hash
+Small key speed test - 15-byte keys - 33.99 cycles/hash
+Small key speed test - 16-byte keys - 45.04 cycles/hash
+Small key speed test - 17-byte keys - 47.00 cycles/hash
Small key speed test - 18-byte keys - 47.00 cycles/hash
-Small key speed test - 19-byte keys - 47.70 cycles/hash
-Small key speed test - 20-byte keys - 46.94 cycles/hash
-Small key speed test - 21-byte keys - 48.30 cycles/hash
-Small key speed test - 22-byte keys - 47.85 cycles/hash
-Small key speed test - 23-byte keys - 48.28 cycles/hash
-Small key speed test - 24-byte keys - 48.19 cycles/hash
-Small key speed test - 25-byte keys - 49.99 cycles/hash
-Small key speed test - 26-byte keys - 50.00 cycles/hash
-Small key speed test - 27-byte keys - 49.63 cycles/hash
-Small key speed test - 28-byte keys - 50.00 cycles/hash
-Small key speed test - 29-byte keys - 51.00 cycles/hash
-Small key speed test - 30-byte keys - 51.33 cycles/hash
-Small key speed test - 31-byte keys - 51.27 cycles/hash
-Average 40.000 cycles/hash
+Small key speed test - 19-byte keys - 47.00 cycles/hash
+Small key speed test - 20-byte keys - 46.00 cycles/hash
+Small key speed test - 21-byte keys - 47.82 cycles/hash
+Small key speed test - 22-byte keys - 46.56 cycles/hash
+Small key speed test - 23-byte keys - 47.98 cycles/hash
+Small key speed test - 24-byte keys - 47.95 cycles/hash
+Small key speed test - 25-byte keys - 49.00 cycles/hash
+Small key speed test - 26-byte keys - 49.20 cycles/hash
+Small key speed test - 27-byte keys - 48.95 cycles/hash
+Small key speed test - 28-byte keys - 49.46 cycles/hash
+Small key speed test - 29-byte keys - 50.89 cycles/hash
+Small key speed test - 30-byte keys - 52.16 cycles/hash
+Small key speed test - 31-byte keys - 51.03 cycles/hash
+Small key speed test - 32-byte keys - 55.32 cycles/hash
+Average 40.161 cycles/hash
+Average, weighted by key length freq. 39.734 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 37.057 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
diff --git a/log.speed b/log.speed
index c7e243da..213bd0c5 100644
--- a/log.speed
+++ b/log.speed
@@ -2,16 +2,17 @@
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3640.889 bytes/cycle - 10416666.67 MiB/sec @ 3 ghz
-Alignment 6 - 3640.889 bytes/cycle - 10416666.67 MiB/sec @ 3 ghz
-Alignment 5 - 3677.820 bytes/cycle - 10522328.55 MiB/sec @ 3 ghz
-Alignment 4 - 4009.296 bytes/cycle - 11470688.16 MiB/sec @ 3 ghz
-Alignment 3 - 4029.341 bytes/cycle - 11528035.94 MiB/sec @ 3 ghz
-Alignment 2 - 4045.732 bytes/cycle - 11574932.05 MiB/sec @ 3 ghz
-Alignment 1 - 4058.518 bytes/cycle - 11611513.91 MiB/sec @ 3 ghz
-Alignment 0 - 4073.665 bytes/cycle - 11654848.54 MiB/sec @ 3 ghz
-Average - 3897.019 bytes/cycle - 11149460.06 MiB/sec @ 3 ghz
+WARNING: timer resolution is 72 (0x48) ticks (0xf750f5d2dc - 0xf750f5d294). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 4019.617 bytes/cycle - 11500215.17 MiB/sec @ 3 ghz
+Alignment 6 - 4036.594 bytes/cycle - 11548787.26 MiB/sec @ 3 ghz
+Alignment 5 - 4030.022 bytes/cycle - 11529986.44 MiB/sec @ 3 ghz
+Alignment 4 - 4046.632 bytes/cycle - 11577507.88 MiB/sec @ 3 ghz
+Alignment 3 - 4021.561 bytes/cycle - 11505777.86 MiB/sec @ 3 ghz
+Alignment 2 - 4038.690 bytes/cycle - 11554783.95 MiB/sec @ 3 ghz
+Alignment 1 - 4047.685 bytes/cycle - 11580518.44 MiB/sec @ 3 ghz
+Alignment 0 - 4018.458 bytes/cycle - 11496899.37 MiB/sec @ 3 ghz
+Average - 4032.407 bytes/cycle - 11536809.55 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 4.00 cycles/hash
Small key speed test - 2-byte keys - 4.00 cycles/hash
@@ -44,7 +45,10 @@ Small key speed test - 28-byte keys - 4.00 cycles/hash
Small key speed test - 29-byte keys - 4.00 cycles/hash
Small key speed test - 30-byte keys - 4.00 cycles/hash
Small key speed test - 31-byte keys - 4.00 cycles/hash
+Small key speed test - 32-byte keys - 4.00 cycles/hash
Average 4.000 cycles/hash
+Average, weighted by key length freq. 4.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 4.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -52,21 +56,22 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 3.190819 seconds
+Verification value is 0x00000001 - Testing took 2.931816 seconds
--- Testing donothing64 "Do-Nothing function (measure call overhead)" SKIP
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xf9c6586350 - 0xf9c6586308). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4126.754 bytes/cycle - 11806738.60 MiB/sec @ 3 ghz
-Alignment 6 - 4130.664 bytes/cycle - 11817923.46 MiB/sec @ 3 ghz
-Alignment 5 - 4102.603 bytes/cycle - 11737642.11 MiB/sec @ 3 ghz
-Alignment 4 - 4106.616 bytes/cycle - 11749122.15 MiB/sec @ 3 ghz
-Alignment 3 - 4125.193 bytes/cycle - 11802270.58 MiB/sec @ 3 ghz
-Alignment 2 - 4125.606 bytes/cycle - 11803454.36 MiB/sec @ 3 ghz
-Alignment 1 - 4109.464 bytes/cycle - 11757270.27 MiB/sec @ 3 ghz
-Alignment 0 - 4133.833 bytes/cycle - 11826989.84 MiB/sec @ 3 ghz
-Average - 4120.092 bytes/cycle - 11787676.42 MiB/sec @ 3 ghz
+Alignment 7 - 4247.231 bytes/cycle - 12151426.72 MiB/sec @ 3 ghz
+Alignment 6 - 4296.550 bytes/cycle - 12292527.72 MiB/sec @ 3 ghz
+Alignment 5 - 4269.660 bytes/cycle - 12215594.24 MiB/sec @ 3 ghz
+Alignment 4 - 4299.088 bytes/cycle - 12299789.94 MiB/sec @ 3 ghz
+Alignment 3 - 4275.513 bytes/cycle - 12232341.04 MiB/sec @ 3 ghz
+Alignment 2 - 4277.188 bytes/cycle - 12237134.27 MiB/sec @ 3 ghz
+Alignment 1 - 4291.482 bytes/cycle - 12278028.96 MiB/sec @ 3 ghz
+Alignment 0 - 4352.227 bytes/cycle - 12451820.84 MiB/sec @ 3 ghz
+Average - 4288.617 bytes/cycle - 12269832.97 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 4.00 cycles/hash
Small key speed test - 2-byte keys - 4.00 cycles/hash
@@ -99,7 +104,10 @@ Small key speed test - 28-byte keys - 4.00 cycles/hash
Small key speed test - 29-byte keys - 4.00 cycles/hash
Small key speed test - 30-byte keys - 4.00 cycles/hash
Small key speed test - 31-byte keys - 4.00 cycles/hash
+Small key speed test - 32-byte keys - 4.00 cycles/hash
Average 4.000 cycles/hash
+Average, weighted by key length freq. 4.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 4.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -107,21 +115,22 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 3.027181 seconds
+Verification value is 0x00000001 - Testing took 2.876036 seconds
--- Testing donothing128 "Do-Nothing function (measure call overhead)" SKIP
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0xfc2ff5f164 - 0xfc2ff5f0f8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4107.388 bytes/cycle - 11751332.71 MiB/sec @ 3 ghz
-Alignment 6 - 4110.415 bytes/cycle - 11759992.46 MiB/sec @ 3 ghz
-Alignment 5 - 4100.020 bytes/cycle - 11730251.21 MiB/sec @ 3 ghz
-Alignment 4 - 4090.963 bytes/cycle - 11704339.40 MiB/sec @ 3 ghz
-Alignment 3 - 4107.318 bytes/cycle - 11751130.37 MiB/sec @ 3 ghz
-Alignment 2 - 4097.710 bytes/cycle - 11723641.37 MiB/sec @ 3 ghz
-Alignment 1 - 4125.423 bytes/cycle - 11802930.06 MiB/sec @ 3 ghz
-Alignment 0 - 4102.333 bytes/cycle - 11736868.50 MiB/sec @ 3 ghz
-Average - 4105.196 bytes/cycle - 11745060.76 MiB/sec @ 3 ghz
+Alignment 7 - 4182.140 bytes/cycle - 11965197.96 MiB/sec @ 3 ghz
+Alignment 6 - 4187.756 bytes/cycle - 11981264.79 MiB/sec @ 3 ghz
+Alignment 5 - 4177.338 bytes/cycle - 11951460.65 MiB/sec @ 3 ghz
+Alignment 4 - 4194.192 bytes/cycle - 11999679.80 MiB/sec @ 3 ghz
+Alignment 3 - 4175.740 bytes/cycle - 11946888.55 MiB/sec @ 3 ghz
+Alignment 2 - 4162.206 bytes/cycle - 11908166.51 MiB/sec @ 3 ghz
+Alignment 1 - 4171.750 bytes/cycle - 11935473.60 MiB/sec @ 3 ghz
+Alignment 0 - 4196.611 bytes/cycle - 12006600.03 MiB/sec @ 3 ghz
+Average - 4180.967 bytes/cycle - 11961841.48 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 4.00 cycles/hash
Small key speed test - 2-byte keys - 4.00 cycles/hash
@@ -130,7 +139,7 @@ Small key speed test - 4-byte keys - 4.00 cycles/hash
Small key speed test - 5-byte keys - 4.00 cycles/hash
Small key speed test - 6-byte keys - 4.00 cycles/hash
Small key speed test - 7-byte keys - 4.00 cycles/hash
-Small key speed test - 8-byte keys - 4.00 cycles/hash
+Small key speed test - 8-byte keys - 4.37 cycles/hash
Small key speed test - 9-byte keys - 4.00 cycles/hash
Small key speed test - 10-byte keys - 4.00 cycles/hash
Small key speed test - 11-byte keys - 4.00 cycles/hash
@@ -139,22 +148,25 @@ Small key speed test - 13-byte keys - 4.00 cycles/hash
Small key speed test - 14-byte keys - 4.00 cycles/hash
Small key speed test - 15-byte keys - 4.00 cycles/hash
Small key speed test - 16-byte keys - 4.00 cycles/hash
-Small key speed test - 17-byte keys - 4.00 cycles/hash
+Small key speed test - 17-byte keys - 4.26 cycles/hash
Small key speed test - 18-byte keys - 4.00 cycles/hash
Small key speed test - 19-byte keys - 4.00 cycles/hash
Small key speed test - 20-byte keys - 4.00 cycles/hash
Small key speed test - 21-byte keys - 4.00 cycles/hash
Small key speed test - 22-byte keys - 4.00 cycles/hash
-Small key speed test - 23-byte keys - 4.00 cycles/hash
+Small key speed test - 23-byte keys - 5.48 cycles/hash
Small key speed test - 24-byte keys - 4.00 cycles/hash
Small key speed test - 25-byte keys - 4.00 cycles/hash
-Small key speed test - 26-byte keys - 4.53 cycles/hash
-Small key speed test - 27-byte keys - 5.29 cycles/hash
+Small key speed test - 26-byte keys - 4.00 cycles/hash
+Small key speed test - 27-byte keys - 4.00 cycles/hash
Small key speed test - 28-byte keys - 4.00 cycles/hash
Small key speed test - 29-byte keys - 4.00 cycles/hash
Small key speed test - 30-byte keys - 4.00 cycles/hash
-Small key speed test - 31-byte keys - 4.00 cycles/hash
-Average 4.059 cycles/hash
+Small key speed test - 31-byte keys - 4.39 cycles/hash
+Small key speed test - 32-byte keys - 4.00 cycles/hash
+Average 4.078 cycles/hash
+Average, weighted by key length freq. 4.069 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 4.017 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -162,21 +174,22 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 3.015108 seconds
+Verification value is 0x00000001 - Testing took 2.956287 seconds
--- Testing NOP_OAAT_read64 "Noop function (measure call + OAAT reading overhead)" SKIP
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xfeaaa5e09c - 0xfeaaa5e054). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 3984.821 bytes/cycle - 11400663.87 MiB/sec @ 3 ghz
-Alignment 6 - 3958.781 bytes/cycle - 11326163.25 MiB/sec @ 3 ghz
-Alignment 5 - 3955.991 bytes/cycle - 11318181.82 MiB/sec @ 3 ghz
-Alignment 4 - 3979.005 bytes/cycle - 11384023.60 MiB/sec @ 3 ghz
-Alignment 3 - 3980.474 bytes/cycle - 11388228.48 MiB/sec @ 3 ghz
-Alignment 2 - 3990.088 bytes/cycle - 11415734.46 MiB/sec @ 3 ghz
-Alignment 1 - 3977.811 bytes/cycle - 11380608.39 MiB/sec @ 3 ghz
-Alignment 0 - 3973.812 bytes/cycle - 11369167.12 MiB/sec @ 3 ghz
-Average - 3975.098 bytes/cycle - 11372846.37 MiB/sec @ 3 ghz
+Alignment 7 - 4040.786 bytes/cycle - 11560782.86 MiB/sec @ 3 ghz
+Alignment 6 - 4058.518 bytes/cycle - 11611513.91 MiB/sec @ 3 ghz
+Alignment 5 - 4079.755 bytes/cycle - 11672273.10 MiB/sec @ 3 ghz
+Alignment 4 - 4080.518 bytes/cycle - 11674454.83 MiB/sec @ 3 ghz
+Alignment 3 - 4077.469 bytes/cycle - 11665732.79 MiB/sec @ 3 ghz
+Alignment 2 - 4088.925 bytes/cycle - 11698507.84 MiB/sec @ 3 ghz
+Alignment 1 - 4073.665 bytes/cycle - 11654848.54 MiB/sec @ 3 ghz
+Alignment 0 - 4083.571 bytes/cycle - 11683189.92 MiB/sec @ 3 ghz
+Average - 4072.901 bytes/cycle - 11652662.97 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 14.00 cycles/hash
Small key speed test - 2-byte keys - 14.00 cycles/hash
@@ -209,7 +222,10 @@ Small key speed test - 28-byte keys - 14.00 cycles/hash
Small key speed test - 29-byte keys - 14.00 cycles/hash
Small key speed test - 30-byte keys - 14.00 cycles/hash
Small key speed test - 31-byte keys - 14.00 cycles/hash
+Small key speed test - 32-byte keys - 14.00 cycles/hash
Average 14.000 cycles/hash
+Average, weighted by key length freq. 14.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 14.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -217,54 +233,58 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 4.705792 seconds
+Verification value is 0x00000001 - Testing took 4.672522 seconds
--- Testing BadHash "very simple XOR shift" SKIP
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x10295701b18 - 0x10295701ad0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.269 bytes/cycle - 770.68 MiB/sec @ 3 ghz
-Alignment 6 - 0.270 bytes/cycle - 771.21 MiB/sec @ 3 ghz
-Alignment 5 - 0.269 bytes/cycle - 770.36 MiB/sec @ 3 ghz
-Alignment 4 - 0.269 bytes/cycle - 771.04 MiB/sec @ 3 ghz
-Alignment 3 - 0.270 bytes/cycle - 771.79 MiB/sec @ 3 ghz
-Alignment 2 - 0.270 bytes/cycle - 771.34 MiB/sec @ 3 ghz
-Alignment 1 - 0.268 bytes/cycle - 767.01 MiB/sec @ 3 ghz
-Alignment 0 - 0.268 bytes/cycle - 766.06 MiB/sec @ 3 ghz
-Average - 0.269 bytes/cycle - 769.94 MiB/sec @ 3 ghz
+Alignment 7 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 6 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 5 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 4 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 3 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 2 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 1 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Alignment 0 - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
+Average - 0.278 bytes/cycle - 794.68 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 15.00 cycles/hash
-Small key speed test - 2-byte keys - 19.00 cycles/hash
-Small key speed test - 3-byte keys - 23.00 cycles/hash
-Small key speed test - 4-byte keys - 27.00 cycles/hash
-Small key speed test - 5-byte keys - 31.00 cycles/hash
-Small key speed test - 6-byte keys - 34.89 cycles/hash
-Small key speed test - 7-byte keys - 39.00 cycles/hash
-Small key speed test - 8-byte keys - 42.31 cycles/hash
-Small key speed test - 9-byte keys - 46.00 cycles/hash
-Small key speed test - 10-byte keys - 50.00 cycles/hash
-Small key speed test - 11-byte keys - 54.16 cycles/hash
-Small key speed test - 12-byte keys - 57.97 cycles/hash
-Small key speed test - 13-byte keys - 62.20 cycles/hash
-Small key speed test - 14-byte keys - 66.00 cycles/hash
-Small key speed test - 15-byte keys - 70.00 cycles/hash
-Small key speed test - 16-byte keys - 73.70 cycles/hash
-Small key speed test - 17-byte keys - 77.61 cycles/hash
-Small key speed test - 18-byte keys - 82.48 cycles/hash
-Small key speed test - 19-byte keys - 85.47 cycles/hash
-Small key speed test - 20-byte keys - 89.48 cycles/hash
-Small key speed test - 21-byte keys - 93.00 cycles/hash
-Small key speed test - 22-byte keys - 96.99 cycles/hash
-Small key speed test - 23-byte keys - 101.68 cycles/hash
-Small key speed test - 24-byte keys - 105.44 cycles/hash
-Small key speed test - 25-byte keys - 109.04 cycles/hash
-Small key speed test - 26-byte keys - 112.76 cycles/hash
-Small key speed test - 27-byte keys - 116.78 cycles/hash
-Small key speed test - 28-byte keys - 121.90 cycles/hash
-Small key speed test - 29-byte keys - 125.95 cycles/hash
-Small key speed test - 30-byte keys - 129.83 cycles/hash
-Small key speed test - 31-byte keys - 133.46 cycles/hash
-Average 73.971 cycles/hash
+Small key speed test - 1-byte keys - 14.94 cycles/hash
+Small key speed test - 2-byte keys - 18.67 cycles/hash
+Small key speed test - 3-byte keys - 22.00 cycles/hash
+Small key speed test - 4-byte keys - 26.00 cycles/hash
+Small key speed test - 5-byte keys - 30.00 cycles/hash
+Small key speed test - 6-byte keys - 33.17 cycles/hash
+Small key speed test - 7-byte keys - 37.00 cycles/hash
+Small key speed test - 8-byte keys - 41.00 cycles/hash
+Small key speed test - 9-byte keys - 44.76 cycles/hash
+Small key speed test - 10-byte keys - 48.24 cycles/hash
+Small key speed test - 11-byte keys - 52.00 cycles/hash
+Small key speed test - 12-byte keys - 55.98 cycles/hash
+Small key speed test - 13-byte keys - 59.91 cycles/hash
+Small key speed test - 14-byte keys - 63.44 cycles/hash
+Small key speed test - 15-byte keys - 67.46 cycles/hash
+Small key speed test - 16-byte keys - 71.00 cycles/hash
+Small key speed test - 17-byte keys - 74.69 cycles/hash
+Small key speed test - 18-byte keys - 78.86 cycles/hash
+Small key speed test - 19-byte keys - 82.41 cycles/hash
+Small key speed test - 20-byte keys - 86.00 cycles/hash
+Small key speed test - 21-byte keys - 89.47 cycles/hash
+Small key speed test - 22-byte keys - 93.28 cycles/hash
+Small key speed test - 23-byte keys - 97.00 cycles/hash
+Small key speed test - 24-byte keys - 100.00 cycles/hash
+Small key speed test - 25-byte keys - 104.00 cycles/hash
+Small key speed test - 26-byte keys - 108.30 cycles/hash
+Small key speed test - 27-byte keys - 111.54 cycles/hash
+Small key speed test - 28-byte keys - 117.04 cycles/hash
+Small key speed test - 29-byte keys - 120.83 cycles/hash
+Small key speed test - 30-byte keys - 124.20 cycles/hash
+Small key speed test - 31-byte keys - 126.51 cycles/hash
+Small key speed test - 32-byte keys - 130.00 cycles/hash
+Average 72.802 cycles/hash
+Average, weighted by key length freq. 72.618 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 57.518 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -272,54 +292,58 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 22.990327 seconds
+Verification value is 0x00000001 - Testing took 22.207682 seconds
--- Testing sumhash "sum all bytes" SKIP
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x11532052aa0 - 0x11532052a58). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 3.802 bytes/cycle - 10877.96 MiB/sec @ 3 ghz
-Alignment 6 - 3.801 bytes/cycle - 10876.03 MiB/sec @ 3 ghz
-Alignment 5 - 3.802 bytes/cycle - 10878.09 MiB/sec @ 3 ghz
-Alignment 4 - 3.783 bytes/cycle - 10822.43 MiB/sec @ 3 ghz
-Alignment 3 - 3.801 bytes/cycle - 10874.36 MiB/sec @ 3 ghz
-Alignment 2 - 3.762 bytes/cycle - 10763.86 MiB/sec @ 3 ghz
-Alignment 1 - 3.759 bytes/cycle - 10753.55 MiB/sec @ 3 ghz
-Alignment 0 - 3.408 bytes/cycle - 9750.31 MiB/sec @ 3 ghz
-Average - 3.740 bytes/cycle - 10699.57 MiB/sec @ 3 ghz
+Alignment 7 - 3.156 bytes/cycle - 9029.93 MiB/sec @ 3 ghz
+Alignment 6 - 3.155 bytes/cycle - 9026.67 MiB/sec @ 3 ghz
+Alignment 5 - 3.156 bytes/cycle - 9029.93 MiB/sec @ 3 ghz
+Alignment 4 - 3.818 bytes/cycle - 10924.73 MiB/sec @ 3 ghz
+Alignment 3 - 3.808 bytes/cycle - 10895.26 MiB/sec @ 3 ghz
+Alignment 2 - 3.802 bytes/cycle - 10876.20 MiB/sec @ 3 ghz
+Alignment 1 - 3.776 bytes/cycle - 10802.42 MiB/sec @ 3 ghz
+Alignment 0 - 3.807 bytes/cycle - 10892.24 MiB/sec @ 3 ghz
+Average - 3.560 bytes/cycle - 10184.67 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 14.00 cycles/hash
Small key speed test - 2-byte keys - 15.00 cycles/hash
Small key speed test - 3-byte keys - 16.00 cycles/hash
Small key speed test - 4-byte keys - 17.00 cycles/hash
-Small key speed test - 5-byte keys - 18.49 cycles/hash
+Small key speed test - 5-byte keys - 18.00 cycles/hash
Small key speed test - 6-byte keys - 19.00 cycles/hash
Small key speed test - 7-byte keys - 19.00 cycles/hash
Small key speed test - 8-byte keys - 21.00 cycles/hash
-Small key speed test - 9-byte keys - 21.99 cycles/hash
-Small key speed test - 10-byte keys - 23.00 cycles/hash
-Small key speed test - 11-byte keys - 23.75 cycles/hash
-Small key speed test - 12-byte keys - 24.48 cycles/hash
-Small key speed test - 13-byte keys - 25.88 cycles/hash
-Small key speed test - 14-byte keys - 26.97 cycles/hash
+Small key speed test - 9-byte keys - 21.88 cycles/hash
+Small key speed test - 10-byte keys - 22.99 cycles/hash
+Small key speed test - 11-byte keys - 23.18 cycles/hash
+Small key speed test - 12-byte keys - 24.19 cycles/hash
+Small key speed test - 13-byte keys - 25.21 cycles/hash
+Small key speed test - 14-byte keys - 26.71 cycles/hash
Small key speed test - 15-byte keys - 27.00 cycles/hash
-Small key speed test - 16-byte keys - 31.46 cycles/hash
-Small key speed test - 17-byte keys - 30.97 cycles/hash
-Small key speed test - 18-byte keys - 31.97 cycles/hash
+Small key speed test - 16-byte keys - 31.00 cycles/hash
+Small key speed test - 17-byte keys - 30.86 cycles/hash
+Small key speed test - 18-byte keys - 31.70 cycles/hash
Small key speed test - 19-byte keys - 33.00 cycles/hash
-Small key speed test - 20-byte keys - 33.97 cycles/hash
-Small key speed test - 21-byte keys - 34.61 cycles/hash
-Small key speed test - 22-byte keys - 36.50 cycles/hash
-Small key speed test - 23-byte keys - 37.17 cycles/hash
-Small key speed test - 24-byte keys - 37.93 cycles/hash
-Small key speed test - 25-byte keys - 41.29 cycles/hash
+Small key speed test - 20-byte keys - 33.60 cycles/hash
+Small key speed test - 21-byte keys - 34.00 cycles/hash
+Small key speed test - 22-byte keys - 36.47 cycles/hash
+Small key speed test - 23-byte keys - 37.00 cycles/hash
+Small key speed test - 24-byte keys - 37.96 cycles/hash
+Small key speed test - 25-byte keys - 38.38 cycles/hash
Small key speed test - 26-byte keys - 39.00 cycles/hash
-Small key speed test - 27-byte keys - 41.00 cycles/hash
-Small key speed test - 28-byte keys - 43.27 cycles/hash
+Small key speed test - 27-byte keys - 40.82 cycles/hash
+Small key speed test - 28-byte keys - 42.75 cycles/hash
Small key speed test - 29-byte keys - 42.00 cycles/hash
-Small key speed test - 30-byte keys - 43.89 cycles/hash
-Small key speed test - 31-byte keys - 44.87 cycles/hash
-Average 29.531 cycles/hash
+Small key speed test - 30-byte keys - 43.00 cycles/hash
+Small key speed test - 31-byte keys - 44.00 cycles/hash
+Small key speed test - 32-byte keys - 35.00 cycles/hash
+Average 29.396 cycles/hash
+Average, weighted by key length freq. 29.532 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 25.986 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -327,54 +351,58 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.085387 seconds
+Verification value is 0x00000001 - Testing took 8.193907 seconds
--- Testing sumhash32 "sum all 32bit words" SKIP
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x11c103e4204 - 0x11c103e4198). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 14.683 bytes/cycle - 42007.70 MiB/sec @ 3 ghz
-Alignment 6 - 14.830 bytes/cycle - 42427.82 MiB/sec @ 3 ghz
-Alignment 5 - 14.809 bytes/cycle - 42369.13 MiB/sec @ 3 ghz
-Alignment 4 - 14.892 bytes/cycle - 42605.43 MiB/sec @ 3 ghz
-Alignment 3 - 14.760 bytes/cycle - 42229.60 MiB/sec @ 3 ghz
-Alignment 2 - 14.745 bytes/cycle - 42184.57 MiB/sec @ 3 ghz
-Alignment 1 - 14.756 bytes/cycle - 42216.33 MiB/sec @ 3 ghz
-Alignment 0 - 16.421 bytes/cycle - 46981.76 MiB/sec @ 3 ghz
-Average - 14.987 bytes/cycle - 42877.79 MiB/sec @ 3 ghz
+Alignment 7 - 15.399 bytes/cycle - 44057.17 MiB/sec @ 3 ghz
+Alignment 6 - 15.431 bytes/cycle - 44149.12 MiB/sec @ 3 ghz
+Alignment 5 - 15.422 bytes/cycle - 44124.12 MiB/sec @ 3 ghz
+Alignment 4 - 15.515 bytes/cycle - 44389.87 MiB/sec @ 3 ghz
+Alignment 3 - 15.406 bytes/cycle - 44075.82 MiB/sec @ 3 ghz
+Alignment 2 - 15.415 bytes/cycle - 44103.38 MiB/sec @ 3 ghz
+Alignment 1 - 15.414 bytes/cycle - 44100.27 MiB/sec @ 3 ghz
+Alignment 0 - 17.143 bytes/cycle - 49047.23 MiB/sec @ 3 ghz
+Average - 15.643 bytes/cycle - 44755.87 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 17.00 cycles/hash
-Small key speed test - 2-byte keys - 18.99 cycles/hash
-Small key speed test - 3-byte keys - 19.00 cycles/hash
+Small key speed test - 1-byte keys - 16.00 cycles/hash
+Small key speed test - 2-byte keys - 18.00 cycles/hash
+Small key speed test - 3-byte keys - 34.19 cycles/hash
Small key speed test - 4-byte keys - 14.00 cycles/hash
-Small key speed test - 5-byte keys - 19.00 cycles/hash
-Small key speed test - 6-byte keys - 20.00 cycles/hash
-Small key speed test - 7-byte keys - 21.00 cycles/hash
-Small key speed test - 8-byte keys - 15.00 cycles/hash
-Small key speed test - 9-byte keys - 20.00 cycles/hash
-Small key speed test - 10-byte keys - 21.00 cycles/hash
-Small key speed test - 11-byte keys - 22.00 cycles/hash
-Small key speed test - 12-byte keys - 16.00 cycles/hash
-Small key speed test - 13-byte keys - 20.00 cycles/hash
-Small key speed test - 14-byte keys - 21.00 cycles/hash
-Small key speed test - 15-byte keys - 22.00 cycles/hash
-Small key speed test - 16-byte keys - 24.00 cycles/hash
-Small key speed test - 17-byte keys - 25.00 cycles/hash
-Small key speed test - 18-byte keys - 26.00 cycles/hash
-Small key speed test - 19-byte keys - 27.00 cycles/hash
-Small key speed test - 20-byte keys - 25.00 cycles/hash
-Small key speed test - 21-byte keys - 26.20 cycles/hash
-Small key speed test - 22-byte keys - 27.00 cycles/hash
-Small key speed test - 23-byte keys - 28.00 cycles/hash
-Small key speed test - 24-byte keys - 25.90 cycles/hash
-Small key speed test - 25-byte keys - 26.96 cycles/hash
-Small key speed test - 26-byte keys - 27.55 cycles/hash
-Small key speed test - 27-byte keys - 28.27 cycles/hash
-Small key speed test - 28-byte keys - 26.98 cycles/hash
-Small key speed test - 29-byte keys - 27.94 cycles/hash
-Small key speed test - 30-byte keys - 28.97 cycles/hash
-Small key speed test - 31-byte keys - 29.94 cycles/hash
-Average 23.120 cycles/hash
+Small key speed test - 5-byte keys - 18.00 cycles/hash
+Small key speed test - 6-byte keys - 19.00 cycles/hash
+Small key speed test - 7-byte keys - 20.55 cycles/hash
+Small key speed test - 8-byte keys - 14.80 cycles/hash
+Small key speed test - 9-byte keys - 19.00 cycles/hash
+Small key speed test - 10-byte keys - 20.00 cycles/hash
+Small key speed test - 11-byte keys - 21.00 cycles/hash
+Small key speed test - 12-byte keys - 15.65 cycles/hash
+Small key speed test - 13-byte keys - 19.00 cycles/hash
+Small key speed test - 14-byte keys - 20.00 cycles/hash
+Small key speed test - 15-byte keys - 21.00 cycles/hash
+Small key speed test - 16-byte keys - 23.00 cycles/hash
+Small key speed test - 17-byte keys - 23.93 cycles/hash
+Small key speed test - 18-byte keys - 25.00 cycles/hash
+Small key speed test - 19-byte keys - 28.79 cycles/hash
+Small key speed test - 20-byte keys - 26.29 cycles/hash
+Small key speed test - 21-byte keys - 24.93 cycles/hash
+Small key speed test - 22-byte keys - 26.34 cycles/hash
+Small key speed test - 23-byte keys - 26.96 cycles/hash
+Small key speed test - 24-byte keys - 24.91 cycles/hash
+Small key speed test - 25-byte keys - 25.15 cycles/hash
+Small key speed test - 26-byte keys - 26.13 cycles/hash
+Small key speed test - 27-byte keys - 27.00 cycles/hash
+Small key speed test - 28-byte keys - 25.21 cycles/hash
+Small key speed test - 29-byte keys - 26.55 cycles/hash
+Small key speed test - 30-byte keys - 27.00 cycles/hash
+Small key speed test - 31-byte keys - 50.31 cycles/hash
+Small key speed test - 32-byte keys - 23.00 cycles/hash
+Average 23.459 cycles/hash
+Average, weighted by key length freq. 22.558 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 20.679 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
@@ -382,3088 +410,3679 @@ Skipping Hashmap test; it is designed for true hashes
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 6.456471 seconds
+Verification value is 0x00000001 - Testing took 6.469484 seconds
--- Testing multiply_shift "Dietzfelbinger Multiply-shift on strings" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1217d40b720 - 0x1217d40b6b4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.799 bytes/cycle - 8008.12 MiB/sec @ 3 ghz
-Alignment 6 - 2.805 bytes/cycle - 8024.53 MiB/sec @ 3 ghz
-Alignment 5 - 2.806 bytes/cycle - 8029.00 MiB/sec @ 3 ghz
-Alignment 4 - 2.810 bytes/cycle - 8038.72 MiB/sec @ 3 ghz
-Alignment 3 - 2.807 bytes/cycle - 8030.78 MiB/sec @ 3 ghz
-Alignment 2 - 2.806 bytes/cycle - 8026.81 MiB/sec @ 3 ghz
-Alignment 1 - 2.802 bytes/cycle - 8016.68 MiB/sec @ 3 ghz
-Alignment 0 - 2.810 bytes/cycle - 8039.50 MiB/sec @ 3 ghz
-Average - 2.806 bytes/cycle - 8026.77 MiB/sec @ 3 ghz
+Alignment 7 - 2.893 bytes/cycle - 8277.46 MiB/sec @ 3 ghz
+Alignment 6 - 2.897 bytes/cycle - 8288.07 MiB/sec @ 3 ghz
+Alignment 5 - 2.897 bytes/cycle - 8289.01 MiB/sec @ 3 ghz
+Alignment 4 - 2.897 bytes/cycle - 8287.77 MiB/sec @ 3 ghz
+Alignment 3 - 2.893 bytes/cycle - 8277.32 MiB/sec @ 3 ghz
+Alignment 2 - 2.897 bytes/cycle - 8287.58 MiB/sec @ 3 ghz
+Alignment 1 - 2.897 bytes/cycle - 8288.08 MiB/sec @ 3 ghz
+Alignment 0 - 2.900 bytes/cycle - 8297.77 MiB/sec @ 3 ghz
+Average - 2.896 bytes/cycle - 8286.63 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 21.00 cycles/hash
-Small key speed test - 2-byte keys - 21.00 cycles/hash
-Small key speed test - 3-byte keys - 23.00 cycles/hash
-Small key speed test - 4-byte keys - 20.43 cycles/hash
-Small key speed test - 5-byte keys - 23.00 cycles/hash
-Small key speed test - 6-byte keys - 23.77 cycles/hash
-Small key speed test - 7-byte keys - 24.82 cycles/hash
-Small key speed test - 8-byte keys - 21.00 cycles/hash
-Small key speed test - 9-byte keys - 24.00 cycles/hash
-Small key speed test - 10-byte keys - 24.61 cycles/hash
-Small key speed test - 11-byte keys - 25.00 cycles/hash
-Small key speed test - 12-byte keys - 24.00 cycles/hash
-Small key speed test - 13-byte keys - 25.68 cycles/hash
-Small key speed test - 14-byte keys - 25.00 cycles/hash
+Small key speed test - 1-byte keys - 20.81 cycles/hash
+Small key speed test - 2-byte keys - 20.97 cycles/hash
+Small key speed test - 3-byte keys - 22.86 cycles/hash
+Small key speed test - 4-byte keys - 20.00 cycles/hash
+Small key speed test - 5-byte keys - 22.13 cycles/hash
+Small key speed test - 6-byte keys - 23.00 cycles/hash
+Small key speed test - 7-byte keys - 23.99 cycles/hash
+Small key speed test - 8-byte keys - 20.00 cycles/hash
+Small key speed test - 9-byte keys - 23.43 cycles/hash
+Small key speed test - 10-byte keys - 23.86 cycles/hash
+Small key speed test - 11-byte keys - 24.43 cycles/hash
+Small key speed test - 12-byte keys - 23.00 cycles/hash
+Small key speed test - 13-byte keys - 25.00 cycles/hash
+Small key speed test - 14-byte keys - 24.00 cycles/hash
Small key speed test - 15-byte keys - 26.00 cycles/hash
-Small key speed test - 16-byte keys - 23.81 cycles/hash
-Small key speed test - 17-byte keys - 27.00 cycles/hash
-Small key speed test - 18-byte keys - 27.00 cycles/hash
-Small key speed test - 19-byte keys - 27.00 cycles/hash
-Small key speed test - 20-byte keys - 27.00 cycles/hash
-Small key speed test - 21-byte keys - 27.00 cycles/hash
-Small key speed test - 22-byte keys - 27.00 cycles/hash
-Small key speed test - 23-byte keys - 29.00 cycles/hash
-Small key speed test - 24-byte keys - 27.00 cycles/hash
-Small key speed test - 25-byte keys - 31.00 cycles/hash
-Small key speed test - 26-byte keys - 30.00 cycles/hash
-Small key speed test - 27-byte keys - 31.00 cycles/hash
-Small key speed test - 28-byte keys - 30.00 cycles/hash
-Small key speed test - 29-byte keys - 30.41 cycles/hash
-Small key speed test - 30-byte keys - 30.00 cycles/hash
-Small key speed test - 31-byte keys - 31.11 cycles/hash
-Average 26.053 cycles/hash
+Small key speed test - 16-byte keys - 23.00 cycles/hash
+Small key speed test - 17-byte keys - 26.00 cycles/hash
+Small key speed test - 18-byte keys - 26.00 cycles/hash
+Small key speed test - 19-byte keys - 26.46 cycles/hash
+Small key speed test - 20-byte keys - 26.00 cycles/hash
+Small key speed test - 21-byte keys - 26.00 cycles/hash
+Small key speed test - 22-byte keys - 26.14 cycles/hash
+Small key speed test - 23-byte keys - 27.43 cycles/hash
+Small key speed test - 24-byte keys - 26.00 cycles/hash
+Small key speed test - 25-byte keys - 30.00 cycles/hash
+Small key speed test - 26-byte keys - 29.00 cycles/hash
+Small key speed test - 27-byte keys - 30.00 cycles/hash
+Small key speed test - 28-byte keys - 29.00 cycles/hash
+Small key speed test - 29-byte keys - 29.32 cycles/hash
+Small key speed test - 30-byte keys - 29.00 cycles/hash
+Small key speed test - 31-byte keys - 30.00 cycles/hash
+Small key speed test - 32-byte keys - 29.72 cycles/hash
+Average 25.392 cycles/hash
+Average, weighted by key length freq. 25.279 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 23.365 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 535.502 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.921 cycles/op (11.0 stdv)
+Init std HashMapTest: 412.942 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 332.098 cycles/op (3.1 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 374.528 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 226.799 cycles/op (7.8 stdv) ....... PASS
+Init fast HashMapTest: 263.208 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 209.057 cycles/op (2.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.510203 seconds
+Verification value is 0x00000001 - Testing took 8.193560 seconds
--- Testing pair_multiply_shift "Pair-multiply-shift" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1285b808b6c - 0x1285b808b00). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.993 bytes/cycle - 5701.58 MiB/sec @ 3 ghz
-Alignment 6 - 1.999 bytes/cycle - 5718.63 MiB/sec @ 3 ghz
-Alignment 5 - 1.995 bytes/cycle - 5708.73 MiB/sec @ 3 ghz
-Alignment 4 - 1.990 bytes/cycle - 5693.76 MiB/sec @ 3 ghz
-Alignment 3 - 1.999 bytes/cycle - 5720.02 MiB/sec @ 3 ghz
-Alignment 2 - 1.999 bytes/cycle - 5718.31 MiB/sec @ 3 ghz
-Alignment 1 - 1.996 bytes/cycle - 5710.54 MiB/sec @ 3 ghz
-Alignment 0 - 1.992 bytes/cycle - 5697.75 MiB/sec @ 3 ghz
-Average - 1.995 bytes/cycle - 5708.67 MiB/sec @ 3 ghz
+Alignment 7 - 2.001 bytes/cycle - 5725.78 MiB/sec @ 3 ghz
+Alignment 6 - 2.002 bytes/cycle - 5728.36 MiB/sec @ 3 ghz
+Alignment 5 - 2.000 bytes/cycle - 5722.20 MiB/sec @ 3 ghz
+Alignment 4 - 2.002 bytes/cycle - 5727.47 MiB/sec @ 3 ghz
+Alignment 3 - 2.001 bytes/cycle - 5726.09 MiB/sec @ 3 ghz
+Alignment 2 - 2.002 bytes/cycle - 5727.28 MiB/sec @ 3 ghz
+Alignment 1 - 2.001 bytes/cycle - 5726.19 MiB/sec @ 3 ghz
+Alignment 0 - 2.007 bytes/cycle - 5741.03 MiB/sec @ 3 ghz
+Average - 2.002 bytes/cycle - 5728.05 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 27.95 cycles/hash
-Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 35.25 cycles/hash
+Small key speed test - 1-byte keys - 27.00 cycles/hash
+Small key speed test - 2-byte keys - 27.34 cycles/hash
+Small key speed test - 3-byte keys - 35.00 cycles/hash
Small key speed test - 4-byte keys - 27.00 cycles/hash
-Small key speed test - 5-byte keys - 35.67 cycles/hash
-Small key speed test - 6-byte keys - 35.51 cycles/hash
+Small key speed test - 5-byte keys - 34.94 cycles/hash
+Small key speed test - 6-byte keys - 35.14 cycles/hash
Small key speed test - 7-byte keys - 43.00 cycles/hash
-Small key speed test - 8-byte keys - 26.82 cycles/hash
-Small key speed test - 9-byte keys - 36.00 cycles/hash
+Small key speed test - 8-byte keys - 26.49 cycles/hash
+Small key speed test - 9-byte keys - 35.00 cycles/hash
Small key speed test - 10-byte keys - 35.00 cycles/hash
-Small key speed test - 11-byte keys - 42.92 cycles/hash
+Small key speed test - 11-byte keys - 42.89 cycles/hash
Small key speed test - 12-byte keys - 35.00 cycles/hash
-Small key speed test - 13-byte keys - 43.50 cycles/hash
-Small key speed test - 14-byte keys - 43.22 cycles/hash
-Small key speed test - 15-byte keys - 50.70 cycles/hash
+Small key speed test - 13-byte keys - 43.00 cycles/hash
+Small key speed test - 14-byte keys - 43.00 cycles/hash
+Small key speed test - 15-byte keys - 50.49 cycles/hash
Small key speed test - 16-byte keys - 30.00 cycles/hash
Small key speed test - 17-byte keys - 36.00 cycles/hash
-Small key speed test - 18-byte keys - 36.14 cycles/hash
+Small key speed test - 18-byte keys - 36.00 cycles/hash
Small key speed test - 19-byte keys - 43.25 cycles/hash
Small key speed test - 20-byte keys - 35.00 cycles/hash
-Small key speed test - 21-byte keys - 43.00 cycles/hash
-Small key speed test - 22-byte keys - 44.00 cycles/hash
-Small key speed test - 23-byte keys - 52.00 cycles/hash
-Small key speed test - 24-byte keys - 34.92 cycles/hash
-Small key speed test - 25-byte keys - 43.00 cycles/hash
+Small key speed test - 21-byte keys - 43.98 cycles/hash
+Small key speed test - 22-byte keys - 43.99 cycles/hash
+Small key speed test - 23-byte keys - 51.94 cycles/hash
+Small key speed test - 24-byte keys - 34.14 cycles/hash
+Small key speed test - 25-byte keys - 43.99 cycles/hash
Small key speed test - 26-byte keys - 43.00 cycles/hash
Small key speed test - 27-byte keys - 51.00 cycles/hash
-Small key speed test - 28-byte keys - 42.95 cycles/hash
-Small key speed test - 29-byte keys - 51.88 cycles/hash
-Small key speed test - 30-byte keys - 51.38 cycles/hash
-Small key speed test - 31-byte keys - 58.93 cycles/hash
-Average 40.063 cycles/hash
+Small key speed test - 28-byte keys - 42.24 cycles/hash
+Small key speed test - 29-byte keys - 51.93 cycles/hash
+Small key speed test - 30-byte keys - 51.00 cycles/hash
+Small key speed test - 31-byte keys - 58.21 cycles/hash
+Small key speed test - 32-byte keys - 33.42 cycles/hash
+Average 39.668 cycles/hash
+Average, weighted by key length freq. 40.153 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 34.436 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 524.970 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 383.831 cycles/op (18.4 stdv)
+Init std HashMapTest: 416.457 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 332.824 cycles/op (2.6 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 275.269 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 225.311 cycles/op (8.6 stdv) ....... PASS
+Init fast HashMapTest: 259.729 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 218.478 cycles/op (11.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.180885 seconds
+Verification value is 0x00000001 - Testing took 11.111446 seconds
--- Testing crc32 "CRC-32 soft" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.133 bytes/cycle - 379.79 MiB/sec @ 3 ghz
-Alignment 6 - 0.135 bytes/cycle - 384.81 MiB/sec @ 3 ghz
-Alignment 5 - 0.134 bytes/cycle - 384.62 MiB/sec @ 3 ghz
-Alignment 4 - 0.133 bytes/cycle - 379.27 MiB/sec @ 3 ghz
-Alignment 3 - 0.134 bytes/cycle - 382.18 MiB/sec @ 3 ghz
-Alignment 2 - 0.135 bytes/cycle - 384.81 MiB/sec @ 3 ghz
-Alignment 1 - 0.134 bytes/cycle - 384.68 MiB/sec @ 3 ghz
-Alignment 0 - 0.134 bytes/cycle - 384.79 MiB/sec @ 3 ghz
-Average - 0.134 bytes/cycle - 383.12 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 21.98 cycles/hash
-Small key speed test - 2-byte keys - 29.00 cycles/hash
-Small key speed test - 3-byte keys - 36.31 cycles/hash
-Small key speed test - 4-byte keys - 44.00 cycles/hash
-Small key speed test - 5-byte keys - 51.74 cycles/hash
-Small key speed test - 6-byte keys - 58.15 cycles/hash
-Small key speed test - 7-byte keys - 66.00 cycles/hash
-Small key speed test - 8-byte keys - 74.21 cycles/hash
-Small key speed test - 9-byte keys - 82.14 cycles/hash
-Small key speed test - 10-byte keys - 89.94 cycles/hash
-Small key speed test - 11-byte keys - 96.95 cycles/hash
-Small key speed test - 12-byte keys - 104.44 cycles/hash
-Small key speed test - 13-byte keys - 111.84 cycles/hash
-Small key speed test - 14-byte keys - 118.95 cycles/hash
-Small key speed test - 15-byte keys - 126.91 cycles/hash
-Small key speed test - 16-byte keys - 134.06 cycles/hash
-Small key speed test - 17-byte keys - 142.11 cycles/hash
-Small key speed test - 18-byte keys - 148.97 cycles/hash
-Small key speed test - 19-byte keys - 157.88 cycles/hash
-Small key speed test - 20-byte keys - 164.05 cycles/hash
-Small key speed test - 21-byte keys - 171.81 cycles/hash
-Small key speed test - 22-byte keys - 178.30 cycles/hash
-Small key speed test - 23-byte keys - 185.90 cycles/hash
-Small key speed test - 24-byte keys - 193.70 cycles/hash
-Small key speed test - 25-byte keys - 201.85 cycles/hash
-Small key speed test - 26-byte keys - 211.63 cycles/hash
-Small key speed test - 27-byte keys - 216.50 cycles/hash
-Small key speed test - 28-byte keys - 223.16 cycles/hash
-Small key speed test - 29-byte keys - 231.89 cycles/hash
-Small key speed test - 30-byte keys - 238.77 cycles/hash
-Small key speed test - 31-byte keys - 247.31 cycles/hash
-Average 134.208 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 463.971 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 391.703 cycles/op (4.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 330.925 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 257.505 cycles/op (11.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 41.184329 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x131aba4df34 - 0x131aba4dec8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.111 bytes/cycle - 318.19 MiB/sec @ 3 ghz
+Alignment 6 - 0.131 bytes/cycle - 373.94 MiB/sec @ 3 ghz
+Alignment 5 - 0.130 bytes/cycle - 370.91 MiB/sec @ 3 ghz
+Alignment 4 - 0.134 bytes/cycle - 382.08 MiB/sec @ 3 ghz
+Alignment 3 - 0.135 bytes/cycle - 386.63 MiB/sec @ 3 ghz
+Alignment 2 - 0.134 bytes/cycle - 383.33 MiB/sec @ 3 ghz
+Alignment 1 - 0.132 bytes/cycle - 378.05 MiB/sec @ 3 ghz
+Alignment 0 - 0.128 bytes/cycle - 365.91 MiB/sec @ 3 ghz
+Average - 0.129 bytes/cycle - 369.88 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 22.70 cycles/hash
+Small key speed test - 2-byte keys - 29.61 cycles/hash
+Small key speed test - 3-byte keys - 38.48 cycles/hash
+Small key speed test - 4-byte keys - 45.26 cycles/hash
+Small key speed test - 5-byte keys - 53.03 cycles/hash
+Small key speed test - 6-byte keys - 61.35 cycles/hash
+Small key speed test - 7-byte keys - 68.53 cycles/hash
+Small key speed test - 8-byte keys - 75.65 cycles/hash
+Small key speed test - 9-byte keys - 83.13 cycles/hash
+Small key speed test - 10-byte keys - 90.00 cycles/hash
+Small key speed test - 11-byte keys - 103.36 cycles/hash
+Small key speed test - 12-byte keys - 108.74 cycles/hash
+Small key speed test - 13-byte keys - 117.42 cycles/hash
+Small key speed test - 14-byte keys - 127.12 cycles/hash
+Small key speed test - 15-byte keys - 133.18 cycles/hash
+Small key speed test - 16-byte keys - 140.07 cycles/hash
+Small key speed test - 17-byte keys - 146.07 cycles/hash
+Small key speed test - 18-byte keys - 151.65 cycles/hash
+Small key speed test - 19-byte keys - 160.28 cycles/hash
+Small key speed test - 20-byte keys - 173.64 cycles/hash
+Small key speed test - 21-byte keys - 175.22 cycles/hash
+Small key speed test - 22-byte keys - 182.39 cycles/hash
+Small key speed test - 23-byte keys - 191.72 cycles/hash
+Small key speed test - 24-byte keys - 198.52 cycles/hash
+Small key speed test - 25-byte keys - 206.45 cycles/hash
+Small key speed test - 26-byte keys - 215.50 cycles/hash
+Small key speed test - 27-byte keys - 225.06 cycles/hash
+Small key speed test - 28-byte keys - 230.61 cycles/hash
+Small key speed test - 29-byte keys - 240.00 cycles/hash
+Small key speed test - 30-byte keys - 246.80 cycles/hash
+Small key speed test - 31-byte keys - 252.89 cycles/hash
+Small key speed test - 32-byte keys - 260.03 cycles/hash
+Average 142.327 cycles/hash
+Average, weighted by key length freq. 142.497 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 111.392 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1006.105 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 496.969 cycles/op (73.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 360.162 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 396.808 cycles/op (101.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 46.730680 seconds
--- Testing md5-128 "MD5" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.123 bytes/cycle - 351.08 MiB/sec @ 3 ghz
-Alignment 6 - 0.123 bytes/cycle - 351.02 MiB/sec @ 3 ghz
-Alignment 5 - 0.122 bytes/cycle - 350.30 MiB/sec @ 3 ghz
-Alignment 4 - 0.123 bytes/cycle - 351.10 MiB/sec @ 3 ghz
-Alignment 3 - 0.123 bytes/cycle - 350.97 MiB/sec @ 3 ghz
-Alignment 2 - 0.123 bytes/cycle - 351.18 MiB/sec @ 3 ghz
-Alignment 1 - 0.122 bytes/cycle - 350.27 MiB/sec @ 3 ghz
-Alignment 0 - 0.123 bytes/cycle - 351.17 MiB/sec @ 3 ghz
-Average - 0.123 bytes/cycle - 350.89 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 669.48 cycles/hash
-Small key speed test - 2-byte keys - 665.24 cycles/hash
-Small key speed test - 3-byte keys - 665.71 cycles/hash
-Small key speed test - 4-byte keys - 671.86 cycles/hash
-Small key speed test - 5-byte keys - 671.49 cycles/hash
-Small key speed test - 6-byte keys - 670.61 cycles/hash
-Small key speed test - 7-byte keys - 669.58 cycles/hash
-Small key speed test - 8-byte keys - 687.18 cycles/hash
-Small key speed test - 9-byte keys - 686.77 cycles/hash
-Small key speed test - 10-byte keys - 686.83 cycles/hash
-Small key speed test - 11-byte keys - 686.92 cycles/hash
-Small key speed test - 12-byte keys - 688.00 cycles/hash
-Small key speed test - 13-byte keys - 687.95 cycles/hash
-Small key speed test - 14-byte keys - 687.89 cycles/hash
-Small key speed test - 15-byte keys - 687.17 cycles/hash
-Small key speed test - 16-byte keys - 685.65 cycles/hash
-Small key speed test - 17-byte keys - 685.67 cycles/hash
-Small key speed test - 18-byte keys - 685.51 cycles/hash
-Small key speed test - 19-byte keys - 686.07 cycles/hash
-Small key speed test - 20-byte keys - 686.75 cycles/hash
-Small key speed test - 21-byte keys - 686.75 cycles/hash
-Small key speed test - 22-byte keys - 686.45 cycles/hash
-Small key speed test - 23-byte keys - 685.73 cycles/hash
-Small key speed test - 24-byte keys - 685.82 cycles/hash
-Small key speed test - 25-byte keys - 686.05 cycles/hash
-Small key speed test - 26-byte keys - 685.58 cycles/hash
-Small key speed test - 27-byte keys - 685.71 cycles/hash
-Small key speed test - 28-byte keys - 685.86 cycles/hash
-Small key speed test - 29-byte keys - 686.45 cycles/hash
-Small key speed test - 30-byte keys - 675.40 cycles/hash
-Small key speed test - 31-byte keys - 676.08 cycles/hash
-Average 681.878 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1179.248 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1037.452 cycles/op (20.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 964.421 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 894.031 cycles/op (12.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 136.936532 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x158d9015840 - 0x158d90157f8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.120 bytes/cycle - 342.09 MiB/sec @ 3 ghz
+Alignment 6 - 0.120 bytes/cycle - 343.42 MiB/sec @ 3 ghz
+Alignment 5 - 0.120 bytes/cycle - 344.55 MiB/sec @ 3 ghz
+Alignment 4 - 0.120 bytes/cycle - 343.96 MiB/sec @ 3 ghz
+Alignment 3 - 0.120 bytes/cycle - 344.21 MiB/sec @ 3 ghz
+Alignment 2 - 0.121 bytes/cycle - 345.40 MiB/sec @ 3 ghz
+Alignment 1 - 0.121 bytes/cycle - 346.05 MiB/sec @ 3 ghz
+Alignment 0 - 0.121 bytes/cycle - 347.40 MiB/sec @ 3 ghz
+Average - 0.120 bytes/cycle - 344.63 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 664.05 cycles/hash
+Small key speed test - 2-byte keys - 666.04 cycles/hash
+Small key speed test - 3-byte keys - 666.21 cycles/hash
+Small key speed test - 4-byte keys - 667.93 cycles/hash
+Small key speed test - 5-byte keys - 667.95 cycles/hash
+Small key speed test - 6-byte keys - 666.23 cycles/hash
+Small key speed test - 7-byte keys - 660.95 cycles/hash
+Small key speed test - 8-byte keys - 679.07 cycles/hash
+Small key speed test - 9-byte keys - 676.55 cycles/hash
+Small key speed test - 10-byte keys - 672.30 cycles/hash
+Small key speed test - 11-byte keys - 673.69 cycles/hash
+Small key speed test - 12-byte keys - 673.95 cycles/hash
+Small key speed test - 13-byte keys - 674.51 cycles/hash
+Small key speed test - 14-byte keys - 674.35 cycles/hash
+Small key speed test - 15-byte keys - 674.12 cycles/hash
+Small key speed test - 16-byte keys - 675.14 cycles/hash
+Small key speed test - 17-byte keys - 675.29 cycles/hash
+Small key speed test - 18-byte keys - 675.77 cycles/hash
+Small key speed test - 19-byte keys - 675.37 cycles/hash
+Small key speed test - 20-byte keys - 674.88 cycles/hash
+Small key speed test - 21-byte keys - 673.26 cycles/hash
+Small key speed test - 22-byte keys - 671.88 cycles/hash
+Small key speed test - 23-byte keys - 677.26 cycles/hash
+Small key speed test - 24-byte keys - 668.64 cycles/hash
+Small key speed test - 25-byte keys - 663.38 cycles/hash
+Small key speed test - 26-byte keys - 662.44 cycles/hash
+Small key speed test - 27-byte keys - 662.08 cycles/hash
+Small key speed test - 28-byte keys - 661.88 cycles/hash
+Small key speed test - 29-byte keys - 663.03 cycles/hash
+Small key speed test - 30-byte keys - 661.95 cycles/hash
+Small key speed test - 31-byte keys - 661.95 cycles/hash
+Small key speed test - 32-byte keys - 664.95 cycles/hash
+Average 669.594 cycles/hash
+Average, weighted by key length freq. 672.997 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 674.476 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1058.351 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 981.831 cycles/op (9.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 897.787 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 856.339 cycles/op (5.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 142.046462 seconds
--- Testing md5_64 "MD5, bits 32-95" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.123 bytes/cycle - 350.95 MiB/sec @ 3 ghz
-Alignment 6 - 0.123 bytes/cycle - 350.91 MiB/sec @ 3 ghz
-Alignment 5 - 0.123 bytes/cycle - 351.33 MiB/sec @ 3 ghz
-Alignment 4 - 0.122 bytes/cycle - 350.22 MiB/sec @ 3 ghz
-Alignment 3 - 0.123 bytes/cycle - 351.24 MiB/sec @ 3 ghz
-Alignment 2 - 0.123 bytes/cycle - 351.25 MiB/sec @ 3 ghz
-Alignment 1 - 0.123 bytes/cycle - 350.95 MiB/sec @ 3 ghz
-Alignment 0 - 0.123 bytes/cycle - 351.21 MiB/sec @ 3 ghz
-Average - 0.123 bytes/cycle - 351.01 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 636.90 cycles/hash
-Small key speed test - 2-byte keys - 641.83 cycles/hash
-Small key speed test - 3-byte keys - 641.69 cycles/hash
-Small key speed test - 4-byte keys - 641.65 cycles/hash
-Small key speed test - 5-byte keys - 641.66 cycles/hash
-Small key speed test - 6-byte keys - 641.90 cycles/hash
-Small key speed test - 7-byte keys - 641.68 cycles/hash
-Small key speed test - 8-byte keys - 660.01 cycles/hash
-Small key speed test - 9-byte keys - 658.73 cycles/hash
-Small key speed test - 10-byte keys - 658.22 cycles/hash
-Small key speed test - 11-byte keys - 657.95 cycles/hash
-Small key speed test - 12-byte keys - 659.11 cycles/hash
-Small key speed test - 13-byte keys - 658.51 cycles/hash
-Small key speed test - 14-byte keys - 657.98 cycles/hash
-Small key speed test - 15-byte keys - 658.57 cycles/hash
-Small key speed test - 16-byte keys - 662.70 cycles/hash
-Small key speed test - 17-byte keys - 662.89 cycles/hash
-Small key speed test - 18-byte keys - 662.81 cycles/hash
-Small key speed test - 19-byte keys - 664.06 cycles/hash
-Small key speed test - 20-byte keys - 662.91 cycles/hash
-Small key speed test - 21-byte keys - 662.98 cycles/hash
-Small key speed test - 22-byte keys - 663.70 cycles/hash
-Small key speed test - 23-byte keys - 662.77 cycles/hash
-Small key speed test - 24-byte keys - 662.54 cycles/hash
-Small key speed test - 25-byte keys - 661.27 cycles/hash
-Small key speed test - 26-byte keys - 662.05 cycles/hash
-Small key speed test - 27-byte keys - 662.53 cycles/hash
-Small key speed test - 28-byte keys - 661.38 cycles/hash
-Small key speed test - 29-byte keys - 661.30 cycles/hash
-Small key speed test - 30-byte keys - 661.74 cycles/hash
-Small key speed test - 31-byte keys - 662.92 cycles/hash
-Average 656.675 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1173.533 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1037.057 cycles/op (14.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 961.098 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 897.431 cycles/op (11.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 132.497319 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x1cfe5656824 - 0x1cfe56567b8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.123 bytes/cycle - 351.71 MiB/sec @ 3 ghz
+Alignment 6 - 0.124 bytes/cycle - 354.60 MiB/sec @ 3 ghz
+Alignment 5 - 0.127 bytes/cycle - 362.52 MiB/sec @ 3 ghz
+Alignment 4 - 0.127 bytes/cycle - 362.58 MiB/sec @ 3 ghz
+Alignment 3 - 0.127 bytes/cycle - 362.53 MiB/sec @ 3 ghz
+Alignment 2 - 0.127 bytes/cycle - 362.51 MiB/sec @ 3 ghz
+Alignment 1 - 0.127 bytes/cycle - 362.58 MiB/sec @ 3 ghz
+Alignment 0 - 0.127 bytes/cycle - 362.56 MiB/sec @ 3 ghz
+Average - 0.126 bytes/cycle - 360.20 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 616.87 cycles/hash
+Small key speed test - 2-byte keys - 620.24 cycles/hash
+Small key speed test - 3-byte keys - 619.30 cycles/hash
+Small key speed test - 4-byte keys - 618.92 cycles/hash
+Small key speed test - 5-byte keys - 618.89 cycles/hash
+Small key speed test - 6-byte keys - 619.30 cycles/hash
+Small key speed test - 7-byte keys - 618.89 cycles/hash
+Small key speed test - 8-byte keys - 636.08 cycles/hash
+Small key speed test - 9-byte keys - 634.18 cycles/hash
+Small key speed test - 10-byte keys - 634.03 cycles/hash
+Small key speed test - 11-byte keys - 633.98 cycles/hash
+Small key speed test - 12-byte keys - 633.97 cycles/hash
+Small key speed test - 13-byte keys - 633.92 cycles/hash
+Small key speed test - 14-byte keys - 634.10 cycles/hash
+Small key speed test - 15-byte keys - 663.34 cycles/hash
+Small key speed test - 16-byte keys - 639.85 cycles/hash
+Small key speed test - 17-byte keys - 639.83 cycles/hash
+Small key speed test - 18-byte keys - 639.79 cycles/hash
+Small key speed test - 19-byte keys - 639.59 cycles/hash
+Small key speed test - 20-byte keys - 639.64 cycles/hash
+Small key speed test - 21-byte keys - 639.59 cycles/hash
+Small key speed test - 22-byte keys - 638.00 cycles/hash
+Small key speed test - 23-byte keys - 639.71 cycles/hash
+Small key speed test - 24-byte keys - 670.33 cycles/hash
+Small key speed test - 25-byte keys - 657.00 cycles/hash
+Small key speed test - 26-byte keys - 657.00 cycles/hash
+Small key speed test - 27-byte keys - 658.37 cycles/hash
+Small key speed test - 28-byte keys - 658.23 cycles/hash
+Small key speed test - 29-byte keys - 659.60 cycles/hash
+Small key speed test - 30-byte keys - 658.47 cycles/hash
+Small key speed test - 31-byte keys - 659.57 cycles/hash
+Small key speed test - 32-byte keys - 661.47 cycles/hash
+Average 640.377 cycles/hash
+Average, weighted by key length freq. 641.356 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 636.497 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1096.490 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 988.115 cycles/op (6.0 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 921.233 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 869.549 cycles/op (6.3 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 134.925152 seconds
--- Testing md5_32 "MD5, bits 32-63" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.123 bytes/cycle - 350.49 MiB/sec @ 3 ghz
-Alignment 6 - 0.123 bytes/cycle - 351.34 MiB/sec @ 3 ghz
-Alignment 5 - 0.123 bytes/cycle - 351.18 MiB/sec @ 3 ghz
-Alignment 4 - 0.123 bytes/cycle - 351.02 MiB/sec @ 3 ghz
-Alignment 3 - 0.123 bytes/cycle - 351.04 MiB/sec @ 3 ghz
-Alignment 2 - 0.121 bytes/cycle - 347.28 MiB/sec @ 3 ghz
-Alignment 1 - 0.123 bytes/cycle - 350.92 MiB/sec @ 3 ghz
-Alignment 0 - 0.123 bytes/cycle - 350.94 MiB/sec @ 3 ghz
-Average - 0.123 bytes/cycle - 350.53 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 627.35 cycles/hash
-Small key speed test - 2-byte keys - 627.15 cycles/hash
-Small key speed test - 3-byte keys - 627.31 cycles/hash
-Small key speed test - 4-byte keys - 626.61 cycles/hash
-Small key speed test - 5-byte keys - 626.09 cycles/hash
-Small key speed test - 6-byte keys - 626.04 cycles/hash
-Small key speed test - 7-byte keys - 627.01 cycles/hash
-Small key speed test - 8-byte keys - 649.01 cycles/hash
-Small key speed test - 9-byte keys - 650.23 cycles/hash
-Small key speed test - 10-byte keys - 650.02 cycles/hash
-Small key speed test - 11-byte keys - 650.30 cycles/hash
-Small key speed test - 12-byte keys - 649.78 cycles/hash
-Small key speed test - 13-byte keys - 650.18 cycles/hash
-Small key speed test - 14-byte keys - 648.83 cycles/hash
-Small key speed test - 15-byte keys - 649.91 cycles/hash
-Small key speed test - 16-byte keys - 648.33 cycles/hash
-Small key speed test - 17-byte keys - 647.22 cycles/hash
-Small key speed test - 18-byte keys - 649.16 cycles/hash
-Small key speed test - 19-byte keys - 648.23 cycles/hash
-Small key speed test - 20-byte keys - 648.28 cycles/hash
-Small key speed test - 21-byte keys - 647.79 cycles/hash
-Small key speed test - 22-byte keys - 649.68 cycles/hash
-Small key speed test - 23-byte keys - 649.56 cycles/hash
-Small key speed test - 24-byte keys - 649.43 cycles/hash
-Small key speed test - 25-byte keys - 650.08 cycles/hash
-Small key speed test - 26-byte keys - 650.34 cycles/hash
-Small key speed test - 27-byte keys - 650.42 cycles/hash
-Small key speed test - 28-byte keys - 649.73 cycles/hash
-Small key speed test - 29-byte keys - 650.85 cycles/hash
-Small key speed test - 30-byte keys - 649.82 cycles/hash
-Small key speed test - 31-byte keys - 648.95 cycles/hash
-Average 644.312 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1144.683 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1010.168 cycles/op (22.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 946.178 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 894.116 cycles/op (10.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 130.495913 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x240faa004fc - 0x240faa004b4). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.127 bytes/cycle - 364.52 MiB/sec @ 3 ghz
+Alignment 6 - 0.127 bytes/cycle - 364.54 MiB/sec @ 3 ghz
+Alignment 5 - 0.127 bytes/cycle - 364.53 MiB/sec @ 3 ghz
+Alignment 4 - 0.127 bytes/cycle - 364.53 MiB/sec @ 3 ghz
+Alignment 3 - 0.127 bytes/cycle - 364.49 MiB/sec @ 3 ghz
+Alignment 2 - 0.127 bytes/cycle - 364.50 MiB/sec @ 3 ghz
+Alignment 1 - 0.127 bytes/cycle - 364.57 MiB/sec @ 3 ghz
+Alignment 0 - 0.113 bytes/cycle - 323.77 MiB/sec @ 3 ghz
+Average - 0.126 bytes/cycle - 359.43 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 625.14 cycles/hash
+Small key speed test - 2-byte keys - 602.67 cycles/hash
+Small key speed test - 3-byte keys - 603.47 cycles/hash
+Small key speed test - 4-byte keys - 621.72 cycles/hash
+Small key speed test - 5-byte keys - 625.73 cycles/hash
+Small key speed test - 6-byte keys - 625.44 cycles/hash
+Small key speed test - 7-byte keys - 624.28 cycles/hash
+Small key speed test - 8-byte keys - 642.00 cycles/hash
+Small key speed test - 9-byte keys - 642.00 cycles/hash
+Small key speed test - 10-byte keys - 642.44 cycles/hash
+Small key speed test - 11-byte keys - 642.19 cycles/hash
+Small key speed test - 12-byte keys - 642.00 cycles/hash
+Small key speed test - 13-byte keys - 643.04 cycles/hash
+Small key speed test - 14-byte keys - 642.17 cycles/hash
+Small key speed test - 15-byte keys - 642.00 cycles/hash
+Small key speed test - 16-byte keys - 643.96 cycles/hash
+Small key speed test - 17-byte keys - 644.97 cycles/hash
+Small key speed test - 18-byte keys - 645.15 cycles/hash
+Small key speed test - 19-byte keys - 645.57 cycles/hash
+Small key speed test - 20-byte keys - 645.44 cycles/hash
+Small key speed test - 21-byte keys - 644.99 cycles/hash
+Small key speed test - 22-byte keys - 644.92 cycles/hash
+Small key speed test - 23-byte keys - 645.25 cycles/hash
+Small key speed test - 24-byte keys - 646.95 cycles/hash
+Small key speed test - 25-byte keys - 646.92 cycles/hash
+Small key speed test - 26-byte keys - 646.47 cycles/hash
+Small key speed test - 27-byte keys - 646.99 cycles/hash
+Small key speed test - 28-byte keys - 646.60 cycles/hash
+Small key speed test - 29-byte keys - 645.97 cycles/hash
+Small key speed test - 30-byte keys - 645.94 cycles/hash
+Small key speed test - 31-byte keys - 645.99 cycles/hash
+Small key speed test - 32-byte keys - 647.02 cycles/hash
+Average 638.919 cycles/hash
+Average, weighted by key length freq. 643.482 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 641.677 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1059.148 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 964.303 cycles/op (5.9 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 916.260 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 865.208 cycles/op (6.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 134.776957 seconds
--- Testing sha1-160 "SHA1" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.202 bytes/cycle - 577.93 MiB/sec @ 3 ghz
-Alignment 6 - 0.202 bytes/cycle - 577.79 MiB/sec @ 3 ghz
-Alignment 5 - 0.202 bytes/cycle - 577.45 MiB/sec @ 3 ghz
-Alignment 4 - 0.202 bytes/cycle - 577.91 MiB/sec @ 3 ghz
-Alignment 3 - 0.202 bytes/cycle - 577.18 MiB/sec @ 3 ghz
-Alignment 2 - 0.202 bytes/cycle - 576.93 MiB/sec @ 3 ghz
-Alignment 1 - 0.202 bytes/cycle - 577.24 MiB/sec @ 3 ghz
-Alignment 0 - 0.201 bytes/cycle - 575.02 MiB/sec @ 3 ghz
-Average - 0.202 bytes/cycle - 577.18 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 944.03 cycles/hash
-Small key speed test - 2-byte keys - 937.12 cycles/hash
-Small key speed test - 3-byte keys - 923.81 cycles/hash
-Small key speed test - 4-byte keys - 907.72 cycles/hash
-Small key speed test - 5-byte keys - 909.23 cycles/hash
-Small key speed test - 6-byte keys - 901.40 cycles/hash
-Small key speed test - 7-byte keys - 891.49 cycles/hash
-Small key speed test - 8-byte keys - 879.96 cycles/hash
-Small key speed test - 9-byte keys - 872.35 cycles/hash
-Small key speed test - 10-byte keys - 864.73 cycles/hash
-Small key speed test - 11-byte keys - 855.17 cycles/hash
-Small key speed test - 12-byte keys - 848.65 cycles/hash
-Small key speed test - 13-byte keys - 842.56 cycles/hash
-Small key speed test - 14-byte keys - 835.61 cycles/hash
-Small key speed test - 15-byte keys - 827.65 cycles/hash
-Small key speed test - 16-byte keys - 817.40 cycles/hash
-Small key speed test - 17-byte keys - 806.81 cycles/hash
-Small key speed test - 18-byte keys - 799.12 cycles/hash
-Small key speed test - 19-byte keys - 789.82 cycles/hash
-Small key speed test - 20-byte keys - 781.31 cycles/hash
-Small key speed test - 21-byte keys - 774.23 cycles/hash
-Small key speed test - 22-byte keys - 768.32 cycles/hash
-Small key speed test - 23-byte keys - 760.98 cycles/hash
-Small key speed test - 24-byte keys - 749.90 cycles/hash
-Small key speed test - 25-byte keys - 743.16 cycles/hash
-Small key speed test - 26-byte keys - 733.75 cycles/hash
-Small key speed test - 27-byte keys - 725.63 cycles/hash
-Small key speed test - 28-byte keys - 718.25 cycles/hash
-Small key speed test - 29-byte keys - 712.48 cycles/hash
-Small key speed test - 30-byte keys - 703.83 cycles/hash
-Small key speed test - 31-byte keys - 695.98 cycles/hash
-Average 816.854 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1349.626 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1242.691 cycles/op (11.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1173.474 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1139.299 cycles/op (15.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 154.129780 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x2b1ec8b2f44 - 0x2b1ec8b2efc). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.204 bytes/cycle - 583.39 MiB/sec @ 3 ghz
+Alignment 6 - 0.204 bytes/cycle - 583.45 MiB/sec @ 3 ghz
+Alignment 5 - 0.204 bytes/cycle - 583.42 MiB/sec @ 3 ghz
+Alignment 4 - 0.204 bytes/cycle - 583.48 MiB/sec @ 3 ghz
+Alignment 3 - 0.204 bytes/cycle - 583.47 MiB/sec @ 3 ghz
+Alignment 2 - 0.204 bytes/cycle - 583.32 MiB/sec @ 3 ghz
+Alignment 1 - 0.204 bytes/cycle - 583.43 MiB/sec @ 3 ghz
+Alignment 0 - 0.204 bytes/cycle - 583.44 MiB/sec @ 3 ghz
+Average - 0.204 bytes/cycle - 583.43 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 915.42 cycles/hash
+Small key speed test - 2-byte keys - 917.32 cycles/hash
+Small key speed test - 3-byte keys - 904.15 cycles/hash
+Small key speed test - 4-byte keys - 894.69 cycles/hash
+Small key speed test - 5-byte keys - 882.57 cycles/hash
+Small key speed test - 6-byte keys - 877.78 cycles/hash
+Small key speed test - 7-byte keys - 874.05 cycles/hash
+Small key speed test - 8-byte keys - 864.55 cycles/hash
+Small key speed test - 9-byte keys - 856.99 cycles/hash
+Small key speed test - 10-byte keys - 856.18 cycles/hash
+Small key speed test - 11-byte keys - 848.20 cycles/hash
+Small key speed test - 12-byte keys - 834.46 cycles/hash
+Small key speed test - 13-byte keys - 832.98 cycles/hash
+Small key speed test - 14-byte keys - 824.68 cycles/hash
+Small key speed test - 15-byte keys - 818.50 cycles/hash
+Small key speed test - 16-byte keys - 812.35 cycles/hash
+Small key speed test - 17-byte keys - 810.77 cycles/hash
+Small key speed test - 18-byte keys - 793.69 cycles/hash
+Small key speed test - 19-byte keys - 792.87 cycles/hash
+Small key speed test - 20-byte keys - 779.07 cycles/hash
+Small key speed test - 21-byte keys - 773.94 cycles/hash
+Small key speed test - 22-byte keys - 764.95 cycles/hash
+Small key speed test - 23-byte keys - 757.66 cycles/hash
+Small key speed test - 24-byte keys - 749.60 cycles/hash
+Small key speed test - 25-byte keys - 739.55 cycles/hash
+Small key speed test - 26-byte keys - 732.02 cycles/hash
+Small key speed test - 27-byte keys - 724.05 cycles/hash
+Small key speed test - 28-byte keys - 714.92 cycles/hash
+Small key speed test - 29-byte keys - 711.23 cycles/hash
+Small key speed test - 30-byte keys - 705.20 cycles/hash
+Small key speed test - 31-byte keys - 692.89 cycles/hash
+Small key speed test - 32-byte keys - 682.92 cycles/hash
+Average 804.381 cycles/hash
+Average, weighted by key length freq. 806.574 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 835.749 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1275.702 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1194.269 cycles/op (6.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1139.194 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1073.457 cycles/op (5.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 158.618740 seconds
--- Testing sha1_32 "SHA1, low 32 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.199 bytes/cycle - 567.94 MiB/sec @ 3 ghz
-Alignment 6 - 0.198 bytes/cycle - 567.19 MiB/sec @ 3 ghz
-Alignment 5 - 0.198 bytes/cycle - 567.18 MiB/sec @ 3 ghz
-Alignment 4 - 0.198 bytes/cycle - 567.18 MiB/sec @ 3 ghz
-Alignment 3 - 0.198 bytes/cycle - 566.85 MiB/sec @ 3 ghz
-Alignment 2 - 0.198 bytes/cycle - 567.84 MiB/sec @ 3 ghz
-Alignment 1 - 0.199 bytes/cycle - 568.55 MiB/sec @ 3 ghz
-Alignment 0 - 0.198 bytes/cycle - 566.09 MiB/sec @ 3 ghz
-Average - 0.198 bytes/cycle - 567.35 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 886.74 cycles/hash
-Small key speed test - 2-byte keys - 864.46 cycles/hash
-Small key speed test - 3-byte keys - 855.88 cycles/hash
-Small key speed test - 4-byte keys - 843.44 cycles/hash
-Small key speed test - 5-byte keys - 833.21 cycles/hash
-Small key speed test - 6-byte keys - 824.74 cycles/hash
-Small key speed test - 7-byte keys - 818.22 cycles/hash
-Small key speed test - 8-byte keys - 826.54 cycles/hash
-Small key speed test - 9-byte keys - 817.41 cycles/hash
-Small key speed test - 10-byte keys - 811.79 cycles/hash
-Small key speed test - 11-byte keys - 804.31 cycles/hash
-Small key speed test - 12-byte keys - 795.70 cycles/hash
-Small key speed test - 13-byte keys - 781.30 cycles/hash
-Small key speed test - 14-byte keys - 770.06 cycles/hash
-Small key speed test - 15-byte keys - 762.68 cycles/hash
-Small key speed test - 16-byte keys - 751.89 cycles/hash
-Small key speed test - 17-byte keys - 738.55 cycles/hash
-Small key speed test - 18-byte keys - 730.16 cycles/hash
-Small key speed test - 19-byte keys - 722.59 cycles/hash
-Small key speed test - 20-byte keys - 722.55 cycles/hash
-Small key speed test - 21-byte keys - 729.72 cycles/hash
-Small key speed test - 22-byte keys - 721.24 cycles/hash
-Small key speed test - 23-byte keys - 711.08 cycles/hash
-Small key speed test - 24-byte keys - 686.87 cycles/hash
-Small key speed test - 25-byte keys - 695.00 cycles/hash
-Small key speed test - 26-byte keys - 686.99 cycles/hash
-Small key speed test - 27-byte keys - 681.67 cycles/hash
-Small key speed test - 28-byte keys - 655.70 cycles/hash
-Small key speed test - 29-byte keys - 662.52 cycles/hash
-Small key speed test - 30-byte keys - 657.42 cycles/hash
-Small key speed test - 31-byte keys - 649.32 cycles/hash
-Average 758.056 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1307.181 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1205.346 cycles/op (17.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1120.337 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1096.489 cycles/op (21.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 144.009929 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x336d8fbdda4 - 0x336d8fbdd38). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.208 bytes/cycle - 594.55 MiB/sec @ 3 ghz
+Alignment 6 - 0.208 bytes/cycle - 594.62 MiB/sec @ 3 ghz
+Alignment 5 - 0.208 bytes/cycle - 594.75 MiB/sec @ 3 ghz
+Alignment 4 - 0.208 bytes/cycle - 594.81 MiB/sec @ 3 ghz
+Alignment 3 - 0.208 bytes/cycle - 594.70 MiB/sec @ 3 ghz
+Alignment 2 - 0.208 bytes/cycle - 594.70 MiB/sec @ 3 ghz
+Alignment 1 - 0.208 bytes/cycle - 594.78 MiB/sec @ 3 ghz
+Alignment 0 - 0.171 bytes/cycle - 489.60 MiB/sec @ 3 ghz
+Average - 0.203 bytes/cycle - 581.56 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 836.13 cycles/hash
+Small key speed test - 2-byte keys - 830.80 cycles/hash
+Small key speed test - 3-byte keys - 873.68 cycles/hash
+Small key speed test - 4-byte keys - 809.74 cycles/hash
+Small key speed test - 5-byte keys - 801.13 cycles/hash
+Small key speed test - 6-byte keys - 793.77 cycles/hash
+Small key speed test - 7-byte keys - 785.40 cycles/hash
+Small key speed test - 8-byte keys - 776.11 cycles/hash
+Small key speed test - 9-byte keys - 769.33 cycles/hash
+Small key speed test - 10-byte keys - 763.35 cycles/hash
+Small key speed test - 11-byte keys - 753.94 cycles/hash
+Small key speed test - 12-byte keys - 746.43 cycles/hash
+Small key speed test - 13-byte keys - 738.49 cycles/hash
+Small key speed test - 14-byte keys - 732.62 cycles/hash
+Small key speed test - 15-byte keys - 722.36 cycles/hash
+Small key speed test - 16-byte keys - 711.57 cycles/hash
+Small key speed test - 17-byte keys - 702.80 cycles/hash
+Small key speed test - 18-byte keys - 717.95 cycles/hash
+Small key speed test - 19-byte keys - 709.45 cycles/hash
+Small key speed test - 20-byte keys - 702.65 cycles/hash
+Small key speed test - 21-byte keys - 721.04 cycles/hash
+Small key speed test - 22-byte keys - 712.63 cycles/hash
+Small key speed test - 23-byte keys - 700.15 cycles/hash
+Small key speed test - 24-byte keys - 670.31 cycles/hash
+Small key speed test - 25-byte keys - 687.68 cycles/hash
+Small key speed test - 26-byte keys - 681.78 cycles/hash
+Small key speed test - 27-byte keys - 654.87 cycles/hash
+Small key speed test - 28-byte keys - 639.41 cycles/hash
+Small key speed test - 29-byte keys - 658.88 cycles/hash
+Small key speed test - 30-byte keys - 645.84 cycles/hash
+Small key speed test - 31-byte keys - 622.70 cycles/hash
+Small key speed test - 32-byte keys - 610.39 cycles/hash
+Average 727.605 cycles/hash
+Average, weighted by key length freq. 722.154 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 742.172 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1198.367 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1123.985 cycles/op (7.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1077.004 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1006.743 cycles/op (14.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 145.363814 seconds
--- Testing sha1_64 "SHA1, low 64 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.201 bytes/cycle - 575.77 MiB/sec @ 3 ghz
-Alignment 6 - 0.201 bytes/cycle - 575.20 MiB/sec @ 3 ghz
-Alignment 5 - 0.201 bytes/cycle - 575.18 MiB/sec @ 3 ghz
-Alignment 4 - 0.201 bytes/cycle - 575.27 MiB/sec @ 3 ghz
-Alignment 3 - 0.201 bytes/cycle - 575.90 MiB/sec @ 3 ghz
-Alignment 2 - 0.201 bytes/cycle - 576.00 MiB/sec @ 3 ghz
-Alignment 1 - 0.202 bytes/cycle - 577.46 MiB/sec @ 3 ghz
-Alignment 0 - 0.201 bytes/cycle - 574.69 MiB/sec @ 3 ghz
-Average - 0.201 bytes/cycle - 575.68 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 878.97 cycles/hash
-Small key speed test - 2-byte keys - 876.38 cycles/hash
-Small key speed test - 3-byte keys - 867.72 cycles/hash
-Small key speed test - 4-byte keys - 861.80 cycles/hash
-Small key speed test - 5-byte keys - 852.78 cycles/hash
-Small key speed test - 6-byte keys - 845.81 cycles/hash
-Small key speed test - 7-byte keys - 839.72 cycles/hash
-Small key speed test - 8-byte keys - 829.62 cycles/hash
-Small key speed test - 9-byte keys - 824.83 cycles/hash
-Small key speed test - 10-byte keys - 813.19 cycles/hash
-Small key speed test - 11-byte keys - 806.63 cycles/hash
-Small key speed test - 12-byte keys - 797.46 cycles/hash
-Small key speed test - 13-byte keys - 788.78 cycles/hash
-Small key speed test - 14-byte keys - 782.86 cycles/hash
-Small key speed test - 15-byte keys - 775.04 cycles/hash
-Small key speed test - 16-byte keys - 759.06 cycles/hash
-Small key speed test - 17-byte keys - 750.06 cycles/hash
-Small key speed test - 18-byte keys - 741.68 cycles/hash
-Small key speed test - 19-byte keys - 733.92 cycles/hash
-Small key speed test - 20-byte keys - 726.04 cycles/hash
-Small key speed test - 21-byte keys - 730.03 cycles/hash
-Small key speed test - 22-byte keys - 721.26 cycles/hash
-Small key speed test - 23-byte keys - 712.79 cycles/hash
-Small key speed test - 24-byte keys - 704.68 cycles/hash
-Small key speed test - 25-byte keys - 696.82 cycles/hash
-Small key speed test - 26-byte keys - 686.11 cycles/hash
-Small key speed test - 27-byte keys - 681.16 cycles/hash
-Small key speed test - 28-byte keys - 668.26 cycles/hash
-Small key speed test - 29-byte keys - 659.51 cycles/hash
-Small key speed test - 30-byte keys - 653.24 cycles/hash
-Small key speed test - 31-byte keys - 645.13 cycles/hash
-Average 764.881 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1322.226 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1228.166 cycles/op (33.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1159.211 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1079.914 cycles/op (15.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 145.006019 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x3b0ac769410 - 0x3b0ac7693c8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.201 bytes/cycle - 576.33 MiB/sec @ 3 ghz
+Alignment 6 - 0.195 bytes/cycle - 559.29 MiB/sec @ 3 ghz
+Alignment 5 - 0.201 bytes/cycle - 576.19 MiB/sec @ 3 ghz
+Alignment 4 - 0.201 bytes/cycle - 576.20 MiB/sec @ 3 ghz
+Alignment 3 - 0.201 bytes/cycle - 576.21 MiB/sec @ 3 ghz
+Alignment 2 - 0.201 bytes/cycle - 576.15 MiB/sec @ 3 ghz
+Alignment 1 - 0.201 bytes/cycle - 576.21 MiB/sec @ 3 ghz
+Alignment 0 - 0.201 bytes/cycle - 576.09 MiB/sec @ 3 ghz
+Average - 0.201 bytes/cycle - 574.08 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 896.17 cycles/hash
+Small key speed test - 2-byte keys - 879.70 cycles/hash
+Small key speed test - 3-byte keys - 868.37 cycles/hash
+Small key speed test - 4-byte keys - 866.84 cycles/hash
+Small key speed test - 5-byte keys - 849.28 cycles/hash
+Small key speed test - 6-byte keys - 841.59 cycles/hash
+Small key speed test - 7-byte keys - 828.13 cycles/hash
+Small key speed test - 8-byte keys - 831.01 cycles/hash
+Small key speed test - 9-byte keys - 828.85 cycles/hash
+Small key speed test - 10-byte keys - 821.24 cycles/hash
+Small key speed test - 11-byte keys - 801.68 cycles/hash
+Small key speed test - 12-byte keys - 791.07 cycles/hash
+Small key speed test - 13-byte keys - 799.60 cycles/hash
+Small key speed test - 14-byte keys - 786.29 cycles/hash
+Small key speed test - 15-byte keys - 780.79 cycles/hash
+Small key speed test - 16-byte keys - 770.48 cycles/hash
+Small key speed test - 17-byte keys - 761.51 cycles/hash
+Small key speed test - 18-byte keys - 750.45 cycles/hash
+Small key speed test - 19-byte keys - 744.70 cycles/hash
+Small key speed test - 20-byte keys - 737.64 cycles/hash
+Small key speed test - 21-byte keys - 729.30 cycles/hash
+Small key speed test - 22-byte keys - 718.55 cycles/hash
+Small key speed test - 23-byte keys - 712.86 cycles/hash
+Small key speed test - 24-byte keys - 707.46 cycles/hash
+Small key speed test - 25-byte keys - 697.09 cycles/hash
+Small key speed test - 26-byte keys - 686.47 cycles/hash
+Small key speed test - 27-byte keys - 679.63 cycles/hash
+Small key speed test - 28-byte keys - 672.62 cycles/hash
+Small key speed test - 29-byte keys - 663.70 cycles/hash
+Small key speed test - 30-byte keys - 655.05 cycles/hash
+Small key speed test - 31-byte keys - 647.40 cycles/hash
+Small key speed test - 32-byte keys - 637.76 cycles/hash
+Average 763.852 cycles/hash
+Average, weighted by key length freq. 765.105 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 798.305 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1224.057 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1146.219 cycles/op (6.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1078.833 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1023.044 cycles/op (7.7 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 151.443698 seconds
--- Testing sha2-224 "SHA2-224" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.080 bytes/cycle - 228.58 MiB/sec @ 3 ghz
-Alignment 6 - 0.080 bytes/cycle - 229.49 MiB/sec @ 3 ghz
-Alignment 5 - 0.080 bytes/cycle - 229.27 MiB/sec @ 3 ghz
-Alignment 4 - 0.080 bytes/cycle - 229.18 MiB/sec @ 3 ghz
-Alignment 3 - 0.080 bytes/cycle - 229.27 MiB/sec @ 3 ghz
-Alignment 2 - 0.080 bytes/cycle - 229.07 MiB/sec @ 3 ghz
-Alignment 1 - 0.080 bytes/cycle - 228.58 MiB/sec @ 3 ghz
-Alignment 0 - 0.080 bytes/cycle - 228.93 MiB/sec @ 3 ghz
-Average - 0.080 bytes/cycle - 229.05 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 981.25 cycles/hash
-Small key speed test - 2-byte keys - 967.42 cycles/hash
-Small key speed test - 3-byte keys - 966.71 cycles/hash
-Small key speed test - 4-byte keys - 965.66 cycles/hash
-Small key speed test - 5-byte keys - 967.84 cycles/hash
-Small key speed test - 6-byte keys - 966.71 cycles/hash
-Small key speed test - 7-byte keys - 962.28 cycles/hash
-Small key speed test - 8-byte keys - 961.37 cycles/hash
-Small key speed test - 9-byte keys - 960.16 cycles/hash
-Small key speed test - 10-byte keys - 958.88 cycles/hash
-Small key speed test - 11-byte keys - 959.61 cycles/hash
-Small key speed test - 12-byte keys - 957.36 cycles/hash
-Small key speed test - 13-byte keys - 956.51 cycles/hash
-Small key speed test - 14-byte keys - 952.77 cycles/hash
-Small key speed test - 15-byte keys - 949.85 cycles/hash
-Small key speed test - 16-byte keys - 950.37 cycles/hash
-Small key speed test - 17-byte keys - 950.31 cycles/hash
-Small key speed test - 18-byte keys - 940.32 cycles/hash
-Small key speed test - 19-byte keys - 931.26 cycles/hash
-Small key speed test - 20-byte keys - 934.60 cycles/hash
-Small key speed test - 21-byte keys - 921.95 cycles/hash
-Small key speed test - 22-byte keys - 919.06 cycles/hash
-Small key speed test - 23-byte keys - 915.64 cycles/hash
-Small key speed test - 24-byte keys - 914.42 cycles/hash
-Small key speed test - 25-byte keys - 914.44 cycles/hash
-Small key speed test - 26-byte keys - 911.06 cycles/hash
-Small key speed test - 27-byte keys - 909.39 cycles/hash
-Small key speed test - 28-byte keys - 910.96 cycles/hash
-Small key speed test - 29-byte keys - 911.07 cycles/hash
-Small key speed test - 30-byte keys - 906.62 cycles/hash
-Small key speed test - 31-byte keys - 904.70 cycles/hash
-Average 941.309 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1437.607 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1338.294 cycles/op (10.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1244.613 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1174.740 cycles/op (7.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 190.566384 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x42f95d79428 - 0x42f95d793e0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.082 bytes/cycle - 233.90 MiB/sec @ 3 ghz
+Alignment 6 - 0.082 bytes/cycle - 233.97 MiB/sec @ 3 ghz
+Alignment 5 - 0.082 bytes/cycle - 233.89 MiB/sec @ 3 ghz
+Alignment 4 - 0.082 bytes/cycle - 233.97 MiB/sec @ 3 ghz
+Alignment 3 - 0.082 bytes/cycle - 233.89 MiB/sec @ 3 ghz
+Alignment 2 - 0.082 bytes/cycle - 233.96 MiB/sec @ 3 ghz
+Alignment 1 - 0.082 bytes/cycle - 233.90 MiB/sec @ 3 ghz
+Alignment 0 - 0.082 bytes/cycle - 233.93 MiB/sec @ 3 ghz
+Average - 0.082 bytes/cycle - 233.93 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 945.40 cycles/hash
+Small key speed test - 2-byte keys - 933.96 cycles/hash
+Small key speed test - 3-byte keys - 933.73 cycles/hash
+Small key speed test - 4-byte keys - 938.28 cycles/hash
+Small key speed test - 5-byte keys - 937.94 cycles/hash
+Small key speed test - 6-byte keys - 935.40 cycles/hash
+Small key speed test - 7-byte keys - 933.81 cycles/hash
+Small key speed test - 8-byte keys - 929.98 cycles/hash
+Small key speed test - 9-byte keys - 932.13 cycles/hash
+Small key speed test - 10-byte keys - 928.40 cycles/hash
+Small key speed test - 11-byte keys - 926.57 cycles/hash
+Small key speed test - 12-byte keys - 925.59 cycles/hash
+Small key speed test - 13-byte keys - 927.44 cycles/hash
+Small key speed test - 14-byte keys - 926.41 cycles/hash
+Small key speed test - 15-byte keys - 906.99 cycles/hash
+Small key speed test - 16-byte keys - 911.74 cycles/hash
+Small key speed test - 17-byte keys - 910.16 cycles/hash
+Small key speed test - 18-byte keys - 917.32 cycles/hash
+Small key speed test - 19-byte keys - 916.17 cycles/hash
+Small key speed test - 20-byte keys - 916.25 cycles/hash
+Small key speed test - 21-byte keys - 916.46 cycles/hash
+Small key speed test - 22-byte keys - 917.59 cycles/hash
+Small key speed test - 23-byte keys - 919.98 cycles/hash
+Small key speed test - 24-byte keys - 910.52 cycles/hash
+Small key speed test - 25-byte keys - 891.45 cycles/hash
+Small key speed test - 26-byte keys - 886.49 cycles/hash
+Small key speed test - 27-byte keys - 885.11 cycles/hash
+Small key speed test - 28-byte keys - 880.83 cycles/hash
+Small key speed test - 29-byte keys - 873.80 cycles/hash
+Small key speed test - 30-byte keys - 871.78 cycles/hash
+Small key speed test - 31-byte keys - 869.50 cycles/hash
+Small key speed test - 32-byte keys - 865.14 cycles/hash
+Average 913.198 cycles/hash
+Average, weighted by key length freq. 916.214 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 922.025 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1366.161 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1274.272 cycles/op (6.0 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1190.174 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1138.442 cycles/op (5.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 192.514750 seconds
--- Testing sha2-224_64 "SHA2-224, low 64 bits" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.081 bytes/cycle - 231.64 MiB/sec @ 3 ghz
-Alignment 6 - 0.081 bytes/cycle - 231.98 MiB/sec @ 3 ghz
-Alignment 5 - 0.081 bytes/cycle - 231.47 MiB/sec @ 3 ghz
-Alignment 4 - 0.081 bytes/cycle - 231.70 MiB/sec @ 3 ghz
-Alignment 3 - 0.081 bytes/cycle - 231.50 MiB/sec @ 3 ghz
-Alignment 2 - 0.081 bytes/cycle - 231.47 MiB/sec @ 3 ghz
-Alignment 1 - 0.081 bytes/cycle - 232.06 MiB/sec @ 3 ghz
-Alignment 0 - 0.081 bytes/cycle - 231.14 MiB/sec @ 3 ghz
-Average - 0.081 bytes/cycle - 231.62 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 956.82 cycles/hash
-Small key speed test - 2-byte keys - 956.24 cycles/hash
-Small key speed test - 3-byte keys - 954.97 cycles/hash
-Small key speed test - 4-byte keys - 953.57 cycles/hash
-Small key speed test - 5-byte keys - 951.12 cycles/hash
-Small key speed test - 6-byte keys - 953.33 cycles/hash
-Small key speed test - 7-byte keys - 949.71 cycles/hash
-Small key speed test - 8-byte keys - 948.76 cycles/hash
-Small key speed test - 9-byte keys - 947.61 cycles/hash
-Small key speed test - 10-byte keys - 947.34 cycles/hash
-Small key speed test - 11-byte keys - 942.71 cycles/hash
-Small key speed test - 12-byte keys - 936.45 cycles/hash
-Small key speed test - 13-byte keys - 943.60 cycles/hash
-Small key speed test - 14-byte keys - 940.09 cycles/hash
-Small key speed test - 15-byte keys - 938.32 cycles/hash
-Small key speed test - 16-byte keys - 932.68 cycles/hash
-Small key speed test - 17-byte keys - 928.18 cycles/hash
-Small key speed test - 18-byte keys - 928.88 cycles/hash
-Small key speed test - 19-byte keys - 928.98 cycles/hash
-Small key speed test - 20-byte keys - 931.09 cycles/hash
-Small key speed test - 21-byte keys - 916.88 cycles/hash
-Small key speed test - 22-byte keys - 912.12 cycles/hash
-Small key speed test - 23-byte keys - 914.47 cycles/hash
-Small key speed test - 24-byte keys - 910.82 cycles/hash
-Small key speed test - 25-byte keys - 910.23 cycles/hash
-Small key speed test - 26-byte keys - 906.45 cycles/hash
-Small key speed test - 27-byte keys - 904.66 cycles/hash
-Small key speed test - 28-byte keys - 902.08 cycles/hash
-Small key speed test - 29-byte keys - 901.08 cycles/hash
-Small key speed test - 30-byte keys - 900.72 cycles/hash
-Small key speed test - 31-byte keys - 896.65 cycles/hash
-Average 930.536 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1453.404 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1345.063 cycles/op (19.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1285.325 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1177.041 cycles/op (15.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 188.262313 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x4d0e9ea75d4 - 0x4d0e9ea758c). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.081 bytes/cycle - 232.94 MiB/sec @ 3 ghz
+Alignment 6 - 0.081 bytes/cycle - 232.29 MiB/sec @ 3 ghz
+Alignment 5 - 0.081 bytes/cycle - 230.95 MiB/sec @ 3 ghz
+Alignment 4 - 0.081 bytes/cycle - 230.93 MiB/sec @ 3 ghz
+Alignment 3 - 0.081 bytes/cycle - 230.94 MiB/sec @ 3 ghz
+Alignment 2 - 0.081 bytes/cycle - 230.95 MiB/sec @ 3 ghz
+Alignment 1 - 0.081 bytes/cycle - 230.94 MiB/sec @ 3 ghz
+Alignment 0 - 0.081 bytes/cycle - 231.21 MiB/sec @ 3 ghz
+Average - 0.081 bytes/cycle - 231.39 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 949.14 cycles/hash
+Small key speed test - 2-byte keys - 944.93 cycles/hash
+Small key speed test - 3-byte keys - 944.15 cycles/hash
+Small key speed test - 4-byte keys - 941.51 cycles/hash
+Small key speed test - 5-byte keys - 939.03 cycles/hash
+Small key speed test - 6-byte keys - 939.08 cycles/hash
+Small key speed test - 7-byte keys - 939.50 cycles/hash
+Small key speed test - 8-byte keys - 939.72 cycles/hash
+Small key speed test - 9-byte keys - 938.39 cycles/hash
+Small key speed test - 10-byte keys - 935.91 cycles/hash
+Small key speed test - 11-byte keys - 937.55 cycles/hash
+Small key speed test - 12-byte keys - 937.91 cycles/hash
+Small key speed test - 13-byte keys - 934.94 cycles/hash
+Small key speed test - 14-byte keys - 926.97 cycles/hash
+Small key speed test - 15-byte keys - 918.32 cycles/hash
+Small key speed test - 16-byte keys - 915.94 cycles/hash
+Small key speed test - 17-byte keys - 923.87 cycles/hash
+Small key speed test - 18-byte keys - 929.01 cycles/hash
+Small key speed test - 19-byte keys - 927.95 cycles/hash
+Small key speed test - 20-byte keys - 926.38 cycles/hash
+Small key speed test - 21-byte keys - 928.98 cycles/hash
+Small key speed test - 22-byte keys - 914.70 cycles/hash
+Small key speed test - 23-byte keys - 912.86 cycles/hash
+Small key speed test - 24-byte keys - 895.31 cycles/hash
+Small key speed test - 25-byte keys - 896.68 cycles/hash
+Small key speed test - 26-byte keys - 894.89 cycles/hash
+Small key speed test - 27-byte keys - 891.26 cycles/hash
+Small key speed test - 28-byte keys - 884.50 cycles/hash
+Small key speed test - 29-byte keys - 883.60 cycles/hash
+Small key speed test - 30-byte keys - 882.41 cycles/hash
+Small key speed test - 31-byte keys - 880.89 cycles/hash
+Small key speed test - 32-byte keys - 875.94 cycles/hash
+Average 919.756 cycles/hash
+Average, weighted by key length freq. 923.629 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 928.091 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1375.937 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1292.898 cycles/op (5.6 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1212.289 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1155.331 cycles/op (4.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 194.084550 seconds
--- Testing sha2-256 "SHA2-256" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.081 bytes/cycle - 232.05 MiB/sec @ 3 ghz
-Alignment 6 - 0.081 bytes/cycle - 231.93 MiB/sec @ 3 ghz
-Alignment 5 - 0.081 bytes/cycle - 231.81 MiB/sec @ 3 ghz
-Alignment 4 - 0.081 bytes/cycle - 231.26 MiB/sec @ 3 ghz
-Alignment 3 - 0.081 bytes/cycle - 231.54 MiB/sec @ 3 ghz
-Alignment 2 - 0.081 bytes/cycle - 231.96 MiB/sec @ 3 ghz
-Alignment 1 - 0.081 bytes/cycle - 231.78 MiB/sec @ 3 ghz
-Alignment 0 - 0.081 bytes/cycle - 231.27 MiB/sec @ 3 ghz
-Average - 0.081 bytes/cycle - 231.70 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 944.91 cycles/hash
-Small key speed test - 2-byte keys - 944.60 cycles/hash
-Small key speed test - 3-byte keys - 942.87 cycles/hash
-Small key speed test - 4-byte keys - 940.04 cycles/hash
-Small key speed test - 5-byte keys - 941.11 cycles/hash
-Small key speed test - 6-byte keys - 939.62 cycles/hash
-Small key speed test - 7-byte keys - 937.60 cycles/hash
-Small key speed test - 8-byte keys - 937.87 cycles/hash
-Small key speed test - 9-byte keys - 936.65 cycles/hash
-Small key speed test - 10-byte keys - 932.07 cycles/hash
-Small key speed test - 11-byte keys - 929.57 cycles/hash
-Small key speed test - 12-byte keys - 928.07 cycles/hash
-Small key speed test - 13-byte keys - 927.27 cycles/hash
-Small key speed test - 14-byte keys - 928.02 cycles/hash
-Small key speed test - 15-byte keys - 923.23 cycles/hash
-Small key speed test - 16-byte keys - 924.23 cycles/hash
-Small key speed test - 17-byte keys - 924.33 cycles/hash
-Small key speed test - 18-byte keys - 952.08 cycles/hash
-Small key speed test - 19-byte keys - 919.45 cycles/hash
-Small key speed test - 20-byte keys - 910.45 cycles/hash
-Small key speed test - 21-byte keys - 913.56 cycles/hash
-Small key speed test - 22-byte keys - 912.62 cycles/hash
-Small key speed test - 23-byte keys - 910.87 cycles/hash
-Small key speed test - 24-byte keys - 897.15 cycles/hash
-Small key speed test - 25-byte keys - 893.47 cycles/hash
-Small key speed test - 26-byte keys - 891.59 cycles/hash
-Small key speed test - 27-byte keys - 889.93 cycles/hash
-Small key speed test - 28-byte keys - 877.67 cycles/hash
-Small key speed test - 29-byte keys - 876.53 cycles/hash
-Small key speed test - 30-byte keys - 874.15 cycles/hash
-Small key speed test - 31-byte keys - 872.70 cycles/hash
-Average 918.526 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1418.261 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1318.821 cycles/op (9.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1241.135 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1159.544 cycles/op (10.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 186.285070 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x5738ecb4734 - 0x5738ecb46c8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.081 bytes/cycle - 232.62 MiB/sec @ 3 ghz
+Alignment 6 - 0.082 bytes/cycle - 235.03 MiB/sec @ 3 ghz
+Alignment 5 - 0.081 bytes/cycle - 230.87 MiB/sec @ 3 ghz
+Alignment 4 - 0.081 bytes/cycle - 230.87 MiB/sec @ 3 ghz
+Alignment 3 - 0.081 bytes/cycle - 230.84 MiB/sec @ 3 ghz
+Alignment 2 - 0.081 bytes/cycle - 230.89 MiB/sec @ 3 ghz
+Alignment 1 - 0.081 bytes/cycle - 230.92 MiB/sec @ 3 ghz
+Alignment 0 - 0.081 bytes/cycle - 231.18 MiB/sec @ 3 ghz
+Average - 0.081 bytes/cycle - 231.65 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 948.79 cycles/hash
+Small key speed test - 2-byte keys - 946.61 cycles/hash
+Small key speed test - 3-byte keys - 944.39 cycles/hash
+Small key speed test - 4-byte keys - 943.87 cycles/hash
+Small key speed test - 5-byte keys - 943.04 cycles/hash
+Small key speed test - 6-byte keys - 940.97 cycles/hash
+Small key speed test - 7-byte keys - 941.84 cycles/hash
+Small key speed test - 8-byte keys - 940.54 cycles/hash
+Small key speed test - 9-byte keys - 936.93 cycles/hash
+Small key speed test - 10-byte keys - 937.43 cycles/hash
+Small key speed test - 11-byte keys - 937.95 cycles/hash
+Small key speed test - 12-byte keys - 931.41 cycles/hash
+Small key speed test - 13-byte keys - 930.38 cycles/hash
+Small key speed test - 14-byte keys - 929.57 cycles/hash
+Small key speed test - 15-byte keys - 923.88 cycles/hash
+Small key speed test - 16-byte keys - 919.01 cycles/hash
+Small key speed test - 17-byte keys - 920.95 cycles/hash
+Small key speed test - 18-byte keys - 925.36 cycles/hash
+Small key speed test - 19-byte keys - 930.62 cycles/hash
+Small key speed test - 20-byte keys - 914.95 cycles/hash
+Small key speed test - 21-byte keys - 912.67 cycles/hash
+Small key speed test - 22-byte keys - 913.12 cycles/hash
+Small key speed test - 23-byte keys - 910.22 cycles/hash
+Small key speed test - 24-byte keys - 903.08 cycles/hash
+Small key speed test - 25-byte keys - 898.55 cycles/hash
+Small key speed test - 26-byte keys - 893.13 cycles/hash
+Small key speed test - 27-byte keys - 885.91 cycles/hash
+Small key speed test - 28-byte keys - 867.88 cycles/hash
+Small key speed test - 29-byte keys - 865.37 cycles/hash
+Small key speed test - 30-byte keys - 862.44 cycles/hash
+Small key speed test - 31-byte keys - 861.86 cycles/hash
+Small key speed test - 32-byte keys - 861.43 cycles/hash
+Average 916.379 cycles/hash
+Average, weighted by key length freq. 921.494 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 928.961 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1550.905 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1262.744 cycles/op (6.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1189.608 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1125.801 cycles/op (5.2 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 193.455992 seconds
--- Testing sha2-256_64 "SHA2-256, low 64 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.081 bytes/cycle - 230.52 MiB/sec @ 3 ghz
-Alignment 6 - 0.081 bytes/cycle - 231.93 MiB/sec @ 3 ghz
-Alignment 5 - 0.081 bytes/cycle - 232.16 MiB/sec @ 3 ghz
-Alignment 4 - 0.081 bytes/cycle - 232.73 MiB/sec @ 3 ghz
-Alignment 3 - 0.081 bytes/cycle - 232.09 MiB/sec @ 3 ghz
-Alignment 2 - 0.081 bytes/cycle - 232.77 MiB/sec @ 3 ghz
-Alignment 1 - 0.081 bytes/cycle - 232.75 MiB/sec @ 3 ghz
-Alignment 0 - 0.081 bytes/cycle - 231.06 MiB/sec @ 3 ghz
-Average - 0.081 bytes/cycle - 232.00 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 954.15 cycles/hash
-Small key speed test - 2-byte keys - 954.40 cycles/hash
-Small key speed test - 3-byte keys - 954.30 cycles/hash
-Small key speed test - 4-byte keys - 953.23 cycles/hash
-Small key speed test - 5-byte keys - 954.27 cycles/hash
-Small key speed test - 6-byte keys - 953.68 cycles/hash
-Small key speed test - 7-byte keys - 951.20 cycles/hash
-Small key speed test - 8-byte keys - 948.93 cycles/hash
-Small key speed test - 9-byte keys - 948.27 cycles/hash
-Small key speed test - 10-byte keys - 946.98 cycles/hash
-Small key speed test - 11-byte keys - 946.99 cycles/hash
-Small key speed test - 12-byte keys - 943.95 cycles/hash
-Small key speed test - 13-byte keys - 944.82 cycles/hash
-Small key speed test - 14-byte keys - 942.65 cycles/hash
-Small key speed test - 15-byte keys - 939.93 cycles/hash
-Small key speed test - 16-byte keys - 937.58 cycles/hash
-Small key speed test - 17-byte keys - 935.98 cycles/hash
-Small key speed test - 18-byte keys - 935.58 cycles/hash
-Small key speed test - 19-byte keys - 936.71 cycles/hash
-Small key speed test - 20-byte keys - 923.23 cycles/hash
-Small key speed test - 21-byte keys - 922.49 cycles/hash
-Small key speed test - 22-byte keys - 921.53 cycles/hash
-Small key speed test - 23-byte keys - 920.46 cycles/hash
-Small key speed test - 24-byte keys - 914.82 cycles/hash
-Small key speed test - 25-byte keys - 912.36 cycles/hash
-Small key speed test - 26-byte keys - 909.23 cycles/hash
-Small key speed test - 27-byte keys - 907.14 cycles/hash
-Small key speed test - 28-byte keys - 908.21 cycles/hash
-Small key speed test - 29-byte keys - 906.79 cycles/hash
-Small key speed test - 30-byte keys - 904.86 cycles/hash
-Small key speed test - 31-byte keys - 904.14 cycles/hash
-Average 933.512 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1434.509 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1342.773 cycles/op (10.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1244.796 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1181.413 cycles/op (8.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 188.663808 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x615acadc000 - 0x615acadbfb8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.083 bytes/cycle - 238.37 MiB/sec @ 3 ghz
+Alignment 6 - 0.083 bytes/cycle - 238.72 MiB/sec @ 3 ghz
+Alignment 5 - 0.083 bytes/cycle - 238.33 MiB/sec @ 3 ghz
+Alignment 4 - 0.083 bytes/cycle - 238.33 MiB/sec @ 3 ghz
+Alignment 3 - 0.083 bytes/cycle - 238.40 MiB/sec @ 3 ghz
+Alignment 2 - 0.083 bytes/cycle - 238.36 MiB/sec @ 3 ghz
+Alignment 1 - 0.083 bytes/cycle - 238.34 MiB/sec @ 3 ghz
+Alignment 0 - 0.083 bytes/cycle - 238.44 MiB/sec @ 3 ghz
+Average - 0.083 bytes/cycle - 238.41 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 915.19 cycles/hash
+Small key speed test - 2-byte keys - 920.95 cycles/hash
+Small key speed test - 3-byte keys - 919.84 cycles/hash
+Small key speed test - 4-byte keys - 920.17 cycles/hash
+Small key speed test - 5-byte keys - 919.38 cycles/hash
+Small key speed test - 6-byte keys - 920.23 cycles/hash
+Small key speed test - 7-byte keys - 916.30 cycles/hash
+Small key speed test - 8-byte keys - 978.19 cycles/hash
+Small key speed test - 9-byte keys - 943.34 cycles/hash
+Small key speed test - 10-byte keys - 942.80 cycles/hash
+Small key speed test - 11-byte keys - 940.47 cycles/hash
+Small key speed test - 12-byte keys - 935.94 cycles/hash
+Small key speed test - 13-byte keys - 935.13 cycles/hash
+Small key speed test - 14-byte keys - 933.97 cycles/hash
+Small key speed test - 15-byte keys - 928.48 cycles/hash
+Small key speed test - 16-byte keys - 926.89 cycles/hash
+Small key speed test - 17-byte keys - 926.33 cycles/hash
+Small key speed test - 18-byte keys - 929.54 cycles/hash
+Small key speed test - 19-byte keys - 931.01 cycles/hash
+Small key speed test - 20-byte keys - 912.46 cycles/hash
+Small key speed test - 21-byte keys - 914.87 cycles/hash
+Small key speed test - 22-byte keys - 897.71 cycles/hash
+Small key speed test - 23-byte keys - 910.94 cycles/hash
+Small key speed test - 24-byte keys - 900.59 cycles/hash
+Small key speed test - 25-byte keys - 878.94 cycles/hash
+Small key speed test - 26-byte keys - 894.19 cycles/hash
+Small key speed test - 27-byte keys - 884.06 cycles/hash
+Small key speed test - 28-byte keys - 882.23 cycles/hash
+Small key speed test - 29-byte keys - 881.18 cycles/hash
+Small key speed test - 30-byte keys - 880.34 cycles/hash
+Small key speed test - 31-byte keys - 880.59 cycles/hash
+Small key speed test - 32-byte keys - 877.07 cycles/hash
+Average 914.979 cycles/hash
+Average, weighted by key length freq. 924.887 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 934.658 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1382.490 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1290.696 cycles/op (7.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1213.668 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1156.782 cycles/op (11.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 192.847831 seconds
--- Testing sha1ni "SHA1_NI (amd64 HW SHA ext)" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.560 bytes/cycle - 1601.24 MiB/sec @ 3 ghz
-Alignment 6 - 0.560 bytes/cycle - 1602.26 MiB/sec @ 3 ghz
-Alignment 5 - 0.560 bytes/cycle - 1600.82 MiB/sec @ 3 ghz
-Alignment 4 - 0.560 bytes/cycle - 1602.88 MiB/sec @ 3 ghz
-Alignment 3 - 0.560 bytes/cycle - 1602.34 MiB/sec @ 3 ghz
-Alignment 2 - 0.559 bytes/cycle - 1599.90 MiB/sec @ 3 ghz
-Alignment 1 - 0.559 bytes/cycle - 1600.17 MiB/sec @ 3 ghz
-Alignment 0 - 0.559 bytes/cycle - 1600.09 MiB/sec @ 3 ghz
-Average - 0.560 bytes/cycle - 1601.21 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 172.00 cycles/hash
-Small key speed test - 2-byte keys - 172.32 cycles/hash
-Small key speed test - 3-byte keys - 172.29 cycles/hash
-Small key speed test - 4-byte keys - 172.00 cycles/hash
-Small key speed test - 5-byte keys - 172.00 cycles/hash
-Small key speed test - 6-byte keys - 172.00 cycles/hash
-Small key speed test - 7-byte keys - 171.93 cycles/hash
-Small key speed test - 8-byte keys - 171.96 cycles/hash
-Small key speed test - 9-byte keys - 171.90 cycles/hash
-Small key speed test - 10-byte keys - 171.91 cycles/hash
-Small key speed test - 11-byte keys - 171.95 cycles/hash
-Small key speed test - 12-byte keys - 171.95 cycles/hash
-Small key speed test - 13-byte keys - 171.93 cycles/hash
-Small key speed test - 14-byte keys - 172.33 cycles/hash
-Small key speed test - 15-byte keys - 172.16 cycles/hash
-Small key speed test - 16-byte keys - 171.92 cycles/hash
-Small key speed test - 17-byte keys - 177.32 cycles/hash
-Small key speed test - 18-byte keys - 177.21 cycles/hash
-Small key speed test - 19-byte keys - 177.43 cycles/hash
-Small key speed test - 20-byte keys - 173.34 cycles/hash
-Small key speed test - 21-byte keys - 177.15 cycles/hash
-Small key speed test - 22-byte keys - 177.26 cycles/hash
-Small key speed test - 23-byte keys - 177.19 cycles/hash
-Small key speed test - 24-byte keys - 173.26 cycles/hash
-Small key speed test - 25-byte keys - 177.16 cycles/hash
-Small key speed test - 26-byte keys - 177.00 cycles/hash
-Small key speed test - 27-byte keys - 177.33 cycles/hash
-Small key speed test - 28-byte keys - 173.18 cycles/hash
-Small key speed test - 29-byte keys - 177.00 cycles/hash
-Small key speed test - 30-byte keys - 177.19 cycles/hash
-Small key speed test - 31-byte keys - 177.43 cycles/hash
-Average 174.161 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 596.040 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 535.008 cycles/op (5.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 453.249 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 397.281 cycles/op (6.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 37.287915 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x6b749cdcc58 - 0x6b749cdcbec). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.570 bytes/cycle - 1630.88 MiB/sec @ 3 ghz
+Alignment 6 - 0.571 bytes/cycle - 1632.31 MiB/sec @ 3 ghz
+Alignment 5 - 0.571 bytes/cycle - 1634.00 MiB/sec @ 3 ghz
+Alignment 4 - 0.571 bytes/cycle - 1633.37 MiB/sec @ 3 ghz
+Alignment 3 - 0.570 bytes/cycle - 1631.85 MiB/sec @ 3 ghz
+Alignment 2 - 0.571 bytes/cycle - 1634.17 MiB/sec @ 3 ghz
+Alignment 1 - 0.571 bytes/cycle - 1633.02 MiB/sec @ 3 ghz
+Alignment 0 - 0.571 bytes/cycle - 1633.45 MiB/sec @ 3 ghz
+Average - 0.571 bytes/cycle - 1632.88 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 168.55 cycles/hash
+Small key speed test - 2-byte keys - 168.56 cycles/hash
+Small key speed test - 3-byte keys - 168.57 cycles/hash
+Small key speed test - 4-byte keys - 168.56 cycles/hash
+Small key speed test - 5-byte keys - 168.70 cycles/hash
+Small key speed test - 6-byte keys - 168.58 cycles/hash
+Small key speed test - 7-byte keys - 168.62 cycles/hash
+Small key speed test - 8-byte keys - 168.66 cycles/hash
+Small key speed test - 9-byte keys - 168.65 cycles/hash
+Small key speed test - 10-byte keys - 168.61 cycles/hash
+Small key speed test - 11-byte keys - 168.59 cycles/hash
+Small key speed test - 12-byte keys - 168.64 cycles/hash
+Small key speed test - 13-byte keys - 168.59 cycles/hash
+Small key speed test - 14-byte keys - 168.59 cycles/hash
+Small key speed test - 15-byte keys - 168.62 cycles/hash
+Small key speed test - 16-byte keys - 168.47 cycles/hash
+Small key speed test - 17-byte keys - 174.19 cycles/hash
+Small key speed test - 18-byte keys - 174.19 cycles/hash
+Small key speed test - 19-byte keys - 174.20 cycles/hash
+Small key speed test - 20-byte keys - 169.39 cycles/hash
+Small key speed test - 21-byte keys - 174.22 cycles/hash
+Small key speed test - 22-byte keys - 174.20 cycles/hash
+Small key speed test - 23-byte keys - 174.21 cycles/hash
+Small key speed test - 24-byte keys - 169.39 cycles/hash
+Small key speed test - 25-byte keys - 174.21 cycles/hash
+Small key speed test - 26-byte keys - 174.00 cycles/hash
+Small key speed test - 27-byte keys - 174.40 cycles/hash
+Small key speed test - 28-byte keys - 169.32 cycles/hash
+Small key speed test - 29-byte keys - 174.18 cycles/hash
+Small key speed test - 30-byte keys - 174.25 cycles/hash
+Small key speed test - 31-byte keys - 174.17 cycles/hash
+Small key speed test - 32-byte keys - 168.54 cycles/hash
+Average 170.769 cycles/hash
+Average, weighted by key length freq. 170.612 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 168.624 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 561.056 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 481.390 cycles/op (3.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 417.395 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 379.844 cycles/op (5.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 37.324308 seconds
--- Testing sha1ni_32 "hardened SHA1_NI (amd64 HW SHA ext), low 32 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.551 bytes/cycle - 1575.20 MiB/sec @ 3 ghz
-Alignment 6 - 0.551 bytes/cycle - 1576.98 MiB/sec @ 3 ghz
-Alignment 5 - 0.551 bytes/cycle - 1575.47 MiB/sec @ 3 ghz
-Alignment 4 - 0.551 bytes/cycle - 1575.50 MiB/sec @ 3 ghz
-Alignment 3 - 0.551 bytes/cycle - 1575.63 MiB/sec @ 3 ghz
-Alignment 2 - 0.551 bytes/cycle - 1575.23 MiB/sec @ 3 ghz
-Alignment 1 - 0.552 bytes/cycle - 1578.30 MiB/sec @ 3 ghz
-Alignment 0 - 0.551 bytes/cycle - 1577.04 MiB/sec @ 3 ghz
-Average - 0.551 bytes/cycle - 1576.17 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 171.70 cycles/hash
-Small key speed test - 2-byte keys - 171.60 cycles/hash
-Small key speed test - 3-byte keys - 171.72 cycles/hash
-Small key speed test - 4-byte keys - 171.68 cycles/hash
-Small key speed test - 5-byte keys - 171.70 cycles/hash
-Small key speed test - 6-byte keys - 171.71 cycles/hash
-Small key speed test - 7-byte keys - 171.64 cycles/hash
-Small key speed test - 8-byte keys - 171.00 cycles/hash
-Small key speed test - 9-byte keys - 171.00 cycles/hash
-Small key speed test - 10-byte keys - 171.57 cycles/hash
-Small key speed test - 11-byte keys - 171.28 cycles/hash
-Small key speed test - 12-byte keys - 171.41 cycles/hash
-Small key speed test - 13-byte keys - 171.77 cycles/hash
-Small key speed test - 14-byte keys - 171.77 cycles/hash
-Small key speed test - 15-byte keys - 171.77 cycles/hash
-Small key speed test - 16-byte keys - 171.60 cycles/hash
-Small key speed test - 17-byte keys - 177.73 cycles/hash
-Small key speed test - 18-byte keys - 177.77 cycles/hash
-Small key speed test - 19-byte keys - 177.72 cycles/hash
-Small key speed test - 20-byte keys - 172.61 cycles/hash
-Small key speed test - 21-byte keys - 177.57 cycles/hash
-Small key speed test - 22-byte keys - 177.73 cycles/hash
-Small key speed test - 23-byte keys - 177.70 cycles/hash
-Small key speed test - 24-byte keys - 172.72 cycles/hash
-Small key speed test - 25-byte keys - 177.69 cycles/hash
-Small key speed test - 26-byte keys - 177.71 cycles/hash
-Small key speed test - 27-byte keys - 177.69 cycles/hash
-Small key speed test - 28-byte keys - 172.59 cycles/hash
-Small key speed test - 29-byte keys - 177.76 cycles/hash
-Small key speed test - 30-byte keys - 177.74 cycles/hash
-Small key speed test - 31-byte keys - 177.71 cycles/hash
-Average 174.044 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 580.464 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 526.164 cycles/op (5.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 458.733 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 405.561 cycles/op (6.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 37.368248 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x6d692607410 - 0x6d6926073c8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.554 bytes/cycle - 1585.50 MiB/sec @ 3 ghz
+Alignment 6 - 0.554 bytes/cycle - 1583.99 MiB/sec @ 3 ghz
+Alignment 5 - 0.553 bytes/cycle - 1583.32 MiB/sec @ 3 ghz
+Alignment 4 - 0.553 bytes/cycle - 1582.77 MiB/sec @ 3 ghz
+Alignment 3 - 0.553 bytes/cycle - 1583.18 MiB/sec @ 3 ghz
+Alignment 2 - 0.553 bytes/cycle - 1582.96 MiB/sec @ 3 ghz
+Alignment 1 - 0.553 bytes/cycle - 1582.82 MiB/sec @ 3 ghz
+Alignment 0 - 0.553 bytes/cycle - 1583.44 MiB/sec @ 3 ghz
+Average - 0.553 bytes/cycle - 1583.50 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 171.02 cycles/hash
+Small key speed test - 2-byte keys - 170.93 cycles/hash
+Small key speed test - 3-byte keys - 170.96 cycles/hash
+Small key speed test - 4-byte keys - 171.06 cycles/hash
+Small key speed test - 5-byte keys - 171.16 cycles/hash
+Small key speed test - 6-byte keys - 170.95 cycles/hash
+Small key speed test - 7-byte keys - 170.95 cycles/hash
+Small key speed test - 8-byte keys - 170.96 cycles/hash
+Small key speed test - 9-byte keys - 170.96 cycles/hash
+Small key speed test - 10-byte keys - 170.95 cycles/hash
+Small key speed test - 11-byte keys - 170.95 cycles/hash
+Small key speed test - 12-byte keys - 171.03 cycles/hash
+Small key speed test - 13-byte keys - 170.94 cycles/hash
+Small key speed test - 14-byte keys - 170.95 cycles/hash
+Small key speed test - 15-byte keys - 170.95 cycles/hash
+Small key speed test - 16-byte keys - 170.88 cycles/hash
+Small key speed test - 17-byte keys - 176.96 cycles/hash
+Small key speed test - 18-byte keys - 176.94 cycles/hash
+Small key speed test - 19-byte keys - 176.94 cycles/hash
+Small key speed test - 20-byte keys - 172.29 cycles/hash
+Small key speed test - 21-byte keys - 174.93 cycles/hash
+Small key speed test - 22-byte keys - 173.57 cycles/hash
+Small key speed test - 23-byte keys - 173.54 cycles/hash
+Small key speed test - 24-byte keys - 169.55 cycles/hash
+Small key speed test - 25-byte keys - 173.54 cycles/hash
+Small key speed test - 26-byte keys - 173.54 cycles/hash
+Small key speed test - 27-byte keys - 173.52 cycles/hash
+Small key speed test - 28-byte keys - 169.54 cycles/hash
+Small key speed test - 29-byte keys - 173.50 cycles/hash
+Small key speed test - 30-byte keys - 173.51 cycles/hash
+Small key speed test - 31-byte keys - 173.53 cycles/hash
+Small key speed test - 32-byte keys - 168.54 cycles/hash
+Average 172.174 cycles/hash
+Average, weighted by key length freq. 172.471 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 170.959 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 546.654 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 484.241 cycles/op (2.5 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 434.999 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 387.699 cycles/op (3.7 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 37.870929 seconds
--- Testing sha2ni-256 "SHA2_NI-256 (amd64 HW SHA ext)" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.534 bytes/cycle - 1527.26 MiB/sec @ 3 ghz
-Alignment 6 - 0.533 bytes/cycle - 1525.23 MiB/sec @ 3 ghz
-Alignment 5 - 0.534 bytes/cycle - 1528.32 MiB/sec @ 3 ghz
-Alignment 4 - 0.534 bytes/cycle - 1527.95 MiB/sec @ 3 ghz
-Alignment 3 - 0.534 bytes/cycle - 1528.42 MiB/sec @ 3 ghz
-Alignment 2 - 0.534 bytes/cycle - 1527.51 MiB/sec @ 3 ghz
-Alignment 1 - 0.534 bytes/cycle - 1526.72 MiB/sec @ 3 ghz
-Alignment 0 - 0.534 bytes/cycle - 1527.63 MiB/sec @ 3 ghz
-Average - 0.534 bytes/cycle - 1527.38 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 182.05 cycles/hash
-Small key speed test - 2-byte keys - 183.55 cycles/hash
-Small key speed test - 3-byte keys - 183.35 cycles/hash
-Small key speed test - 4-byte keys - 183.44 cycles/hash
-Small key speed test - 5-byte keys - 183.09 cycles/hash
-Small key speed test - 6-byte keys - 183.10 cycles/hash
-Small key speed test - 7-byte keys - 182.95 cycles/hash
-Small key speed test - 8-byte keys - 182.80 cycles/hash
-Small key speed test - 9-byte keys - 182.96 cycles/hash
-Small key speed test - 10-byte keys - 183.00 cycles/hash
-Small key speed test - 11-byte keys - 183.11 cycles/hash
-Small key speed test - 12-byte keys - 183.16 cycles/hash
-Small key speed test - 13-byte keys - 183.12 cycles/hash
-Small key speed test - 14-byte keys - 183.04 cycles/hash
-Small key speed test - 15-byte keys - 182.92 cycles/hash
-Small key speed test - 16-byte keys - 177.41 cycles/hash
-Small key speed test - 17-byte keys - 186.31 cycles/hash
-Small key speed test - 18-byte keys - 186.30 cycles/hash
-Small key speed test - 19-byte keys - 186.46 cycles/hash
-Small key speed test - 20-byte keys - 184.82 cycles/hash
-Small key speed test - 21-byte keys - 186.65 cycles/hash
-Small key speed test - 22-byte keys - 186.50 cycles/hash
-Small key speed test - 23-byte keys - 186.37 cycles/hash
-Small key speed test - 24-byte keys - 184.83 cycles/hash
-Small key speed test - 25-byte keys - 186.41 cycles/hash
-Small key speed test - 26-byte keys - 186.47 cycles/hash
-Small key speed test - 27-byte keys - 186.38 cycles/hash
-Small key speed test - 28-byte keys - 184.81 cycles/hash
-Small key speed test - 29-byte keys - 186.53 cycles/hash
-Small key speed test - 30-byte keys - 186.71 cycles/hash
-Small key speed test - 31-byte keys - 186.31 cycles/hash
-Average 184.353 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 610.053 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 547.079 cycles/op (3.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 461.482 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 404.405 cycles/op (4.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 39.226163 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x6f64f2166a4 - 0x6f64f216638). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.544 bytes/cycle - 1557.19 MiB/sec @ 3 ghz
+Alignment 6 - 0.544 bytes/cycle - 1557.38 MiB/sec @ 3 ghz
+Alignment 5 - 0.544 bytes/cycle - 1556.41 MiB/sec @ 3 ghz
+Alignment 4 - 0.544 bytes/cycle - 1555.25 MiB/sec @ 3 ghz
+Alignment 3 - 0.544 bytes/cycle - 1555.47 MiB/sec @ 3 ghz
+Alignment 2 - 0.544 bytes/cycle - 1557.20 MiB/sec @ 3 ghz
+Alignment 1 - 0.544 bytes/cycle - 1557.09 MiB/sec @ 3 ghz
+Alignment 0 - 0.544 bytes/cycle - 1557.33 MiB/sec @ 3 ghz
+Average - 0.544 bytes/cycle - 1556.66 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 179.04 cycles/hash
+Small key speed test - 2-byte keys - 179.98 cycles/hash
+Small key speed test - 3-byte keys - 179.92 cycles/hash
+Small key speed test - 4-byte keys - 180.08 cycles/hash
+Small key speed test - 5-byte keys - 180.15 cycles/hash
+Small key speed test - 6-byte keys - 180.18 cycles/hash
+Small key speed test - 7-byte keys - 180.13 cycles/hash
+Small key speed test - 8-byte keys - 179.65 cycles/hash
+Small key speed test - 9-byte keys - 179.77 cycles/hash
+Small key speed test - 10-byte keys - 179.73 cycles/hash
+Small key speed test - 11-byte keys - 179.75 cycles/hash
+Small key speed test - 12-byte keys - 179.74 cycles/hash
+Small key speed test - 13-byte keys - 179.89 cycles/hash
+Small key speed test - 14-byte keys - 179.89 cycles/hash
+Small key speed test - 15-byte keys - 179.74 cycles/hash
+Small key speed test - 16-byte keys - 174.56 cycles/hash
+Small key speed test - 17-byte keys - 182.62 cycles/hash
+Small key speed test - 18-byte keys - 182.72 cycles/hash
+Small key speed test - 19-byte keys - 182.58 cycles/hash
+Small key speed test - 20-byte keys - 180.87 cycles/hash
+Small key speed test - 21-byte keys - 182.55 cycles/hash
+Small key speed test - 22-byte keys - 182.57 cycles/hash
+Small key speed test - 23-byte keys - 182.72 cycles/hash
+Small key speed test - 24-byte keys - 180.87 cycles/hash
+Small key speed test - 25-byte keys - 182.55 cycles/hash
+Small key speed test - 26-byte keys - 182.67 cycles/hash
+Small key speed test - 27-byte keys - 183.24 cycles/hash
+Small key speed test - 28-byte keys - 180.88 cycles/hash
+Small key speed test - 29-byte keys - 182.72 cycles/hash
+Small key speed test - 30-byte keys - 182.83 cycles/hash
+Small key speed test - 31-byte keys - 182.72 cycles/hash
+Small key speed test - 32-byte keys - 176.70 cycles/hash
+Average 180.750 cycles/hash
+Average, weighted by key length freq. 180.502 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 177.795 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 572.094 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 495.337 cycles/op (3.6 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 440.649 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 393.788 cycles/op (5.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 39.341052 seconds
--- Testing sha2ni-256_64 "hardened SHA2_NI-256 (amd64 HW SHA ext), low 64 bits" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.525 bytes/cycle - 1502.14 MiB/sec @ 3 ghz
-Alignment 6 - 0.525 bytes/cycle - 1500.96 MiB/sec @ 3 ghz
-Alignment 5 - 0.524 bytes/cycle - 1499.98 MiB/sec @ 3 ghz
-Alignment 4 - 0.525 bytes/cycle - 1502.83 MiB/sec @ 3 ghz
-Alignment 3 - 0.525 bytes/cycle - 1501.36 MiB/sec @ 3 ghz
-Alignment 2 - 0.525 bytes/cycle - 1501.94 MiB/sec @ 3 ghz
-Alignment 1 - 0.525 bytes/cycle - 1502.63 MiB/sec @ 3 ghz
-Alignment 0 - 0.525 bytes/cycle - 1502.92 MiB/sec @ 3 ghz
-Average - 0.525 bytes/cycle - 1501.85 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 183.63 cycles/hash
-Small key speed test - 2-byte keys - 184.36 cycles/hash
-Small key speed test - 3-byte keys - 183.95 cycles/hash
-Small key speed test - 4-byte keys - 184.80 cycles/hash
-Small key speed test - 5-byte keys - 184.99 cycles/hash
-Small key speed test - 6-byte keys - 184.86 cycles/hash
-Small key speed test - 7-byte keys - 184.68 cycles/hash
-Small key speed test - 8-byte keys - 184.86 cycles/hash
-Small key speed test - 9-byte keys - 184.75 cycles/hash
-Small key speed test - 10-byte keys - 184.92 cycles/hash
-Small key speed test - 11-byte keys - 184.86 cycles/hash
-Small key speed test - 12-byte keys - 184.64 cycles/hash
-Small key speed test - 13-byte keys - 184.85 cycles/hash
-Small key speed test - 14-byte keys - 184.93 cycles/hash
-Small key speed test - 15-byte keys - 184.85 cycles/hash
-Small key speed test - 16-byte keys - 179.85 cycles/hash
-Small key speed test - 17-byte keys - 188.91 cycles/hash
-Small key speed test - 18-byte keys - 188.98 cycles/hash
-Small key speed test - 19-byte keys - 188.81 cycles/hash
-Small key speed test - 20-byte keys - 185.01 cycles/hash
-Small key speed test - 21-byte keys - 188.99 cycles/hash
-Small key speed test - 22-byte keys - 188.93 cycles/hash
-Small key speed test - 23-byte keys - 188.93 cycles/hash
-Small key speed test - 24-byte keys - 185.21 cycles/hash
-Small key speed test - 25-byte keys - 188.97 cycles/hash
-Small key speed test - 26-byte keys - 188.94 cycles/hash
-Small key speed test - 27-byte keys - 188.97 cycles/hash
-Small key speed test - 28-byte keys - 184.98 cycles/hash
-Small key speed test - 29-byte keys - 188.98 cycles/hash
-Small key speed test - 30-byte keys - 188.92 cycles/hash
-Small key speed test - 31-byte keys - 188.98 cycles/hash
-Average 186.202 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 609.423 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 539.943 cycles/op (2.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 466.458 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 407.960 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 39.632140 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x717477b8a4c - 0x717477b89e0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.528 bytes/cycle - 1511.17 MiB/sec @ 3 ghz
+Alignment 6 - 0.527 bytes/cycle - 1508.43 MiB/sec @ 3 ghz
+Alignment 5 - 0.527 bytes/cycle - 1508.11 MiB/sec @ 3 ghz
+Alignment 4 - 0.527 bytes/cycle - 1508.37 MiB/sec @ 3 ghz
+Alignment 3 - 0.527 bytes/cycle - 1508.71 MiB/sec @ 3 ghz
+Alignment 2 - 0.527 bytes/cycle - 1507.68 MiB/sec @ 3 ghz
+Alignment 1 - 0.527 bytes/cycle - 1508.95 MiB/sec @ 3 ghz
+Alignment 0 - 0.527 bytes/cycle - 1509.11 MiB/sec @ 3 ghz
+Average - 0.527 bytes/cycle - 1508.82 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 183.11 cycles/hash
+Small key speed test - 2-byte keys - 183.92 cycles/hash
+Small key speed test - 3-byte keys - 183.91 cycles/hash
+Small key speed test - 4-byte keys - 183.93 cycles/hash
+Small key speed test - 5-byte keys - 184.25 cycles/hash
+Small key speed test - 6-byte keys - 184.50 cycles/hash
+Small key speed test - 7-byte keys - 183.98 cycles/hash
+Small key speed test - 8-byte keys - 183.86 cycles/hash
+Small key speed test - 9-byte keys - 183.89 cycles/hash
+Small key speed test - 10-byte keys - 183.87 cycles/hash
+Small key speed test - 11-byte keys - 183.92 cycles/hash
+Small key speed test - 12-byte keys - 183.90 cycles/hash
+Small key speed test - 13-byte keys - 183.90 cycles/hash
+Small key speed test - 14-byte keys - 183.94 cycles/hash
+Small key speed test - 15-byte keys - 183.88 cycles/hash
+Small key speed test - 16-byte keys - 179.29 cycles/hash
+Small key speed test - 17-byte keys - 187.41 cycles/hash
+Small key speed test - 18-byte keys - 186.96 cycles/hash
+Small key speed test - 19-byte keys - 186.94 cycles/hash
+Small key speed test - 20-byte keys - 184.77 cycles/hash
+Small key speed test - 21-byte keys - 186.97 cycles/hash
+Small key speed test - 22-byte keys - 187.14 cycles/hash
+Small key speed test - 23-byte keys - 186.99 cycles/hash
+Small key speed test - 24-byte keys - 184.79 cycles/hash
+Small key speed test - 25-byte keys - 186.90 cycles/hash
+Small key speed test - 26-byte keys - 186.83 cycles/hash
+Small key speed test - 27-byte keys - 187.02 cycles/hash
+Small key speed test - 28-byte keys - 184.77 cycles/hash
+Small key speed test - 29-byte keys - 186.93 cycles/hash
+Small key speed test - 30-byte keys - 186.73 cycles/hash
+Small key speed test - 31-byte keys - 187.15 cycles/hash
+Small key speed test - 32-byte keys - 180.00 cycles/hash
+Average 184.886 cycles/hash
+Average, weighted by key length freq. 184.726 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 182.153 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 579.064 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 503.063 cycles/op (4.0 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 432.546 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 393.067 cycles/op (6.2 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 40.373562 seconds
--- Testing rmd128 "RIPEMD-128" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.102 bytes/cycle - 290.87 MiB/sec @ 3 ghz
-Alignment 6 - 0.102 bytes/cycle - 290.90 MiB/sec @ 3 ghz
-Alignment 5 - 0.102 bytes/cycle - 290.91 MiB/sec @ 3 ghz
-Alignment 4 - 0.102 bytes/cycle - 290.91 MiB/sec @ 3 ghz
-Alignment 3 - 0.102 bytes/cycle - 290.91 MiB/sec @ 3 ghz
-Alignment 2 - 0.102 bytes/cycle - 290.88 MiB/sec @ 3 ghz
-Alignment 1 - 0.102 bytes/cycle - 290.90 MiB/sec @ 3 ghz
-Alignment 0 - 0.102 bytes/cycle - 290.91 MiB/sec @ 3 ghz
-Average - 0.102 bytes/cycle - 290.90 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 725.75 cycles/hash
-Small key speed test - 2-byte keys - 728.79 cycles/hash
-Small key speed test - 3-byte keys - 731.65 cycles/hash
-Small key speed test - 4-byte keys - 731.15 cycles/hash
-Small key speed test - 5-byte keys - 731.04 cycles/hash
-Small key speed test - 6-byte keys - 729.24 cycles/hash
-Small key speed test - 7-byte keys - 727.68 cycles/hash
-Small key speed test - 8-byte keys - 727.11 cycles/hash
-Small key speed test - 9-byte keys - 728.40 cycles/hash
-Small key speed test - 10-byte keys - 727.57 cycles/hash
-Small key speed test - 11-byte keys - 724.27 cycles/hash
-Small key speed test - 12-byte keys - 718.88 cycles/hash
-Small key speed test - 13-byte keys - 717.94 cycles/hash
-Small key speed test - 14-byte keys - 717.37 cycles/hash
-Small key speed test - 15-byte keys - 716.33 cycles/hash
-Small key speed test - 16-byte keys - 718.62 cycles/hash
-Small key speed test - 17-byte keys - 718.52 cycles/hash
-Small key speed test - 18-byte keys - 703.56 cycles/hash
-Small key speed test - 19-byte keys - 699.96 cycles/hash
-Small key speed test - 20-byte keys - 694.02 cycles/hash
-Small key speed test - 21-byte keys - 702.15 cycles/hash
-Small key speed test - 22-byte keys - 696.45 cycles/hash
-Small key speed test - 23-byte keys - 695.58 cycles/hash
-Small key speed test - 24-byte keys - 692.49 cycles/hash
-Small key speed test - 25-byte keys - 693.11 cycles/hash
-Small key speed test - 26-byte keys - 686.57 cycles/hash
-Small key speed test - 27-byte keys - 691.94 cycles/hash
-Small key speed test - 28-byte keys - 687.28 cycles/hash
-Small key speed test - 29-byte keys - 688.26 cycles/hash
-Small key speed test - 30-byte keys - 688.24 cycles/hash
-Small key speed test - 31-byte keys - 685.23 cycles/hash
-Average 710.489 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1218.678 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1100.071 cycles/op (11.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1041.448 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 965.555 cycles/op (6.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 145.199949 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x7391d28de5c - 0x7391d28ddf0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.103 bytes/cycle - 294.44 MiB/sec @ 3 ghz
+Alignment 6 - 0.103 bytes/cycle - 294.44 MiB/sec @ 3 ghz
+Alignment 5 - 0.103 bytes/cycle - 294.52 MiB/sec @ 3 ghz
+Alignment 4 - 0.103 bytes/cycle - 294.10 MiB/sec @ 3 ghz
+Alignment 3 - 0.103 bytes/cycle - 294.44 MiB/sec @ 3 ghz
+Alignment 2 - 0.103 bytes/cycle - 294.53 MiB/sec @ 3 ghz
+Alignment 1 - 0.103 bytes/cycle - 294.52 MiB/sec @ 3 ghz
+Alignment 0 - 0.103 bytes/cycle - 294.37 MiB/sec @ 3 ghz
+Average - 0.103 bytes/cycle - 294.42 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 757.98 cycles/hash
+Small key speed test - 2-byte keys - 749.83 cycles/hash
+Small key speed test - 3-byte keys - 745.42 cycles/hash
+Small key speed test - 4-byte keys - 741.18 cycles/hash
+Small key speed test - 5-byte keys - 729.11 cycles/hash
+Small key speed test - 6-byte keys - 731.12 cycles/hash
+Small key speed test - 7-byte keys - 728.91 cycles/hash
+Small key speed test - 8-byte keys - 730.13 cycles/hash
+Small key speed test - 9-byte keys - 728.50 cycles/hash
+Small key speed test - 10-byte keys - 726.89 cycles/hash
+Small key speed test - 11-byte keys - 725.40 cycles/hash
+Small key speed test - 12-byte keys - 727.30 cycles/hash
+Small key speed test - 13-byte keys - 724.33 cycles/hash
+Small key speed test - 14-byte keys - 725.59 cycles/hash
+Small key speed test - 15-byte keys - 723.63 cycles/hash
+Small key speed test - 16-byte keys - 721.12 cycles/hash
+Small key speed test - 17-byte keys - 719.30 cycles/hash
+Small key speed test - 18-byte keys - 698.42 cycles/hash
+Small key speed test - 19-byte keys - 698.80 cycles/hash
+Small key speed test - 20-byte keys - 697.33 cycles/hash
+Small key speed test - 21-byte keys - 695.55 cycles/hash
+Small key speed test - 22-byte keys - 695.01 cycles/hash
+Small key speed test - 23-byte keys - 694.26 cycles/hash
+Small key speed test - 24-byte keys - 692.79 cycles/hash
+Small key speed test - 25-byte keys - 692.22 cycles/hash
+Small key speed test - 26-byte keys - 690.87 cycles/hash
+Small key speed test - 27-byte keys - 690.96 cycles/hash
+Small key speed test - 28-byte keys - 689.80 cycles/hash
+Small key speed test - 29-byte keys - 685.72 cycles/hash
+Small key speed test - 30-byte keys - 686.95 cycles/hash
+Small key speed test - 31-byte keys - 681.89 cycles/hash
+Small key speed test - 32-byte keys - 679.23 cycles/hash
+Average 712.674 cycles/hash
+Average, weighted by key length freq. 713.429 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 724.707 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1170.229 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1048.074 cycles/op (5.4 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 986.374 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 930.655 cycles/op (3.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 151.330158 seconds
--- Testing rmd160 "RIPEMD-160" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.066 bytes/cycle - 188.91 MiB/sec @ 3 ghz
-Alignment 6 - 0.066 bytes/cycle - 189.78 MiB/sec @ 3 ghz
-Alignment 5 - 0.066 bytes/cycle - 189.77 MiB/sec @ 3 ghz
-Alignment 4 - 0.066 bytes/cycle - 189.79 MiB/sec @ 3 ghz
-Alignment 3 - 0.066 bytes/cycle - 188.88 MiB/sec @ 3 ghz
-Alignment 2 - 0.066 bytes/cycle - 189.77 MiB/sec @ 3 ghz
-Alignment 1 - 0.066 bytes/cycle - 189.77 MiB/sec @ 3 ghz
-Alignment 0 - 0.066 bytes/cycle - 189.76 MiB/sec @ 3 ghz
-Average - 0.066 bytes/cycle - 189.55 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 1090.77 cycles/hash
-Small key speed test - 2-byte keys - 1088.61 cycles/hash
-Small key speed test - 3-byte keys - 1088.47 cycles/hash
-Small key speed test - 4-byte keys - 1085.50 cycles/hash
-Small key speed test - 5-byte keys - 1084.89 cycles/hash
-Small key speed test - 6-byte keys - 1083.77 cycles/hash
-Small key speed test - 7-byte keys - 1083.35 cycles/hash
-Small key speed test - 8-byte keys - 1083.42 cycles/hash
-Small key speed test - 9-byte keys - 1079.26 cycles/hash
-Small key speed test - 10-byte keys - 1079.65 cycles/hash
-Small key speed test - 11-byte keys - 1077.07 cycles/hash
-Small key speed test - 12-byte keys - 1077.09 cycles/hash
-Small key speed test - 13-byte keys - 1074.96 cycles/hash
-Small key speed test - 14-byte keys - 1072.93 cycles/hash
-Small key speed test - 15-byte keys - 1073.51 cycles/hash
-Small key speed test - 16-byte keys - 1071.67 cycles/hash
-Small key speed test - 17-byte keys - 1073.77 cycles/hash
-Small key speed test - 18-byte keys - 1060.34 cycles/hash
-Small key speed test - 19-byte keys - 1056.78 cycles/hash
-Small key speed test - 20-byte keys - 1056.39 cycles/hash
-Small key speed test - 21-byte keys - 1054.95 cycles/hash
-Small key speed test - 22-byte keys - 1056.44 cycles/hash
-Small key speed test - 23-byte keys - 1052.70 cycles/hash
-Small key speed test - 24-byte keys - 1053.32 cycles/hash
-Small key speed test - 25-byte keys - 1042.72 cycles/hash
-Small key speed test - 26-byte keys - 1041.04 cycles/hash
-Small key speed test - 27-byte keys - 1040.50 cycles/hash
-Small key speed test - 28-byte keys - 1037.14 cycles/hash
-Small key speed test - 29-byte keys - 1029.32 cycles/hash
-Small key speed test - 30-byte keys - 1028.38 cycles/hash
-Small key speed test - 31-byte keys - 1025.10 cycles/hash
-Average 1064.639 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1576.420 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1464.240 cycles/op (13.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1394.827 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1318.249 cycles/op (9.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 216.991908 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x7b7ede2f4f0 - 0x7b7ede2f484). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+Alignment 6 - 0.066 bytes/cycle - 188.66 MiB/sec @ 3 ghz
+Alignment 5 - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+Alignment 4 - 0.066 bytes/cycle - 188.74 MiB/sec @ 3 ghz
+Alignment 3 - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+Alignment 2 - 0.066 bytes/cycle - 188.75 MiB/sec @ 3 ghz
+Alignment 1 - 0.066 bytes/cycle - 188.77 MiB/sec @ 3 ghz
+Alignment 0 - 0.066 bytes/cycle - 188.77 MiB/sec @ 3 ghz
+Average - 0.066 bytes/cycle - 188.73 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 1097.27 cycles/hash
+Small key speed test - 2-byte keys - 1095.22 cycles/hash
+Small key speed test - 3-byte keys - 1094.05 cycles/hash
+Small key speed test - 4-byte keys - 1089.87 cycles/hash
+Small key speed test - 5-byte keys - 1088.79 cycles/hash
+Small key speed test - 6-byte keys - 1086.45 cycles/hash
+Small key speed test - 7-byte keys - 1084.78 cycles/hash
+Small key speed test - 8-byte keys - 1082.67 cycles/hash
+Small key speed test - 9-byte keys - 1082.74 cycles/hash
+Small key speed test - 10-byte keys - 1080.56 cycles/hash
+Small key speed test - 11-byte keys - 1080.02 cycles/hash
+Small key speed test - 12-byte keys - 1079.16 cycles/hash
+Small key speed test - 13-byte keys - 1079.51 cycles/hash
+Small key speed test - 14-byte keys - 1078.03 cycles/hash
+Small key speed test - 15-byte keys - 1077.88 cycles/hash
+Small key speed test - 16-byte keys - 1076.63 cycles/hash
+Small key speed test - 17-byte keys - 1073.29 cycles/hash
+Small key speed test - 18-byte keys - 1065.18 cycles/hash
+Small key speed test - 19-byte keys - 1063.65 cycles/hash
+Small key speed test - 20-byte keys - 1062.66 cycles/hash
+Small key speed test - 21-byte keys - 1061.69 cycles/hash
+Small key speed test - 22-byte keys - 1060.73 cycles/hash
+Small key speed test - 23-byte keys - 1060.55 cycles/hash
+Small key speed test - 24-byte keys - 1039.77 cycles/hash
+Small key speed test - 25-byte keys - 1036.95 cycles/hash
+Small key speed test - 26-byte keys - 1035.21 cycles/hash
+Small key speed test - 27-byte keys - 1032.66 cycles/hash
+Small key speed test - 28-byte keys - 1031.57 cycles/hash
+Small key speed test - 29-byte keys - 1029.82 cycles/hash
+Small key speed test - 30-byte keys - 1027.22 cycles/hash
+Small key speed test - 31-byte keys - 1026.60 cycles/hash
+Small key speed test - 32-byte keys - 1027.58 cycles/hash
+Average 1065.273 cycles/hash
+Average, weighted by key length freq. 1069.103 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 1079.338 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1522.761 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1418.453 cycles/op (5.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1358.096 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 1302.594 cycles/op (4.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 225.898502 seconds
--- Testing rmd256 "RIPEMD-256" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.127 bytes/cycle - 364.34 MiB/sec @ 3 ghz
-Alignment 6 - 0.127 bytes/cycle - 364.77 MiB/sec @ 3 ghz
-Alignment 5 - 0.128 bytes/cycle - 365.25 MiB/sec @ 3 ghz
-Alignment 4 - 0.128 bytes/cycle - 365.31 MiB/sec @ 3 ghz
-Alignment 3 - 0.128 bytes/cycle - 365.17 MiB/sec @ 3 ghz
-Alignment 2 - 0.127 bytes/cycle - 364.31 MiB/sec @ 3 ghz
-Alignment 1 - 0.127 bytes/cycle - 364.45 MiB/sec @ 3 ghz
-Alignment 0 - 0.128 bytes/cycle - 364.88 MiB/sec @ 3 ghz
-Average - 0.128 bytes/cycle - 364.81 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 608.04 cycles/hash
-Small key speed test - 2-byte keys - 609.78 cycles/hash
-Small key speed test - 3-byte keys - 606.02 cycles/hash
-Small key speed test - 4-byte keys - 605.01 cycles/hash
-Small key speed test - 5-byte keys - 603.16 cycles/hash
-Small key speed test - 6-byte keys - 600.37 cycles/hash
-Small key speed test - 7-byte keys - 601.97 cycles/hash
-Small key speed test - 8-byte keys - 599.04 cycles/hash
-Small key speed test - 9-byte keys - 597.05 cycles/hash
-Small key speed test - 10-byte keys - 596.67 cycles/hash
-Small key speed test - 11-byte keys - 594.71 cycles/hash
-Small key speed test - 12-byte keys - 596.09 cycles/hash
-Small key speed test - 13-byte keys - 593.25 cycles/hash
-Small key speed test - 14-byte keys - 597.60 cycles/hash
-Small key speed test - 15-byte keys - 591.62 cycles/hash
-Small key speed test - 16-byte keys - 594.37 cycles/hash
-Small key speed test - 17-byte keys - 601.47 cycles/hash
-Small key speed test - 18-byte keys - 576.82 cycles/hash
-Small key speed test - 19-byte keys - 571.06 cycles/hash
-Small key speed test - 20-byte keys - 575.85 cycles/hash
-Small key speed test - 21-byte keys - 570.71 cycles/hash
-Small key speed test - 22-byte keys - 570.03 cycles/hash
-Small key speed test - 23-byte keys - 566.30 cycles/hash
-Small key speed test - 24-byte keys - 564.69 cycles/hash
-Small key speed test - 25-byte keys - 564.85 cycles/hash
-Small key speed test - 26-byte keys - 568.82 cycles/hash
-Small key speed test - 27-byte keys - 560.22 cycles/hash
-Small key speed test - 28-byte keys - 562.20 cycles/hash
-Small key speed test - 29-byte keys - 560.46 cycles/hash
-Small key speed test - 30-byte keys - 564.42 cycles/hash
-Small key speed test - 31-byte keys - 558.05 cycles/hash
-Average 584.861 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1090.584 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 999.505 cycles/op (11.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 907.224 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 835.022 cycles/op (10.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 119.503872 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x8753bf2381c - 0x8753bf237b0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.130 bytes/cycle - 372.55 MiB/sec @ 3 ghz
+Alignment 6 - 0.130 bytes/cycle - 371.17 MiB/sec @ 3 ghz
+Alignment 5 - 0.128 bytes/cycle - 365.39 MiB/sec @ 3 ghz
+Alignment 4 - 0.127 bytes/cycle - 364.42 MiB/sec @ 3 ghz
+Alignment 3 - 0.127 bytes/cycle - 364.74 MiB/sec @ 3 ghz
+Alignment 2 - 0.127 bytes/cycle - 364.26 MiB/sec @ 3 ghz
+Alignment 1 - 0.127 bytes/cycle - 363.51 MiB/sec @ 3 ghz
+Alignment 0 - 0.127 bytes/cycle - 363.63 MiB/sec @ 3 ghz
+Average - 0.128 bytes/cycle - 366.21 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 643.49 cycles/hash
+Small key speed test - 2-byte keys - 638.83 cycles/hash
+Small key speed test - 3-byte keys - 636.72 cycles/hash
+Small key speed test - 4-byte keys - 637.79 cycles/hash
+Small key speed test - 5-byte keys - 639.08 cycles/hash
+Small key speed test - 6-byte keys - 637.19 cycles/hash
+Small key speed test - 7-byte keys - 638.28 cycles/hash
+Small key speed test - 8-byte keys - 636.35 cycles/hash
+Small key speed test - 9-byte keys - 635.53 cycles/hash
+Small key speed test - 10-byte keys - 634.00 cycles/hash
+Small key speed test - 11-byte keys - 633.51 cycles/hash
+Small key speed test - 12-byte keys - 632.55 cycles/hash
+Small key speed test - 13-byte keys - 631.00 cycles/hash
+Small key speed test - 14-byte keys - 628.00 cycles/hash
+Small key speed test - 15-byte keys - 628.22 cycles/hash
+Small key speed test - 16-byte keys - 626.00 cycles/hash
+Small key speed test - 17-byte keys - 626.58 cycles/hash
+Small key speed test - 18-byte keys - 609.75 cycles/hash
+Small key speed test - 19-byte keys - 608.49 cycles/hash
+Small key speed test - 20-byte keys - 608.68 cycles/hash
+Small key speed test - 21-byte keys - 606.99 cycles/hash
+Small key speed test - 22-byte keys - 606.00 cycles/hash
+Small key speed test - 23-byte keys - 605.00 cycles/hash
+Small key speed test - 24-byte keys - 594.35 cycles/hash
+Small key speed test - 25-byte keys - 592.17 cycles/hash
+Small key speed test - 26-byte keys - 586.78 cycles/hash
+Small key speed test - 27-byte keys - 589.07 cycles/hash
+Small key speed test - 28-byte keys - 586.43 cycles/hash
+Small key speed test - 29-byte keys - 581.98 cycles/hash
+Small key speed test - 30-byte keys - 580.12 cycles/hash
+Small key speed test - 31-byte keys - 578.55 cycles/hash
+Small key speed test - 32-byte keys - 574.92 cycles/hash
+Average 615.387 cycles/hash
+Average, weighted by key length freq. 619.529 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 630.614 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1055.951 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 952.620 cycles/op (7.0 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 895.090 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 830.039 cycles/op (7.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 129.896195 seconds
+--- Testing edonr224 "EDON-R 224" GOOD
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x8e2169c3470 - 0x8e2169c3404). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.302 bytes/cycle - 864.04 MiB/sec @ 3 ghz
+Alignment 6 - 0.301 bytes/cycle - 861.13 MiB/sec @ 3 ghz
+Alignment 5 - 0.300 bytes/cycle - 859.42 MiB/sec @ 3 ghz
+Alignment 4 - 0.303 bytes/cycle - 866.84 MiB/sec @ 3 ghz
+Alignment 3 - 0.302 bytes/cycle - 863.44 MiB/sec @ 3 ghz
+Alignment 2 - 0.302 bytes/cycle - 863.47 MiB/sec @ 3 ghz
+Alignment 1 - 0.302 bytes/cycle - 863.45 MiB/sec @ 3 ghz
+Alignment 0 - 0.304 bytes/cycle - 868.35 MiB/sec @ 3 ghz
+Average - 0.302 bytes/cycle - 863.77 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 306.00 cycles/hash
+Small key speed test - 2-byte keys - 311.00 cycles/hash
+Small key speed test - 3-byte keys - 312.92 cycles/hash
+Small key speed test - 4-byte keys - 303.95 cycles/hash
+Small key speed test - 5-byte keys - 306.97 cycles/hash
+Small key speed test - 6-byte keys - 307.63 cycles/hash
+Small key speed test - 7-byte keys - 307.72 cycles/hash
+Small key speed test - 8-byte keys - 304.00 cycles/hash
+Small key speed test - 9-byte keys - 303.00 cycles/hash
+Small key speed test - 10-byte keys - 303.55 cycles/hash
+Small key speed test - 11-byte keys - 303.48 cycles/hash
+Small key speed test - 12-byte keys - 304.59 cycles/hash
+Small key speed test - 13-byte keys - 307.19 cycles/hash
+Small key speed test - 14-byte keys - 307.62 cycles/hash
+Small key speed test - 15-byte keys - 307.64 cycles/hash
+Small key speed test - 16-byte keys - 303.26 cycles/hash
+Small key speed test - 17-byte keys - 315.00 cycles/hash
+Small key speed test - 18-byte keys - 315.40 cycles/hash
+Small key speed test - 19-byte keys - 315.00 cycles/hash
+Small key speed test - 20-byte keys - 300.00 cycles/hash
+Small key speed test - 21-byte keys - 301.00 cycles/hash
+Small key speed test - 22-byte keys - 301.00 cycles/hash
+Small key speed test - 23-byte keys - 301.00 cycles/hash
+Small key speed test - 24-byte keys - 299.82 cycles/hash
+Small key speed test - 25-byte keys - 300.29 cycles/hash
+Small key speed test - 26-byte keys - 300.91 cycles/hash
+Small key speed test - 27-byte keys - 300.36 cycles/hash
+Small key speed test - 28-byte keys - 299.97 cycles/hash
+Small key speed test - 29-byte keys - 300.00 cycles/hash
+Small key speed test - 30-byte keys - 300.00 cycles/hash
+Small key speed test - 31-byte keys - 300.00 cycles/hash
+Small key speed test - 32-byte keys - 302.00 cycles/hash
+Average 304.758 cycles/hash
+Average, weighted by key length freq. 305.677 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 303.938 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 703.215 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 620.402 cycles/op (3.7 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 560.115 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 496.662 cycles/op (3.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 64.787499 seconds
+--- Testing edonr256 "EDON-R 256" GOOD
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 72 (0x48) ticks (0x91861d0fa60 - 0x91861d0fa18). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.278 bytes/cycle - 796.77 MiB/sec @ 3 ghz
+Alignment 6 - 0.307 bytes/cycle - 877.99 MiB/sec @ 3 ghz
+Alignment 5 - 0.307 bytes/cycle - 878.11 MiB/sec @ 3 ghz
+Alignment 4 - 0.309 bytes/cycle - 885.43 MiB/sec @ 3 ghz
+Alignment 3 - 0.308 bytes/cycle - 880.28 MiB/sec @ 3 ghz
+Alignment 2 - 0.308 bytes/cycle - 880.31 MiB/sec @ 3 ghz
+Alignment 1 - 0.308 bytes/cycle - 880.31 MiB/sec @ 3 ghz
+Alignment 0 - 0.311 bytes/cycle - 888.54 MiB/sec @ 3 ghz
+Average - 0.304 bytes/cycle - 870.97 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 293.12 cycles/hash
+Small key speed test - 2-byte keys - 299.35 cycles/hash
+Small key speed test - 3-byte keys - 299.60 cycles/hash
+Small key speed test - 4-byte keys - 290.81 cycles/hash
+Small key speed test - 5-byte keys - 293.20 cycles/hash
+Small key speed test - 6-byte keys - 293.44 cycles/hash
+Small key speed test - 7-byte keys - 293.24 cycles/hash
+Small key speed test - 8-byte keys - 289.37 cycles/hash
+Small key speed test - 9-byte keys - 294.00 cycles/hash
+Small key speed test - 10-byte keys - 294.00 cycles/hash
+Small key speed test - 11-byte keys - 295.34 cycles/hash
+Small key speed test - 12-byte keys - 289.65 cycles/hash
+Small key speed test - 13-byte keys - 295.63 cycles/hash
+Small key speed test - 14-byte keys - 294.69 cycles/hash
+Small key speed test - 15-byte keys - 295.01 cycles/hash
+Small key speed test - 16-byte keys - 296.43 cycles/hash
+Small key speed test - 17-byte keys - 309.64 cycles/hash
+Small key speed test - 18-byte keys - 310.80 cycles/hash
+Small key speed test - 19-byte keys - 310.52 cycles/hash
+Small key speed test - 20-byte keys - 295.97 cycles/hash
+Small key speed test - 21-byte keys - 296.46 cycles/hash
+Small key speed test - 22-byte keys - 296.98 cycles/hash
+Small key speed test - 23-byte keys - 297.10 cycles/hash
+Small key speed test - 24-byte keys - 294.42 cycles/hash
+Small key speed test - 25-byte keys - 296.35 cycles/hash
+Small key speed test - 26-byte keys - 295.86 cycles/hash
+Small key speed test - 27-byte keys - 296.38 cycles/hash
+Small key speed test - 28-byte keys - 294.99 cycles/hash
+Small key speed test - 29-byte keys - 295.53 cycles/hash
+Small key speed test - 30-byte keys - 294.74 cycles/hash
+Small key speed test - 31-byte keys - 295.68 cycles/hash
+Small key speed test - 32-byte keys - 296.50 cycles/hash
+Average 296.400 cycles/hash
+Average, weighted by key length freq. 297.382 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 294.783 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 712.578 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 623.047 cycles/op (2.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 558.596 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 517.823 cycles/op (5.5 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 63.241096 seconds
--- Testing blake3_c "BLAKE3 c" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.451 bytes/cycle - 1289.96 MiB/sec @ 3 ghz
-Alignment 6 - 0.450 bytes/cycle - 1288.79 MiB/sec @ 3 ghz
-Alignment 5 - 0.450 bytes/cycle - 1287.22 MiB/sec @ 3 ghz
-Alignment 4 - 0.450 bytes/cycle - 1288.15 MiB/sec @ 3 ghz
-Alignment 3 - 0.450 bytes/cycle - 1288.33 MiB/sec @ 3 ghz
-Alignment 2 - 0.450 bytes/cycle - 1287.48 MiB/sec @ 3 ghz
-Alignment 1 - 0.451 bytes/cycle - 1289.84 MiB/sec @ 3 ghz
-Alignment 0 - 0.451 bytes/cycle - 1290.96 MiB/sec @ 3 ghz
-Average - 0.450 bytes/cycle - 1288.84 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 351.02 cycles/hash
-Small key speed test - 2-byte keys - 357.73 cycles/hash
-Small key speed test - 3-byte keys - 358.20 cycles/hash
-Small key speed test - 4-byte keys - 357.46 cycles/hash
-Small key speed test - 5-byte keys - 357.27 cycles/hash
-Small key speed test - 6-byte keys - 357.23 cycles/hash
-Small key speed test - 7-byte keys - 357.34 cycles/hash
-Small key speed test - 8-byte keys - 351.12 cycles/hash
-Small key speed test - 9-byte keys - 358.50 cycles/hash
-Small key speed test - 10-byte keys - 358.37 cycles/hash
-Small key speed test - 11-byte keys - 357.65 cycles/hash
-Small key speed test - 12-byte keys - 358.22 cycles/hash
-Small key speed test - 13-byte keys - 358.11 cycles/hash
-Small key speed test - 14-byte keys - 358.24 cycles/hash
-Small key speed test - 15-byte keys - 358.50 cycles/hash
-Small key speed test - 16-byte keys - 358.80 cycles/hash
-Small key speed test - 17-byte keys - 358.36 cycles/hash
-Small key speed test - 18-byte keys - 358.13 cycles/hash
-Small key speed test - 19-byte keys - 358.24 cycles/hash
-Small key speed test - 20-byte keys - 357.94 cycles/hash
-Small key speed test - 21-byte keys - 358.52 cycles/hash
-Small key speed test - 22-byte keys - 358.38 cycles/hash
-Small key speed test - 23-byte keys - 358.30 cycles/hash
-Small key speed test - 24-byte keys - 358.42 cycles/hash
-Small key speed test - 25-byte keys - 358.11 cycles/hash
-Small key speed test - 26-byte keys - 358.19 cycles/hash
-Small key speed test - 27-byte keys - 358.40 cycles/hash
-Small key speed test - 28-byte keys - 358.67 cycles/hash
-Small key speed test - 29-byte keys - 358.47 cycles/hash
-Small key speed test - 30-byte keys - 357.83 cycles/hash
-Small key speed test - 31-byte keys - 358.55 cycles/hash
-Average 357.687 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 811.181 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 723.168 cycles/op (5.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 632.917 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 582.893 cycles/op (6.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 70.498160 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x94d62935ab0 - 0x94d62935a44). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.452 bytes/cycle - 1292.25 MiB/sec @ 3 ghz
+Alignment 6 - 0.452 bytes/cycle - 1292.20 MiB/sec @ 3 ghz
+Alignment 5 - 0.453 bytes/cycle - 1297.25 MiB/sec @ 3 ghz
+Alignment 4 - 0.454 bytes/cycle - 1300.28 MiB/sec @ 3 ghz
+Alignment 3 - 0.454 bytes/cycle - 1299.73 MiB/sec @ 3 ghz
+Alignment 2 - 0.454 bytes/cycle - 1299.64 MiB/sec @ 3 ghz
+Alignment 1 - 0.454 bytes/cycle - 1299.30 MiB/sec @ 3 ghz
+Alignment 0 - 0.456 bytes/cycle - 1303.66 MiB/sec @ 3 ghz
+Average - 0.454 bytes/cycle - 1298.04 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 346.69 cycles/hash
+Small key speed test - 2-byte keys - 350.69 cycles/hash
+Small key speed test - 3-byte keys - 350.27 cycles/hash
+Small key speed test - 4-byte keys - 351.05 cycles/hash
+Small key speed test - 5-byte keys - 352.26 cycles/hash
+Small key speed test - 6-byte keys - 353.12 cycles/hash
+Small key speed test - 7-byte keys - 352.16 cycles/hash
+Small key speed test - 8-byte keys - 347.18 cycles/hash
+Small key speed test - 9-byte keys - 352.79 cycles/hash
+Small key speed test - 10-byte keys - 353.09 cycles/hash
+Small key speed test - 11-byte keys - 352.76 cycles/hash
+Small key speed test - 12-byte keys - 352.86 cycles/hash
+Small key speed test - 13-byte keys - 353.16 cycles/hash
+Small key speed test - 14-byte keys - 352.95 cycles/hash
+Small key speed test - 15-byte keys - 353.27 cycles/hash
+Small key speed test - 16-byte keys - 352.62 cycles/hash
+Small key speed test - 17-byte keys - 352.69 cycles/hash
+Small key speed test - 18-byte keys - 352.67 cycles/hash
+Small key speed test - 19-byte keys - 352.81 cycles/hash
+Small key speed test - 20-byte keys - 352.78 cycles/hash
+Small key speed test - 21-byte keys - 358.23 cycles/hash
+Small key speed test - 22-byte keys - 358.08 cycles/hash
+Small key speed test - 23-byte keys - 358.34 cycles/hash
+Small key speed test - 24-byte keys - 359.10 cycles/hash
+Small key speed test - 25-byte keys - 359.16 cycles/hash
+Small key speed test - 26-byte keys - 358.98 cycles/hash
+Small key speed test - 27-byte keys - 359.02 cycles/hash
+Small key speed test - 28-byte keys - 358.96 cycles/hash
+Small key speed test - 29-byte keys - 359.10 cycles/hash
+Small key speed test - 30-byte keys - 359.27 cycles/hash
+Small key speed test - 31-byte keys - 354.04 cycles/hash
+Small key speed test - 32-byte keys - 355.77 cycles/hash
+Average 354.247 cycles/hash
+Average, weighted by key length freq. 353.982 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 352.567 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 752.386 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 675.797 cycles/op (3.9 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 603.470 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 563.632 cycles/op (3.5 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 71.559289 seconds
--- Testing blake2s-128 "blake2s-128" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.118 bytes/cycle - 336.90 MiB/sec @ 3 ghz
-Alignment 6 - 0.117 bytes/cycle - 335.03 MiB/sec @ 3 ghz
-Alignment 5 - 0.118 bytes/cycle - 336.45 MiB/sec @ 3 ghz
-Alignment 4 - 0.118 bytes/cycle - 336.74 MiB/sec @ 3 ghz
-Alignment 3 - 0.117 bytes/cycle - 336.06 MiB/sec @ 3 ghz
-Alignment 2 - 0.118 bytes/cycle - 336.49 MiB/sec @ 3 ghz
-Alignment 1 - 0.117 bytes/cycle - 336.12 MiB/sec @ 3 ghz
-Alignment 0 - 0.118 bytes/cycle - 336.33 MiB/sec @ 3 ghz
-Average - 0.118 bytes/cycle - 336.27 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 627.65 cycles/hash
-Small key speed test - 2-byte keys - 629.55 cycles/hash
-Small key speed test - 3-byte keys - 630.05 cycles/hash
-Small key speed test - 4-byte keys - 629.01 cycles/hash
-Small key speed test - 5-byte keys - 632.17 cycles/hash
-Small key speed test - 6-byte keys - 624.46 cycles/hash
-Small key speed test - 7-byte keys - 622.03 cycles/hash
-Small key speed test - 8-byte keys - 638.48 cycles/hash
-Small key speed test - 9-byte keys - 638.75 cycles/hash
-Small key speed test - 10-byte keys - 640.13 cycles/hash
-Small key speed test - 11-byte keys - 639.23 cycles/hash
-Small key speed test - 12-byte keys - 639.48 cycles/hash
-Small key speed test - 13-byte keys - 638.76 cycles/hash
-Small key speed test - 14-byte keys - 638.87 cycles/hash
-Small key speed test - 15-byte keys - 638.47 cycles/hash
-Small key speed test - 16-byte keys - 625.98 cycles/hash
-Small key speed test - 17-byte keys - 646.63 cycles/hash
-Small key speed test - 18-byte keys - 646.59 cycles/hash
-Small key speed test - 19-byte keys - 645.46 cycles/hash
-Small key speed test - 20-byte keys - 644.19 cycles/hash
-Small key speed test - 21-byte keys - 637.56 cycles/hash
-Small key speed test - 22-byte keys - 637.66 cycles/hash
-Small key speed test - 23-byte keys - 637.73 cycles/hash
-Small key speed test - 24-byte keys - 643.33 cycles/hash
-Small key speed test - 25-byte keys - 644.56 cycles/hash
-Small key speed test - 26-byte keys - 643.19 cycles/hash
-Small key speed test - 27-byte keys - 645.02 cycles/hash
-Small key speed test - 28-byte keys - 643.30 cycles/hash
-Small key speed test - 29-byte keys - 642.17 cycles/hash
-Small key speed test - 30-byte keys - 641.77 cycles/hash
-Small key speed test - 31-byte keys - 644.11 cycles/hash
-Average 637.947 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1095.484 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 974.947 cycles/op (20.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 896.299 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 832.638 cycles/op (15.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 130.018843 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x9895a602254 - 0x9895a6021e8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 6 - 0.120 bytes/cycle - 342.12 MiB/sec @ 3 ghz
+Alignment 5 - 0.120 bytes/cycle - 342.10 MiB/sec @ 3 ghz
+Alignment 4 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 3 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 2 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 1 - 0.120 bytes/cycle - 343.24 MiB/sec @ 3 ghz
+Alignment 0 - 0.120 bytes/cycle - 343.33 MiB/sec @ 3 ghz
+Average - 0.120 bytes/cycle - 342.97 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 618.76 cycles/hash
+Small key speed test - 2-byte keys - 620.18 cycles/hash
+Small key speed test - 3-byte keys - 621.20 cycles/hash
+Small key speed test - 4-byte keys - 619.45 cycles/hash
+Small key speed test - 5-byte keys - 627.85 cycles/hash
+Small key speed test - 6-byte keys - 623.64 cycles/hash
+Small key speed test - 7-byte keys - 622.54 cycles/hash
+Small key speed test - 8-byte keys - 640.83 cycles/hash
+Small key speed test - 9-byte keys - 639.96 cycles/hash
+Small key speed test - 10-byte keys - 641.56 cycles/hash
+Small key speed test - 11-byte keys - 641.14 cycles/hash
+Small key speed test - 12-byte keys - 642.18 cycles/hash
+Small key speed test - 13-byte keys - 640.79 cycles/hash
+Small key speed test - 14-byte keys - 641.05 cycles/hash
+Small key speed test - 15-byte keys - 641.86 cycles/hash
+Small key speed test - 16-byte keys - 629.39 cycles/hash
+Small key speed test - 17-byte keys - 647.10 cycles/hash
+Small key speed test - 18-byte keys - 649.18 cycles/hash
+Small key speed test - 19-byte keys - 649.29 cycles/hash
+Small key speed test - 20-byte keys - 642.98 cycles/hash
+Small key speed test - 21-byte keys - 638.67 cycles/hash
+Small key speed test - 22-byte keys - 639.40 cycles/hash
+Small key speed test - 23-byte keys - 638.05 cycles/hash
+Small key speed test - 24-byte keys - 640.20 cycles/hash
+Small key speed test - 25-byte keys - 645.43 cycles/hash
+Small key speed test - 26-byte keys - 644.98 cycles/hash
+Small key speed test - 27-byte keys - 644.73 cycles/hash
+Small key speed test - 28-byte keys - 643.45 cycles/hash
+Small key speed test - 29-byte keys - 645.34 cycles/hash
+Small key speed test - 30-byte keys - 652.75 cycles/hash
+Small key speed test - 31-byte keys - 653.12 cycles/hash
+Small key speed test - 32-byte keys - 655.42 cycles/hash
+Average 638.826 cycles/hash
+Average, weighted by key length freq. 641.703 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 635.196 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1034.560 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 943.845 cycles/op (5.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 880.030 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 814.865 cycles/op (3.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 135.162536 seconds
--- Testing blake2s-160 "blake2s-160" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.119 bytes/cycle - 340.30 MiB/sec @ 3 ghz
-Alignment 6 - 0.119 bytes/cycle - 339.21 MiB/sec @ 3 ghz
-Alignment 5 - 0.119 bytes/cycle - 341.04 MiB/sec @ 3 ghz
-Alignment 4 - 0.119 bytes/cycle - 341.02 MiB/sec @ 3 ghz
-Alignment 3 - 0.119 bytes/cycle - 341.06 MiB/sec @ 3 ghz
-Alignment 2 - 0.119 bytes/cycle - 341.10 MiB/sec @ 3 ghz
-Alignment 1 - 0.119 bytes/cycle - 341.14 MiB/sec @ 3 ghz
-Alignment 0 - 0.119 bytes/cycle - 341.18 MiB/sec @ 3 ghz
-Average - 0.119 bytes/cycle - 340.76 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 641.78 cycles/hash
-Small key speed test - 2-byte keys - 643.76 cycles/hash
-Small key speed test - 3-byte keys - 645.00 cycles/hash
-Small key speed test - 4-byte keys - 642.52 cycles/hash
-Small key speed test - 5-byte keys - 646.82 cycles/hash
-Small key speed test - 6-byte keys - 649.32 cycles/hash
-Small key speed test - 7-byte keys - 646.54 cycles/hash
-Small key speed test - 8-byte keys - 664.31 cycles/hash
-Small key speed test - 9-byte keys - 664.59 cycles/hash
-Small key speed test - 10-byte keys - 665.56 cycles/hash
-Small key speed test - 11-byte keys - 664.40 cycles/hash
-Small key speed test - 12-byte keys - 663.77 cycles/hash
-Small key speed test - 13-byte keys - 664.33 cycles/hash
-Small key speed test - 14-byte keys - 664.40 cycles/hash
-Small key speed test - 15-byte keys - 664.84 cycles/hash
-Small key speed test - 16-byte keys - 653.34 cycles/hash
-Small key speed test - 17-byte keys - 671.51 cycles/hash
-Small key speed test - 18-byte keys - 672.22 cycles/hash
-Small key speed test - 19-byte keys - 672.77 cycles/hash
-Small key speed test - 20-byte keys - 667.76 cycles/hash
-Small key speed test - 21-byte keys - 661.72 cycles/hash
-Small key speed test - 22-byte keys - 661.00 cycles/hash
-Small key speed test - 23-byte keys - 662.95 cycles/hash
-Small key speed test - 24-byte keys - 667.51 cycles/hash
-Small key speed test - 25-byte keys - 667.97 cycles/hash
-Small key speed test - 26-byte keys - 668.93 cycles/hash
-Small key speed test - 27-byte keys - 669.00 cycles/hash
-Small key speed test - 28-byte keys - 667.61 cycles/hash
-Small key speed test - 29-byte keys - 667.70 cycles/hash
-Small key speed test - 30-byte keys - 668.06 cycles/hash
-Small key speed test - 31-byte keys - 666.73 cycles/hash
-Average 661.249 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1131.011 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1034.212 cycles/op (12.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 939.299 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 873.833 cycles/op (7.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 133.668237 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x9fa9eebce24 - 0x9fa9eebcdb8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.119 bytes/cycle - 341.78 MiB/sec @ 3 ghz
+Alignment 6 - 0.119 bytes/cycle - 341.77 MiB/sec @ 3 ghz
+Alignment 5 - 0.119 bytes/cycle - 341.78 MiB/sec @ 3 ghz
+Alignment 4 - 0.119 bytes/cycle - 341.77 MiB/sec @ 3 ghz
+Alignment 3 - 0.119 bytes/cycle - 341.72 MiB/sec @ 3 ghz
+Alignment 2 - 0.119 bytes/cycle - 341.76 MiB/sec @ 3 ghz
+Alignment 1 - 0.119 bytes/cycle - 341.78 MiB/sec @ 3 ghz
+Alignment 0 - 0.119 bytes/cycle - 341.54 MiB/sec @ 3 ghz
+Average - 0.119 bytes/cycle - 341.74 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 640.15 cycles/hash
+Small key speed test - 2-byte keys - 642.06 cycles/hash
+Small key speed test - 3-byte keys - 642.24 cycles/hash
+Small key speed test - 4-byte keys - 641.03 cycles/hash
+Small key speed test - 5-byte keys - 646.11 cycles/hash
+Small key speed test - 6-byte keys - 644.73 cycles/hash
+Small key speed test - 7-byte keys - 644.77 cycles/hash
+Small key speed test - 8-byte keys - 661.67 cycles/hash
+Small key speed test - 9-byte keys - 662.72 cycles/hash
+Small key speed test - 10-byte keys - 661.12 cycles/hash
+Small key speed test - 11-byte keys - 661.94 cycles/hash
+Small key speed test - 12-byte keys - 661.13 cycles/hash
+Small key speed test - 13-byte keys - 661.98 cycles/hash
+Small key speed test - 14-byte keys - 661.31 cycles/hash
+Small key speed test - 15-byte keys - 661.14 cycles/hash
+Small key speed test - 16-byte keys - 650.81 cycles/hash
+Small key speed test - 17-byte keys - 671.35 cycles/hash
+Small key speed test - 18-byte keys - 672.32 cycles/hash
+Small key speed test - 19-byte keys - 670.50 cycles/hash
+Small key speed test - 20-byte keys - 664.66 cycles/hash
+Small key speed test - 21-byte keys - 660.61 cycles/hash
+Small key speed test - 22-byte keys - 659.70 cycles/hash
+Small key speed test - 23-byte keys - 658.39 cycles/hash
+Small key speed test - 24-byte keys - 662.71 cycles/hash
+Small key speed test - 25-byte keys - 666.23 cycles/hash
+Small key speed test - 26-byte keys - 667.28 cycles/hash
+Small key speed test - 27-byte keys - 666.39 cycles/hash
+Small key speed test - 28-byte keys - 662.45 cycles/hash
+Small key speed test - 29-byte keys - 666.63 cycles/hash
+Small key speed test - 30-byte keys - 667.45 cycles/hash
+Small key speed test - 31-byte keys - 666.30 cycles/hash
+Small key speed test - 32-byte keys - 669.27 cycles/hash
+Average 659.286 cycles/hash
+Average, weighted by key length freq. 662.619 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 656.554 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1063.694 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 973.264 cycles/op (6.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 891.736 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 852.113 cycles/op (5.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 138.913449 seconds
--- Testing blake2s-224 "blake2s-224" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.117 bytes/cycle - 335.87 MiB/sec @ 3 ghz
-Alignment 6 - 0.118 bytes/cycle - 336.86 MiB/sec @ 3 ghz
-Alignment 5 - 0.118 bytes/cycle - 336.92 MiB/sec @ 3 ghz
-Alignment 4 - 0.117 bytes/cycle - 336.04 MiB/sec @ 3 ghz
-Alignment 3 - 0.118 bytes/cycle - 336.71 MiB/sec @ 3 ghz
-Alignment 2 - 0.118 bytes/cycle - 337.68 MiB/sec @ 3 ghz
-Alignment 1 - 0.118 bytes/cycle - 337.73 MiB/sec @ 3 ghz
-Alignment 0 - 0.118 bytes/cycle - 336.79 MiB/sec @ 3 ghz
-Average - 0.118 bytes/cycle - 336.83 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 649.14 cycles/hash
-Small key speed test - 2-byte keys - 651.38 cycles/hash
-Small key speed test - 3-byte keys - 650.20 cycles/hash
-Small key speed test - 4-byte keys - 651.21 cycles/hash
-Small key speed test - 5-byte keys - 655.76 cycles/hash
-Small key speed test - 6-byte keys - 653.54 cycles/hash
-Small key speed test - 7-byte keys - 656.84 cycles/hash
-Small key speed test - 8-byte keys - 671.60 cycles/hash
-Small key speed test - 9-byte keys - 671.13 cycles/hash
-Small key speed test - 10-byte keys - 670.88 cycles/hash
-Small key speed test - 11-byte keys - 669.70 cycles/hash
-Small key speed test - 12-byte keys - 670.07 cycles/hash
-Small key speed test - 13-byte keys - 670.90 cycles/hash
-Small key speed test - 14-byte keys - 670.63 cycles/hash
-Small key speed test - 15-byte keys - 670.05 cycles/hash
-Small key speed test - 16-byte keys - 658.14 cycles/hash
-Small key speed test - 17-byte keys - 674.24 cycles/hash
-Small key speed test - 18-byte keys - 674.09 cycles/hash
-Small key speed test - 19-byte keys - 675.64 cycles/hash
-Small key speed test - 20-byte keys - 668.11 cycles/hash
-Small key speed test - 21-byte keys - 670.85 cycles/hash
-Small key speed test - 22-byte keys - 671.23 cycles/hash
-Small key speed test - 23-byte keys - 668.71 cycles/hash
-Small key speed test - 24-byte keys - 672.39 cycles/hash
-Small key speed test - 25-byte keys - 672.62 cycles/hash
-Small key speed test - 26-byte keys - 671.73 cycles/hash
-Small key speed test - 27-byte keys - 671.65 cycles/hash
-Small key speed test - 28-byte keys - 670.09 cycles/hash
-Small key speed test - 29-byte keys - 672.45 cycles/hash
-Small key speed test - 30-byte keys - 671.02 cycles/hash
-Small key speed test - 31-byte keys - 671.33 cycles/hash
-Average 666.687 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1097.081 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 985.735 cycles/op (13.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 917.258 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 836.978 cycles/op (6.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 135.069239 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0xa6f08318a20 - 0xa6f083189b4). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.118 bytes/cycle - 338.31 MiB/sec @ 3 ghz
+Alignment 6 - 0.118 bytes/cycle - 338.34 MiB/sec @ 3 ghz
+Alignment 5 - 0.118 bytes/cycle - 338.70 MiB/sec @ 3 ghz
+Alignment 4 - 0.118 bytes/cycle - 338.69 MiB/sec @ 3 ghz
+Alignment 3 - 0.118 bytes/cycle - 338.69 MiB/sec @ 3 ghz
+Alignment 2 - 0.118 bytes/cycle - 338.70 MiB/sec @ 3 ghz
+Alignment 1 - 0.118 bytes/cycle - 338.70 MiB/sec @ 3 ghz
+Alignment 0 - 0.118 bytes/cycle - 338.79 MiB/sec @ 3 ghz
+Average - 0.118 bytes/cycle - 338.62 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 645.93 cycles/hash
+Small key speed test - 2-byte keys - 647.97 cycles/hash
+Small key speed test - 3-byte keys - 648.40 cycles/hash
+Small key speed test - 4-byte keys - 647.99 cycles/hash
+Small key speed test - 5-byte keys - 650.82 cycles/hash
+Small key speed test - 6-byte keys - 651.59 cycles/hash
+Small key speed test - 7-byte keys - 651.74 cycles/hash
+Small key speed test - 8-byte keys - 661.45 cycles/hash
+Small key speed test - 9-byte keys - 663.14 cycles/hash
+Small key speed test - 10-byte keys - 664.18 cycles/hash
+Small key speed test - 11-byte keys - 669.42 cycles/hash
+Small key speed test - 12-byte keys - 668.81 cycles/hash
+Small key speed test - 13-byte keys - 668.99 cycles/hash
+Small key speed test - 14-byte keys - 667.98 cycles/hash
+Small key speed test - 15-byte keys - 662.93 cycles/hash
+Small key speed test - 16-byte keys - 650.50 cycles/hash
+Small key speed test - 17-byte keys - 669.58 cycles/hash
+Small key speed test - 18-byte keys - 669.96 cycles/hash
+Small key speed test - 19-byte keys - 669.94 cycles/hash
+Small key speed test - 20-byte keys - 658.11 cycles/hash
+Small key speed test - 21-byte keys - 660.00 cycles/hash
+Small key speed test - 22-byte keys - 659.40 cycles/hash
+Small key speed test - 23-byte keys - 664.26 cycles/hash
+Small key speed test - 24-byte keys - 670.29 cycles/hash
+Small key speed test - 25-byte keys - 673.28 cycles/hash
+Small key speed test - 26-byte keys - 674.66 cycles/hash
+Small key speed test - 27-byte keys - 667.60 cycles/hash
+Small key speed test - 28-byte keys - 667.00 cycles/hash
+Small key speed test - 29-byte keys - 670.45 cycles/hash
+Small key speed test - 30-byte keys - 673.68 cycles/hash
+Small key speed test - 31-byte keys - 673.87 cycles/hash
+Small key speed test - 32-byte keys - 677.17 cycles/hash
+Average 663.159 cycles/hash
+Average, weighted by key length freq. 665.409 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 658.362 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1045.944 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 938.457 cycles/op (5.0 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 882.654 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 810.938 cycles/op (3.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 139.703371 seconds
--- Testing blake2s-256 "blake2s-256" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.119 bytes/cycle - 341.09 MiB/sec @ 3 ghz
-Alignment 6 - 0.120 bytes/cycle - 341.94 MiB/sec @ 3 ghz
-Alignment 5 - 0.119 bytes/cycle - 341.33 MiB/sec @ 3 ghz
-Alignment 4 - 0.120 bytes/cycle - 342.08 MiB/sec @ 3 ghz
-Alignment 3 - 0.120 bytes/cycle - 343.29 MiB/sec @ 3 ghz
-Alignment 2 - 0.119 bytes/cycle - 341.75 MiB/sec @ 3 ghz
-Alignment 1 - 0.120 bytes/cycle - 342.19 MiB/sec @ 3 ghz
-Alignment 0 - 0.120 bytes/cycle - 342.61 MiB/sec @ 3 ghz
-Average - 0.120 bytes/cycle - 342.04 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 626.55 cycles/hash
-Small key speed test - 2-byte keys - 629.93 cycles/hash
-Small key speed test - 3-byte keys - 629.21 cycles/hash
-Small key speed test - 4-byte keys - 631.46 cycles/hash
-Small key speed test - 5-byte keys - 630.19 cycles/hash
-Small key speed test - 6-byte keys - 631.70 cycles/hash
-Small key speed test - 7-byte keys - 629.84 cycles/hash
-Small key speed test - 8-byte keys - 646.79 cycles/hash
-Small key speed test - 9-byte keys - 646.78 cycles/hash
-Small key speed test - 10-byte keys - 646.66 cycles/hash
-Small key speed test - 11-byte keys - 646.99 cycles/hash
-Small key speed test - 12-byte keys - 646.74 cycles/hash
-Small key speed test - 13-byte keys - 647.05 cycles/hash
-Small key speed test - 14-byte keys - 646.82 cycles/hash
-Small key speed test - 15-byte keys - 647.00 cycles/hash
-Small key speed test - 16-byte keys - 636.45 cycles/hash
-Small key speed test - 17-byte keys - 649.37 cycles/hash
-Small key speed test - 18-byte keys - 649.17 cycles/hash
-Small key speed test - 19-byte keys - 646.83 cycles/hash
-Small key speed test - 20-byte keys - 644.04 cycles/hash
-Small key speed test - 21-byte keys - 648.49 cycles/hash
-Small key speed test - 22-byte keys - 647.34 cycles/hash
-Small key speed test - 23-byte keys - 647.21 cycles/hash
-Small key speed test - 24-byte keys - 648.66 cycles/hash
-Small key speed test - 25-byte keys - 652.49 cycles/hash
-Small key speed test - 26-byte keys - 652.56 cycles/hash
-Small key speed test - 27-byte keys - 652.75 cycles/hash
-Small key speed test - 28-byte keys - 647.70 cycles/hash
-Small key speed test - 29-byte keys - 651.83 cycles/hash
-Small key speed test - 30-byte keys - 646.91 cycles/hash
-Small key speed test - 31-byte keys - 652.26 cycles/hash
-Average 643.800 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1074.671 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 975.134 cycles/op (12.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 889.151 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 832.699 cycles/op (7.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 130.637613 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0xae41add46fc - 0xae41add4690). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.119 bytes/cycle - 341.61 MiB/sec @ 3 ghz
+Alignment 6 - 0.119 bytes/cycle - 341.64 MiB/sec @ 3 ghz
+Alignment 5 - 0.119 bytes/cycle - 341.68 MiB/sec @ 3 ghz
+Alignment 4 - 0.119 bytes/cycle - 341.66 MiB/sec @ 3 ghz
+Alignment 3 - 0.119 bytes/cycle - 341.60 MiB/sec @ 3 ghz
+Alignment 2 - 0.119 bytes/cycle - 341.65 MiB/sec @ 3 ghz
+Alignment 1 - 0.119 bytes/cycle - 341.64 MiB/sec @ 3 ghz
+Alignment 0 - 0.119 bytes/cycle - 341.72 MiB/sec @ 3 ghz
+Average - 0.119 bytes/cycle - 341.65 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 627.32 cycles/hash
+Small key speed test - 2-byte keys - 630.88 cycles/hash
+Small key speed test - 3-byte keys - 630.87 cycles/hash
+Small key speed test - 4-byte keys - 627.29 cycles/hash
+Small key speed test - 5-byte keys - 634.24 cycles/hash
+Small key speed test - 6-byte keys - 636.22 cycles/hash
+Small key speed test - 7-byte keys - 635.78 cycles/hash
+Small key speed test - 8-byte keys - 645.62 cycles/hash
+Small key speed test - 9-byte keys - 649.18 cycles/hash
+Small key speed test - 10-byte keys - 649.49 cycles/hash
+Small key speed test - 11-byte keys - 649.46 cycles/hash
+Small key speed test - 12-byte keys - 649.13 cycles/hash
+Small key speed test - 13-byte keys - 649.13 cycles/hash
+Small key speed test - 14-byte keys - 649.42 cycles/hash
+Small key speed test - 15-byte keys - 649.51 cycles/hash
+Small key speed test - 16-byte keys - 647.98 cycles/hash
+Small key speed test - 17-byte keys - 651.77 cycles/hash
+Small key speed test - 18-byte keys - 649.52 cycles/hash
+Small key speed test - 19-byte keys - 651.78 cycles/hash
+Small key speed test - 20-byte keys - 652.20 cycles/hash
+Small key speed test - 21-byte keys - 650.49 cycles/hash
+Small key speed test - 22-byte keys - 650.63 cycles/hash
+Small key speed test - 23-byte keys - 650.64 cycles/hash
+Small key speed test - 24-byte keys - 647.54 cycles/hash
+Small key speed test - 25-byte keys - 649.15 cycles/hash
+Small key speed test - 26-byte keys - 646.30 cycles/hash
+Small key speed test - 27-byte keys - 645.98 cycles/hash
+Small key speed test - 28-byte keys - 655.95 cycles/hash
+Small key speed test - 29-byte keys - 646.03 cycles/hash
+Small key speed test - 30-byte keys - 645.84 cycles/hash
+Small key speed test - 31-byte keys - 648.16 cycles/hash
+Small key speed test - 32-byte keys - 661.09 cycles/hash
+Average 645.769 cycles/hash
+Average, weighted by key length freq. 649.359 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 647.666 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1068.526 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 979.661 cycles/op (5.6 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 873.958 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 817.152 cycles/op (3.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 136.576020 seconds
--- Testing blake2s-256_64 "blake2s-256, low 64 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.118 bytes/cycle - 336.92 MiB/sec @ 3 ghz
-Alignment 6 - 0.118 bytes/cycle - 336.87 MiB/sec @ 3 ghz
-Alignment 5 - 0.118 bytes/cycle - 336.41 MiB/sec @ 3 ghz
-Alignment 4 - 0.118 bytes/cycle - 336.25 MiB/sec @ 3 ghz
-Alignment 3 - 0.118 bytes/cycle - 337.71 MiB/sec @ 3 ghz
-Alignment 2 - 0.117 bytes/cycle - 335.53 MiB/sec @ 3 ghz
-Alignment 1 - 0.117 bytes/cycle - 335.41 MiB/sec @ 3 ghz
-Alignment 0 - 0.117 bytes/cycle - 334.74 MiB/sec @ 3 ghz
-Average - 0.118 bytes/cycle - 336.23 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 645.21 cycles/hash
-Small key speed test - 2-byte keys - 653.34 cycles/hash
-Small key speed test - 3-byte keys - 653.40 cycles/hash
-Small key speed test - 4-byte keys - 652.37 cycles/hash
-Small key speed test - 5-byte keys - 654.13 cycles/hash
-Small key speed test - 6-byte keys - 654.74 cycles/hash
-Small key speed test - 7-byte keys - 654.91 cycles/hash
-Small key speed test - 8-byte keys - 674.72 cycles/hash
-Small key speed test - 9-byte keys - 674.61 cycles/hash
-Small key speed test - 10-byte keys - 674.04 cycles/hash
-Small key speed test - 11-byte keys - 673.86 cycles/hash
-Small key speed test - 12-byte keys - 673.49 cycles/hash
-Small key speed test - 13-byte keys - 673.26 cycles/hash
-Small key speed test - 14-byte keys - 673.35 cycles/hash
-Small key speed test - 15-byte keys - 673.01 cycles/hash
-Small key speed test - 16-byte keys - 674.30 cycles/hash
-Small key speed test - 17-byte keys - 675.67 cycles/hash
-Small key speed test - 18-byte keys - 669.48 cycles/hash
-Small key speed test - 19-byte keys - 668.29 cycles/hash
-Small key speed test - 20-byte keys - 665.48 cycles/hash
-Small key speed test - 21-byte keys - 665.93 cycles/hash
-Small key speed test - 22-byte keys - 667.65 cycles/hash
-Small key speed test - 23-byte keys - 666.73 cycles/hash
-Small key speed test - 24-byte keys - 670.53 cycles/hash
-Small key speed test - 25-byte keys - 668.70 cycles/hash
-Small key speed test - 26-byte keys - 668.07 cycles/hash
-Small key speed test - 27-byte keys - 667.89 cycles/hash
-Small key speed test - 28-byte keys - 669.95 cycles/hash
-Small key speed test - 29-byte keys - 668.25 cycles/hash
-Small key speed test - 30-byte keys - 669.22 cycles/hash
-Small key speed test - 31-byte keys - 668.70 cycles/hash
-Average 666.557 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1085.517 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1005.831 cycles/op (10.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 900.361 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 851.738 cycles/op (7.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 134.864682 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0xb568ea52df4 - 0xb568ea52d88). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 6 - 0.118 bytes/cycle - 338.77 MiB/sec @ 3 ghz
+Alignment 5 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 4 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 3 - 0.118 bytes/cycle - 338.76 MiB/sec @ 3 ghz
+Alignment 2 - 0.118 bytes/cycle - 338.91 MiB/sec @ 3 ghz
+Alignment 1 - 0.117 bytes/cycle - 336.11 MiB/sec @ 3 ghz
+Alignment 0 - 0.118 bytes/cycle - 338.84 MiB/sec @ 3 ghz
+Average - 0.118 bytes/cycle - 338.46 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 642.21 cycles/hash
+Small key speed test - 2-byte keys - 647.20 cycles/hash
+Small key speed test - 3-byte keys - 650.00 cycles/hash
+Small key speed test - 4-byte keys - 646.23 cycles/hash
+Small key speed test - 5-byte keys - 651.76 cycles/hash
+Small key speed test - 6-byte keys - 651.44 cycles/hash
+Small key speed test - 7-byte keys - 659.12 cycles/hash
+Small key speed test - 8-byte keys - 679.91 cycles/hash
+Small key speed test - 9-byte keys - 671.89 cycles/hash
+Small key speed test - 10-byte keys - 678.53 cycles/hash
+Small key speed test - 11-byte keys - 674.00 cycles/hash
+Small key speed test - 12-byte keys - 674.13 cycles/hash
+Small key speed test - 13-byte keys - 681.29 cycles/hash
+Small key speed test - 14-byte keys - 686.86 cycles/hash
+Small key speed test - 15-byte keys - 687.08 cycles/hash
+Small key speed test - 16-byte keys - 684.20 cycles/hash
+Small key speed test - 17-byte keys - 674.16 cycles/hash
+Small key speed test - 18-byte keys - 675.36 cycles/hash
+Small key speed test - 19-byte keys - 686.71 cycles/hash
+Small key speed test - 20-byte keys - 678.05 cycles/hash
+Small key speed test - 21-byte keys - 670.29 cycles/hash
+Small key speed test - 22-byte keys - 683.23 cycles/hash
+Small key speed test - 23-byte keys - 677.69 cycles/hash
+Small key speed test - 24-byte keys - 671.31 cycles/hash
+Small key speed test - 25-byte keys - 673.83 cycles/hash
+Small key speed test - 26-byte keys - 682.39 cycles/hash
+Small key speed test - 27-byte keys - 676.07 cycles/hash
+Small key speed test - 28-byte keys - 673.70 cycles/hash
+Small key speed test - 29-byte keys - 679.05 cycles/hash
+Small key speed test - 30-byte keys - 685.65 cycles/hash
+Small key speed test - 31-byte keys - 685.81 cycles/hash
+Small key speed test - 32-byte keys - 687.87 cycles/hash
+Average 672.720 cycles/hash
+Average, weighted by key length freq. 678.748 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 677.625 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1041.091 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 950.001 cycles/op (4.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 877.566 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 823.376 cycles/op (4.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 141.310363 seconds
--- Testing blake2b-160 "blake2b-160" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.201 bytes/cycle - 576.04 MiB/sec @ 3 ghz
-Alignment 6 - 0.201 bytes/cycle - 575.18 MiB/sec @ 3 ghz
-Alignment 5 - 0.201 bytes/cycle - 575.21 MiB/sec @ 3 ghz
-Alignment 4 - 0.201 bytes/cycle - 575.40 MiB/sec @ 3 ghz
-Alignment 3 - 0.201 bytes/cycle - 575.22 MiB/sec @ 3 ghz
-Alignment 2 - 0.201 bytes/cycle - 575.30 MiB/sec @ 3 ghz
-Alignment 1 - 0.201 bytes/cycle - 575.16 MiB/sec @ 3 ghz
-Alignment 0 - 0.202 bytes/cycle - 576.84 MiB/sec @ 3 ghz
-Average - 0.201 bytes/cycle - 575.54 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 767.62 cycles/hash
-Small key speed test - 2-byte keys - 771.30 cycles/hash
-Small key speed test - 3-byte keys - 770.30 cycles/hash
-Small key speed test - 4-byte keys - 765.98 cycles/hash
-Small key speed test - 5-byte keys - 763.37 cycles/hash
-Small key speed test - 6-byte keys - 764.35 cycles/hash
-Small key speed test - 7-byte keys - 766.51 cycles/hash
-Small key speed test - 8-byte keys - 793.65 cycles/hash
-Small key speed test - 9-byte keys - 786.33 cycles/hash
-Small key speed test - 10-byte keys - 784.27 cycles/hash
-Small key speed test - 11-byte keys - 786.63 cycles/hash
-Small key speed test - 12-byte keys - 793.48 cycles/hash
-Small key speed test - 13-byte keys - 785.98 cycles/hash
-Small key speed test - 14-byte keys - 786.52 cycles/hash
-Small key speed test - 15-byte keys - 784.27 cycles/hash
-Small key speed test - 16-byte keys - 782.87 cycles/hash
-Small key speed test - 17-byte keys - 787.87 cycles/hash
-Small key speed test - 18-byte keys - 790.37 cycles/hash
-Small key speed test - 19-byte keys - 791.53 cycles/hash
-Small key speed test - 20-byte keys - 785.57 cycles/hash
-Small key speed test - 21-byte keys - 792.57 cycles/hash
-Small key speed test - 22-byte keys - 791.65 cycles/hash
-Small key speed test - 23-byte keys - 789.95 cycles/hash
-Small key speed test - 24-byte keys - 787.62 cycles/hash
-Small key speed test - 25-byte keys - 785.64 cycles/hash
-Small key speed test - 26-byte keys - 787.28 cycles/hash
-Small key speed test - 27-byte keys - 786.07 cycles/hash
-Small key speed test - 28-byte keys - 787.96 cycles/hash
-Small key speed test - 29-byte keys - 784.77 cycles/hash
-Small key speed test - 30-byte keys - 784.72 cycles/hash
-Small key speed test - 31-byte keys - 786.17 cycles/hash
-Average 783.006 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1250.635 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1148.501 cycles/op (14.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1083.842 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 996.461 cycles/op (12.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 148.139013 seconds
+WARNING: timer resolution is 144 (0x90) ticks (0xbccfa0988f8 - 0xbccfa098868). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.201 bytes/cycle - 576.31 MiB/sec @ 3 ghz
+Alignment 6 - 0.202 bytes/cycle - 578.71 MiB/sec @ 3 ghz
+Alignment 5 - 0.202 bytes/cycle - 578.66 MiB/sec @ 3 ghz
+Alignment 4 - 0.202 bytes/cycle - 578.70 MiB/sec @ 3 ghz
+Alignment 3 - 0.202 bytes/cycle - 578.80 MiB/sec @ 3 ghz
+Alignment 2 - 0.202 bytes/cycle - 578.02 MiB/sec @ 3 ghz
+Alignment 1 - 0.202 bytes/cycle - 578.69 MiB/sec @ 3 ghz
+Alignment 0 - 0.202 bytes/cycle - 578.70 MiB/sec @ 3 ghz
+Average - 0.202 bytes/cycle - 578.32 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 761.73 cycles/hash
+Small key speed test - 2-byte keys - 766.80 cycles/hash
+Small key speed test - 3-byte keys - 769.83 cycles/hash
+Small key speed test - 4-byte keys - 768.27 cycles/hash
+Small key speed test - 5-byte keys - 762.93 cycles/hash
+Small key speed test - 6-byte keys - 762.12 cycles/hash
+Small key speed test - 7-byte keys - 760.45 cycles/hash
+Small key speed test - 8-byte keys - 791.85 cycles/hash
+Small key speed test - 9-byte keys - 784.32 cycles/hash
+Small key speed test - 10-byte keys - 784.39 cycles/hash
+Small key speed test - 11-byte keys - 784.01 cycles/hash
+Small key speed test - 12-byte keys - 791.16 cycles/hash
+Small key speed test - 13-byte keys - 782.13 cycles/hash
+Small key speed test - 14-byte keys - 783.65 cycles/hash
+Small key speed test - 15-byte keys - 783.19 cycles/hash
+Small key speed test - 16-byte keys - 781.72 cycles/hash
+Small key speed test - 17-byte keys - 779.29 cycles/hash
+Small key speed test - 18-byte keys - 776.97 cycles/hash
+Small key speed test - 19-byte keys - 777.00 cycles/hash
+Small key speed test - 20-byte keys - 786.39 cycles/hash
+Small key speed test - 21-byte keys - 780.20 cycles/hash
+Small key speed test - 22-byte keys - 779.53 cycles/hash
+Small key speed test - 23-byte keys - 777.67 cycles/hash
+Small key speed test - 24-byte keys - 790.50 cycles/hash
+Small key speed test - 25-byte keys - 785.74 cycles/hash
+Small key speed test - 26-byte keys - 786.46 cycles/hash
+Small key speed test - 27-byte keys - 786.63 cycles/hash
+Small key speed test - 28-byte keys - 790.77 cycles/hash
+Small key speed test - 29-byte keys - 785.11 cycles/hash
+Small key speed test - 30-byte keys - 786.28 cycles/hash
+Small key speed test - 31-byte keys - 785.46 cycles/hash
+Small key speed test - 32-byte keys - 801.69 cycles/hash
+Average 780.445 cycles/hash
+Average, weighted by key length freq. 783.019 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 782.230 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1178.798 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1103.526 cycles/op (4.7 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1033.572 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 975.691 cycles/op (4.3 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 154.277342 seconds
--- Testing blake2b-224 "blake2b-224" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.204 bytes/cycle - 582.71 MiB/sec @ 3 ghz
-Alignment 6 - 0.204 bytes/cycle - 582.74 MiB/sec @ 3 ghz
-Alignment 5 - 0.204 bytes/cycle - 582.69 MiB/sec @ 3 ghz
-Alignment 4 - 0.204 bytes/cycle - 582.62 MiB/sec @ 3 ghz
-Alignment 3 - 0.203 bytes/cycle - 582.17 MiB/sec @ 3 ghz
-Alignment 2 - 0.204 bytes/cycle - 582.43 MiB/sec @ 3 ghz
-Alignment 1 - 0.204 bytes/cycle - 582.54 MiB/sec @ 3 ghz
-Alignment 0 - 0.204 bytes/cycle - 582.38 MiB/sec @ 3 ghz
-Average - 0.204 bytes/cycle - 582.54 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 757.29 cycles/hash
-Small key speed test - 2-byte keys - 764.29 cycles/hash
-Small key speed test - 3-byte keys - 765.02 cycles/hash
-Small key speed test - 4-byte keys - 761.66 cycles/hash
-Small key speed test - 5-byte keys - 758.46 cycles/hash
-Small key speed test - 6-byte keys - 758.87 cycles/hash
-Small key speed test - 7-byte keys - 758.08 cycles/hash
-Small key speed test - 8-byte keys - 785.22 cycles/hash
-Small key speed test - 9-byte keys - 776.48 cycles/hash
-Small key speed test - 10-byte keys - 777.16 cycles/hash
-Small key speed test - 11-byte keys - 774.91 cycles/hash
-Small key speed test - 12-byte keys - 786.64 cycles/hash
-Small key speed test - 13-byte keys - 775.96 cycles/hash
-Small key speed test - 14-byte keys - 776.70 cycles/hash
-Small key speed test - 15-byte keys - 777.47 cycles/hash
-Small key speed test - 16-byte keys - 777.91 cycles/hash
-Small key speed test - 17-byte keys - 783.74 cycles/hash
-Small key speed test - 18-byte keys - 784.08 cycles/hash
-Small key speed test - 19-byte keys - 780.69 cycles/hash
-Small key speed test - 20-byte keys - 776.47 cycles/hash
-Small key speed test - 21-byte keys - 782.20 cycles/hash
-Small key speed test - 22-byte keys - 780.34 cycles/hash
-Small key speed test - 23-byte keys - 783.38 cycles/hash
-Small key speed test - 24-byte keys - 780.24 cycles/hash
-Small key speed test - 25-byte keys - 779.78 cycles/hash
-Small key speed test - 26-byte keys - 778.35 cycles/hash
-Small key speed test - 27-byte keys - 778.87 cycles/hash
-Small key speed test - 28-byte keys - 779.20 cycles/hash
-Small key speed test - 29-byte keys - 778.78 cycles/hash
-Small key speed test - 30-byte keys - 778.14 cycles/hash
-Small key speed test - 31-byte keys - 779.31 cycles/hash
-Average 775.345 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1187.149 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1099.549 cycles/op (11.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1020.201 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 965.163 cycles/op (5.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 146.630868 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0xc4e4306bedc - 0xc4e4306be70). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.204 bytes/cycle - 582.55 MiB/sec @ 3 ghz
+Alignment 6 - 0.203 bytes/cycle - 579.48 MiB/sec @ 3 ghz
+Alignment 5 - 0.200 bytes/cycle - 573.37 MiB/sec @ 3 ghz
+Alignment 4 - 0.203 bytes/cycle - 580.27 MiB/sec @ 3 ghz
+Alignment 3 - 0.202 bytes/cycle - 578.74 MiB/sec @ 3 ghz
+Alignment 2 - 0.202 bytes/cycle - 578.88 MiB/sec @ 3 ghz
+Alignment 1 - 0.202 bytes/cycle - 577.76 MiB/sec @ 3 ghz
+Alignment 0 - 0.202 bytes/cycle - 577.48 MiB/sec @ 3 ghz
+Average - 0.202 bytes/cycle - 578.57 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 762.85 cycles/hash
+Small key speed test - 2-byte keys - 768.42 cycles/hash
+Small key speed test - 3-byte keys - 766.96 cycles/hash
+Small key speed test - 4-byte keys - 766.95 cycles/hash
+Small key speed test - 5-byte keys - 759.01 cycles/hash
+Small key speed test - 6-byte keys - 761.20 cycles/hash
+Small key speed test - 7-byte keys - 762.11 cycles/hash
+Small key speed test - 8-byte keys - 791.54 cycles/hash
+Small key speed test - 9-byte keys - 782.69 cycles/hash
+Small key speed test - 10-byte keys - 788.86 cycles/hash
+Small key speed test - 11-byte keys - 783.29 cycles/hash
+Small key speed test - 12-byte keys - 791.21 cycles/hash
+Small key speed test - 13-byte keys - 782.70 cycles/hash
+Small key speed test - 14-byte keys - 767.69 cycles/hash
+Small key speed test - 15-byte keys - 758.43 cycles/hash
+Small key speed test - 16-byte keys - 758.34 cycles/hash
+Small key speed test - 17-byte keys - 763.90 cycles/hash
+Small key speed test - 18-byte keys - 766.08 cycles/hash
+Small key speed test - 19-byte keys - 765.18 cycles/hash
+Small key speed test - 20-byte keys - 758.11 cycles/hash
+Small key speed test - 21-byte keys - 764.73 cycles/hash
+Small key speed test - 22-byte keys - 762.59 cycles/hash
+Small key speed test - 23-byte keys - 764.18 cycles/hash
+Small key speed test - 24-byte keys - 767.41 cycles/hash
+Small key speed test - 25-byte keys - 759.22 cycles/hash
+Small key speed test - 26-byte keys - 760.13 cycles/hash
+Small key speed test - 27-byte keys - 761.05 cycles/hash
+Small key speed test - 28-byte keys - 764.01 cycles/hash
+Small key speed test - 29-byte keys - 762.39 cycles/hash
+Small key speed test - 30-byte keys - 758.48 cycles/hash
+Small key speed test - 31-byte keys - 763.97 cycles/hash
+Small key speed test - 32-byte keys - 764.38 cycles/hash
+Average 767.440 cycles/hash
+Average, weighted by key length freq. 770.444 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 771.449 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1111.417 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1026.546 cycles/op (4.7 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 981.606 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 904.189 cycles/op (6.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 151.976666 seconds
--- Testing blake2b-256 "blake2b-256" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0xccda100cd44 - 0xccda100ccfc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.199 bytes/cycle - 569.04 MiB/sec @ 3 ghz
-Alignment 6 - 0.199 bytes/cycle - 570.64 MiB/sec @ 3 ghz
-Alignment 5 - 0.199 bytes/cycle - 568.09 MiB/sec @ 3 ghz
-Alignment 4 - 0.196 bytes/cycle - 562.00 MiB/sec @ 3 ghz
-Alignment 3 - 0.196 bytes/cycle - 561.82 MiB/sec @ 3 ghz
-Alignment 2 - 0.197 bytes/cycle - 562.75 MiB/sec @ 3 ghz
-Alignment 1 - 0.197 bytes/cycle - 564.04 MiB/sec @ 3 ghz
-Alignment 0 - 0.197 bytes/cycle - 563.94 MiB/sec @ 3 ghz
-Average - 0.198 bytes/cycle - 565.29 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 757.39 cycles/hash
-Small key speed test - 2-byte keys - 761.86 cycles/hash
-Small key speed test - 3-byte keys - 765.83 cycles/hash
-Small key speed test - 4-byte keys - 763.93 cycles/hash
-Small key speed test - 5-byte keys - 763.80 cycles/hash
-Small key speed test - 6-byte keys - 760.89 cycles/hash
-Small key speed test - 7-byte keys - 763.08 cycles/hash
-Small key speed test - 8-byte keys - 783.44 cycles/hash
-Small key speed test - 9-byte keys - 777.69 cycles/hash
-Small key speed test - 10-byte keys - 780.10 cycles/hash
-Small key speed test - 11-byte keys - 779.28 cycles/hash
-Small key speed test - 12-byte keys - 784.97 cycles/hash
-Small key speed test - 13-byte keys - 778.39 cycles/hash
-Small key speed test - 14-byte keys - 775.11 cycles/hash
-Small key speed test - 15-byte keys - 777.86 cycles/hash
-Small key speed test - 16-byte keys - 779.97 cycles/hash
-Small key speed test - 17-byte keys - 773.33 cycles/hash
-Small key speed test - 18-byte keys - 777.17 cycles/hash
-Small key speed test - 19-byte keys - 779.12 cycles/hash
-Small key speed test - 20-byte keys - 779.94 cycles/hash
-Small key speed test - 21-byte keys - 779.42 cycles/hash
-Small key speed test - 22-byte keys - 777.29 cycles/hash
-Small key speed test - 23-byte keys - 778.19 cycles/hash
-Small key speed test - 24-byte keys - 781.67 cycles/hash
-Small key speed test - 25-byte keys - 778.96 cycles/hash
-Small key speed test - 26-byte keys - 794.34 cycles/hash
-Small key speed test - 27-byte keys - 783.45 cycles/hash
-Small key speed test - 28-byte keys - 782.52 cycles/hash
-Small key speed test - 29-byte keys - 785.05 cycles/hash
-Small key speed test - 30-byte keys - 790.22 cycles/hash
-Small key speed test - 31-byte keys - 794.74 cycles/hash
-Average 777.065 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1260.131 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1150.053 cycles/op (15.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1100.874 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 1001.372 cycles/op (9.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 147.237271 seconds
+Alignment 7 - 0.204 bytes/cycle - 582.66 MiB/sec @ 3 ghz
+Alignment 6 - 0.204 bytes/cycle - 582.68 MiB/sec @ 3 ghz
+Alignment 5 - 0.204 bytes/cycle - 582.50 MiB/sec @ 3 ghz
+Alignment 4 - 0.204 bytes/cycle - 582.64 MiB/sec @ 3 ghz
+Alignment 3 - 0.204 bytes/cycle - 582.55 MiB/sec @ 3 ghz
+Alignment 2 - 0.203 bytes/cycle - 581.89 MiB/sec @ 3 ghz
+Alignment 1 - 0.204 bytes/cycle - 582.54 MiB/sec @ 3 ghz
+Alignment 0 - 0.204 bytes/cycle - 582.43 MiB/sec @ 3 ghz
+Average - 0.204 bytes/cycle - 582.49 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 741.67 cycles/hash
+Small key speed test - 2-byte keys - 751.89 cycles/hash
+Small key speed test - 3-byte keys - 750.57 cycles/hash
+Small key speed test - 4-byte keys - 744.22 cycles/hash
+Small key speed test - 5-byte keys - 737.41 cycles/hash
+Small key speed test - 6-byte keys - 737.91 cycles/hash
+Small key speed test - 7-byte keys - 738.44 cycles/hash
+Small key speed test - 8-byte keys - 762.73 cycles/hash
+Small key speed test - 9-byte keys - 761.67 cycles/hash
+Small key speed test - 10-byte keys - 760.93 cycles/hash
+Small key speed test - 11-byte keys - 759.49 cycles/hash
+Small key speed test - 12-byte keys - 766.41 cycles/hash
+Small key speed test - 13-byte keys - 758.61 cycles/hash
+Small key speed test - 14-byte keys - 762.06 cycles/hash
+Small key speed test - 15-byte keys - 759.88 cycles/hash
+Small key speed test - 16-byte keys - 763.35 cycles/hash
+Small key speed test - 17-byte keys - 760.25 cycles/hash
+Small key speed test - 18-byte keys - 760.60 cycles/hash
+Small key speed test - 19-byte keys - 762.97 cycles/hash
+Small key speed test - 20-byte keys - 761.28 cycles/hash
+Small key speed test - 21-byte keys - 760.50 cycles/hash
+Small key speed test - 22-byte keys - 756.80 cycles/hash
+Small key speed test - 23-byte keys - 762.10 cycles/hash
+Small key speed test - 24-byte keys - 761.99 cycles/hash
+Small key speed test - 25-byte keys - 762.22 cycles/hash
+Small key speed test - 26-byte keys - 761.54 cycles/hash
+Small key speed test - 27-byte keys - 760.52 cycles/hash
+Small key speed test - 28-byte keys - 761.99 cycles/hash
+Small key speed test - 29-byte keys - 763.03 cycles/hash
+Small key speed test - 30-byte keys - 761.81 cycles/hash
+Small key speed test - 31-byte keys - 765.63 cycles/hash
+Small key speed test - 32-byte keys - 763.76 cycles/hash
+Average 757.633 cycles/hash
+Average, weighted by key length freq. 760.928 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 760.674 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1152.166 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1077.328 cycles/op (6.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1000.627 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 949.621 cycles/op (4.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 149.997355 seconds
--- Testing blake2b-256_64 "blake2b-256, low 64 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.205 bytes/cycle - 585.79 MiB/sec @ 3 ghz
-Alignment 6 - 0.205 bytes/cycle - 585.78 MiB/sec @ 3 ghz
-Alignment 5 - 0.205 bytes/cycle - 585.28 MiB/sec @ 3 ghz
-Alignment 4 - 0.205 bytes/cycle - 586.27 MiB/sec @ 3 ghz
-Alignment 3 - 0.204 bytes/cycle - 584.09 MiB/sec @ 3 ghz
-Alignment 2 - 0.204 bytes/cycle - 583.87 MiB/sec @ 3 ghz
-Alignment 1 - 0.205 bytes/cycle - 585.59 MiB/sec @ 3 ghz
-Alignment 0 - 0.205 bytes/cycle - 585.39 MiB/sec @ 3 ghz
-Average - 0.205 bytes/cycle - 585.25 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 735.65 cycles/hash
-Small key speed test - 2-byte keys - 736.84 cycles/hash
-Small key speed test - 3-byte keys - 735.77 cycles/hash
-Small key speed test - 4-byte keys - 744.58 cycles/hash
-Small key speed test - 5-byte keys - 743.40 cycles/hash
-Small key speed test - 6-byte keys - 744.83 cycles/hash
-Small key speed test - 7-byte keys - 745.51 cycles/hash
-Small key speed test - 8-byte keys - 756.95 cycles/hash
-Small key speed test - 9-byte keys - 758.28 cycles/hash
-Small key speed test - 10-byte keys - 755.92 cycles/hash
-Small key speed test - 11-byte keys - 757.34 cycles/hash
-Small key speed test - 12-byte keys - 754.87 cycles/hash
-Small key speed test - 13-byte keys - 758.74 cycles/hash
-Small key speed test - 14-byte keys - 756.92 cycles/hash
-Small key speed test - 15-byte keys - 756.68 cycles/hash
-Small key speed test - 16-byte keys - 755.88 cycles/hash
-Small key speed test - 17-byte keys - 757.00 cycles/hash
-Small key speed test - 18-byte keys - 760.61 cycles/hash
-Small key speed test - 19-byte keys - 760.73 cycles/hash
-Small key speed test - 20-byte keys - 756.86 cycles/hash
-Small key speed test - 21-byte keys - 760.44 cycles/hash
-Small key speed test - 22-byte keys - 760.29 cycles/hash
-Small key speed test - 23-byte keys - 760.95 cycles/hash
-Small key speed test - 24-byte keys - 770.77 cycles/hash
-Small key speed test - 25-byte keys - 767.74 cycles/hash
-Small key speed test - 26-byte keys - 766.71 cycles/hash
-Small key speed test - 27-byte keys - 766.53 cycles/hash
-Small key speed test - 28-byte keys - 768.68 cycles/hash
-Small key speed test - 29-byte keys - 766.71 cycles/hash
-Small key speed test - 30-byte keys - 766.40 cycles/hash
-Small key speed test - 31-byte keys - 766.08 cycles/hash
-Average 756.602 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1212.202 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1110.590 cycles/op (11.4 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1039.683 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 969.160 cycles/op (6.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 143.362685 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0xd4b53e86ed8 - 0xd4b53e86e6c). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.202 bytes/cycle - 579.26 MiB/sec @ 3 ghz
+Alignment 6 - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+Alignment 5 - 0.202 bytes/cycle - 579.27 MiB/sec @ 3 ghz
+Alignment 4 - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+Alignment 3 - 0.202 bytes/cycle - 579.26 MiB/sec @ 3 ghz
+Alignment 2 - 0.202 bytes/cycle - 579.30 MiB/sec @ 3 ghz
+Alignment 1 - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+Alignment 0 - 0.202 bytes/cycle - 579.29 MiB/sec @ 3 ghz
+Average - 0.202 bytes/cycle - 579.28 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 744.08 cycles/hash
+Small key speed test - 2-byte keys - 742.96 cycles/hash
+Small key speed test - 3-byte keys - 745.75 cycles/hash
+Small key speed test - 4-byte keys - 752.87 cycles/hash
+Small key speed test - 5-byte keys - 755.51 cycles/hash
+Small key speed test - 6-byte keys - 763.55 cycles/hash
+Small key speed test - 7-byte keys - 757.01 cycles/hash
+Small key speed test - 8-byte keys - 764.13 cycles/hash
+Small key speed test - 9-byte keys - 759.89 cycles/hash
+Small key speed test - 10-byte keys - 767.60 cycles/hash
+Small key speed test - 11-byte keys - 759.92 cycles/hash
+Small key speed test - 12-byte keys - 762.00 cycles/hash
+Small key speed test - 13-byte keys - 760.35 cycles/hash
+Small key speed test - 14-byte keys - 761.03 cycles/hash
+Small key speed test - 15-byte keys - 762.77 cycles/hash
+Small key speed test - 16-byte keys - 765.27 cycles/hash
+Small key speed test - 17-byte keys - 768.51 cycles/hash
+Small key speed test - 18-byte keys - 767.82 cycles/hash
+Small key speed test - 19-byte keys - 760.80 cycles/hash
+Small key speed test - 20-byte keys - 763.82 cycles/hash
+Small key speed test - 21-byte keys - 764.50 cycles/hash
+Small key speed test - 22-byte keys - 762.94 cycles/hash
+Small key speed test - 23-byte keys - 760.87 cycles/hash
+Small key speed test - 24-byte keys - 777.56 cycles/hash
+Small key speed test - 25-byte keys - 779.40 cycles/hash
+Small key speed test - 26-byte keys - 778.01 cycles/hash
+Small key speed test - 27-byte keys - 777.29 cycles/hash
+Small key speed test - 28-byte keys - 780.21 cycles/hash
+Small key speed test - 29-byte keys - 777.71 cycles/hash
+Small key speed test - 30-byte keys - 776.85 cycles/hash
+Small key speed test - 31-byte keys - 777.15 cycles/hash
+Small key speed test - 32-byte keys - 782.70 cycles/hash
+Average 765.025 cycles/hash
+Average, weighted by key length freq. 765.123 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 762.826 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1168.566 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1087.898 cycles/op (8.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 1009.604 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 953.393 cycles/op (4.7 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 151.547712 seconds
--- Testing asconhashv12 "asconhashv12 256bit" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.057 bytes/cycle - 162.18 MiB/sec @ 3 ghz
-Alignment 6 - 0.057 bytes/cycle - 162.24 MiB/sec @ 3 ghz
-Alignment 5 - 0.056 bytes/cycle - 161.37 MiB/sec @ 3 ghz
-Alignment 4 - 0.056 bytes/cycle - 161.16 MiB/sec @ 3 ghz
-Alignment 3 - 0.057 bytes/cycle - 162.22 MiB/sec @ 3 ghz
-Alignment 2 - 0.057 bytes/cycle - 162.28 MiB/sec @ 3 ghz
-Alignment 1 - 0.057 bytes/cycle - 162.41 MiB/sec @ 3 ghz
-Alignment 0 - 0.055 bytes/cycle - 157.58 MiB/sec @ 3 ghz
-Average - 0.056 bytes/cycle - 161.43 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 605.24 cycles/hash
-Small key speed test - 2-byte keys - 605.07 cycles/hash
-Small key speed test - 3-byte keys - 605.17 cycles/hash
-Small key speed test - 4-byte keys - 604.83 cycles/hash
-Small key speed test - 5-byte keys - 603.00 cycles/hash
-Small key speed test - 6-byte keys - 604.10 cycles/hash
-Small key speed test - 7-byte keys - 605.58 cycles/hash
-Small key speed test - 8-byte keys - 745.54 cycles/hash
-Small key speed test - 9-byte keys - 756.74 cycles/hash
-Small key speed test - 10-byte keys - 755.32 cycles/hash
-Small key speed test - 11-byte keys - 756.72 cycles/hash
-Small key speed test - 12-byte keys - 756.17 cycles/hash
-Small key speed test - 13-byte keys - 756.93 cycles/hash
-Small key speed test - 14-byte keys - 756.63 cycles/hash
-Small key speed test - 15-byte keys - 751.39 cycles/hash
-Small key speed test - 16-byte keys - 871.24 cycles/hash
-Small key speed test - 17-byte keys - 878.57 cycles/hash
-Small key speed test - 18-byte keys - 879.82 cycles/hash
-Small key speed test - 19-byte keys - 878.81 cycles/hash
-Small key speed test - 20-byte keys - 876.86 cycles/hash
-Small key speed test - 21-byte keys - 876.82 cycles/hash
-Small key speed test - 22-byte keys - 879.74 cycles/hash
-Small key speed test - 23-byte keys - 879.40 cycles/hash
-Small key speed test - 24-byte keys - 1009.45 cycles/hash
-Small key speed test - 25-byte keys - 1021.35 cycles/hash
-Small key speed test - 26-byte keys - 1021.75 cycles/hash
-Small key speed test - 27-byte keys - 1019.82 cycles/hash
-Small key speed test - 28-byte keys - 1053.28 cycles/hash
-Small key speed test - 29-byte keys - 1054.88 cycles/hash
-Small key speed test - 30-byte keys - 1053.45 cycles/hash
-Small key speed test - 31-byte keys - 1054.79 cycles/hash
-Average 825.112 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1168.455 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1074.140 cycles/op (9.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1010.674 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 953.399 cycles/op (4.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 180.968991 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0xdca534e3a04 - 0xdca534e39bc). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 6 - 0.057 bytes/cycle - 163.58 MiB/sec @ 3 ghz
+Alignment 5 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 4 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 3 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 2 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 1 - 0.057 bytes/cycle - 163.59 MiB/sec @ 3 ghz
+Alignment 0 - 0.056 bytes/cycle - 158.84 MiB/sec @ 3 ghz
+Average - 0.057 bytes/cycle - 162.99 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 615.11 cycles/hash
+Small key speed test - 2-byte keys - 615.40 cycles/hash
+Small key speed test - 3-byte keys - 613.57 cycles/hash
+Small key speed test - 4-byte keys - 613.52 cycles/hash
+Small key speed test - 5-byte keys - 614.58 cycles/hash
+Small key speed test - 6-byte keys - 613.61 cycles/hash
+Small key speed test - 7-byte keys - 613.04 cycles/hash
+Small key speed test - 8-byte keys - 737.62 cycles/hash
+Small key speed test - 9-byte keys - 749.98 cycles/hash
+Small key speed test - 10-byte keys - 751.57 cycles/hash
+Small key speed test - 11-byte keys - 750.38 cycles/hash
+Small key speed test - 12-byte keys - 751.39 cycles/hash
+Small key speed test - 13-byte keys - 750.54 cycles/hash
+Small key speed test - 14-byte keys - 750.91 cycles/hash
+Small key speed test - 15-byte keys - 750.54 cycles/hash
+Small key speed test - 16-byte keys - 878.00 cycles/hash
+Small key speed test - 17-byte keys - 893.94 cycles/hash
+Small key speed test - 18-byte keys - 895.42 cycles/hash
+Small key speed test - 19-byte keys - 894.63 cycles/hash
+Small key speed test - 20-byte keys - 894.72 cycles/hash
+Small key speed test - 21-byte keys - 894.33 cycles/hash
+Small key speed test - 22-byte keys - 894.11 cycles/hash
+Small key speed test - 23-byte keys - 893.64 cycles/hash
+Small key speed test - 24-byte keys - 1025.10 cycles/hash
+Small key speed test - 25-byte keys - 1036.57 cycles/hash
+Small key speed test - 26-byte keys - 1037.38 cycles/hash
+Small key speed test - 27-byte keys - 1036.56 cycles/hash
+Small key speed test - 28-byte keys - 1036.63 cycles/hash
+Small key speed test - 29-byte keys - 1035.20 cycles/hash
+Small key speed test - 30-byte keys - 1037.21 cycles/hash
+Small key speed test - 31-byte keys - 1038.41 cycles/hash
+Small key speed test - 32-byte keys - 1175.82 cycles/hash
+Average 840.294 cycles/hash
+Average, weighted by key length freq. 838.178 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 793.330 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 1092.003 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1022.350 cycles/op (11.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 951.138 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 904.599 cycles/op (4.3 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 189.512754 seconds
--- Testing asconhashv12_64 "asconhashv12, low 64 bits" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.056 bytes/cycle - 159.59 MiB/sec @ 3 ghz
-Alignment 6 - 0.056 bytes/cycle - 159.47 MiB/sec @ 3 ghz
-Alignment 5 - 0.056 bytes/cycle - 159.58 MiB/sec @ 3 ghz
-Alignment 4 - 0.056 bytes/cycle - 159.76 MiB/sec @ 3 ghz
-Alignment 3 - 0.056 bytes/cycle - 159.78 MiB/sec @ 3 ghz
-Alignment 2 - 0.056 bytes/cycle - 159.74 MiB/sec @ 3 ghz
-Alignment 1 - 0.056 bytes/cycle - 159.64 MiB/sec @ 3 ghz
-Alignment 0 - 0.056 bytes/cycle - 159.91 MiB/sec @ 3 ghz
-Average - 0.056 bytes/cycle - 159.68 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 164.67 cycles/hash
-Small key speed test - 2-byte keys - 164.67 cycles/hash
-Small key speed test - 3-byte keys - 164.55 cycles/hash
-Small key speed test - 4-byte keys - 164.53 cycles/hash
-Small key speed test - 5-byte keys - 164.79 cycles/hash
-Small key speed test - 6-byte keys - 164.72 cycles/hash
-Small key speed test - 7-byte keys - 164.73 cycles/hash
-Small key speed test - 8-byte keys - 301.20 cycles/hash
-Small key speed test - 9-byte keys - 310.07 cycles/hash
-Small key speed test - 10-byte keys - 310.09 cycles/hash
-Small key speed test - 11-byte keys - 310.20 cycles/hash
-Small key speed test - 12-byte keys - 310.17 cycles/hash
-Small key speed test - 13-byte keys - 309.92 cycles/hash
-Small key speed test - 14-byte keys - 309.43 cycles/hash
-Small key speed test - 15-byte keys - 309.00 cycles/hash
-Small key speed test - 16-byte keys - 444.46 cycles/hash
-Small key speed test - 17-byte keys - 451.00 cycles/hash
-Small key speed test - 18-byte keys - 451.84 cycles/hash
-Small key speed test - 19-byte keys - 452.67 cycles/hash
-Small key speed test - 20-byte keys - 453.23 cycles/hash
-Small key speed test - 21-byte keys - 454.42 cycles/hash
-Small key speed test - 22-byte keys - 454.30 cycles/hash
-Small key speed test - 23-byte keys - 453.72 cycles/hash
-Small key speed test - 24-byte keys - 585.10 cycles/hash
-Small key speed test - 25-byte keys - 595.42 cycles/hash
-Small key speed test - 26-byte keys - 594.68 cycles/hash
-Small key speed test - 27-byte keys - 596.09 cycles/hash
-Small key speed test - 28-byte keys - 596.16 cycles/hash
-Small key speed test - 29-byte keys - 596.26 cycles/hash
-Small key speed test - 30-byte keys - 595.85 cycles/hash
-Small key speed test - 31-byte keys - 596.04 cycles/hash
-Average 386.903 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 688.987 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 611.173 cycles/op (5.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 544.496 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 480.859 cycles/op (4.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 106.151977 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0xe69238de300 - 0xe69238de294). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 6 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 5 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 4 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 3 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 2 - 0.056 bytes/cycle - 159.73 MiB/sec @ 3 ghz
+Alignment 1 - 0.055 bytes/cycle - 158.22 MiB/sec @ 3 ghz
+Alignment 0 - 0.055 bytes/cycle - 158.07 MiB/sec @ 3 ghz
+Average - 0.056 bytes/cycle - 159.33 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 166.51 cycles/hash
+Small key speed test - 2-byte keys - 166.48 cycles/hash
+Small key speed test - 3-byte keys - 166.48 cycles/hash
+Small key speed test - 4-byte keys - 166.49 cycles/hash
+Small key speed test - 5-byte keys - 166.45 cycles/hash
+Small key speed test - 6-byte keys - 166.47 cycles/hash
+Small key speed test - 7-byte keys - 166.51 cycles/hash
+Small key speed test - 8-byte keys - 305.01 cycles/hash
+Small key speed test - 9-byte keys - 314.07 cycles/hash
+Small key speed test - 10-byte keys - 314.09 cycles/hash
+Small key speed test - 11-byte keys - 314.06 cycles/hash
+Small key speed test - 12-byte keys - 314.02 cycles/hash
+Small key speed test - 13-byte keys - 314.00 cycles/hash
+Small key speed test - 14-byte keys - 314.05 cycles/hash
+Small key speed test - 15-byte keys - 314.07 cycles/hash
+Small key speed test - 16-byte keys - 450.20 cycles/hash
+Small key speed test - 17-byte keys - 459.25 cycles/hash
+Small key speed test - 18-byte keys - 459.23 cycles/hash
+Small key speed test - 19-byte keys - 459.01 cycles/hash
+Small key speed test - 20-byte keys - 459.26 cycles/hash
+Small key speed test - 21-byte keys - 458.73 cycles/hash
+Small key speed test - 22-byte keys - 458.63 cycles/hash
+Small key speed test - 23-byte keys - 458.72 cycles/hash
+Small key speed test - 24-byte keys - 588.70 cycles/hash
+Small key speed test - 25-byte keys - 602.91 cycles/hash
+Small key speed test - 26-byte keys - 602.95 cycles/hash
+Small key speed test - 27-byte keys - 602.94 cycles/hash
+Small key speed test - 28-byte keys - 603.59 cycles/hash
+Small key speed test - 29-byte keys - 602.96 cycles/hash
+Small key speed test - 30-byte keys - 602.86 cycles/hash
+Small key speed test - 31-byte keys - 602.81 cycles/hash
+Small key speed test - 32-byte keys - 739.82 cycles/hash
+Average 402.541 cycles/hash
+Average, weighted by key length freq. 402.632 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 359.746 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 652.473 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 586.203 cycles/op (4.0 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 514.484 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 473.152 cycles/op (3.5 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 111.006863 seconds
--- Testing sha3-256 "SHA3-256 (Keccak)" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.044 bytes/cycle - 125.49 MiB/sec @ 3 ghz
-Alignment 6 - 0.044 bytes/cycle - 125.46 MiB/sec @ 3 ghz
-Alignment 5 - 0.044 bytes/cycle - 125.40 MiB/sec @ 3 ghz
-Alignment 4 - 0.044 bytes/cycle - 125.38 MiB/sec @ 3 ghz
-Alignment 3 - 0.044 bytes/cycle - 125.26 MiB/sec @ 3 ghz
-Alignment 2 - 0.044 bytes/cycle - 125.18 MiB/sec @ 3 ghz
-Alignment 1 - 0.044 bytes/cycle - 125.35 MiB/sec @ 3 ghz
-Alignment 0 - 0.044 bytes/cycle - 125.29 MiB/sec @ 3 ghz
-Average - 0.044 bytes/cycle - 125.35 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 3130.61 cycles/hash
-Small key speed test - 2-byte keys - 3134.24 cycles/hash
-Small key speed test - 3-byte keys - 3138.81 cycles/hash
-Small key speed test - 4-byte keys - 3139.19 cycles/hash
-Small key speed test - 5-byte keys - 3139.04 cycles/hash
-Small key speed test - 6-byte keys - 3139.20 cycles/hash
-Small key speed test - 7-byte keys - 3147.15 cycles/hash
-Small key speed test - 8-byte keys - 3124.45 cycles/hash
-Small key speed test - 9-byte keys - 3143.67 cycles/hash
-Small key speed test - 10-byte keys - 3140.62 cycles/hash
-Small key speed test - 11-byte keys - 3145.28 cycles/hash
-Small key speed test - 12-byte keys - 3145.37 cycles/hash
-Small key speed test - 13-byte keys - 3147.09 cycles/hash
-Small key speed test - 14-byte keys - 3146.09 cycles/hash
-Small key speed test - 15-byte keys - 3156.80 cycles/hash
-Small key speed test - 16-byte keys - 3140.58 cycles/hash
-Small key speed test - 17-byte keys - 3143.31 cycles/hash
-Small key speed test - 18-byte keys - 3142.64 cycles/hash
-Small key speed test - 19-byte keys - 3146.52 cycles/hash
-Small key speed test - 20-byte keys - 3148.68 cycles/hash
-Small key speed test - 21-byte keys - 3150.71 cycles/hash
-Small key speed test - 22-byte keys - 3149.92 cycles/hash
-Small key speed test - 23-byte keys - 3154.04 cycles/hash
-Small key speed test - 24-byte keys - 3143.94 cycles/hash
-Small key speed test - 25-byte keys - 3141.06 cycles/hash
-Small key speed test - 26-byte keys - 3143.95 cycles/hash
-Small key speed test - 27-byte keys - 3149.89 cycles/hash
-Small key speed test - 28-byte keys - 3080.39 cycles/hash
-Small key speed test - 29-byte keys - 3086.40 cycles/hash
-Small key speed test - 30-byte keys - 3088.44 cycles/hash
-Small key speed test - 31-byte keys - 3090.08 cycles/hash
-Average 3136.070 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 3599.046 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 3479.333 cycles/op (6.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 3420.521 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 3334.678 cycles/op (6.1 stdv) ....... FAIL
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 592.203562 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0xec62a073840 - 0xec62a0737f8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.044 bytes/cycle - 126.08 MiB/sec @ 3 ghz
+Alignment 6 - 0.044 bytes/cycle - 125.82 MiB/sec @ 3 ghz
+Alignment 5 - 0.044 bytes/cycle - 126.03 MiB/sec @ 3 ghz
+Alignment 4 - 0.044 bytes/cycle - 126.02 MiB/sec @ 3 ghz
+Alignment 3 - 0.044 bytes/cycle - 126.06 MiB/sec @ 3 ghz
+Alignment 2 - 0.044 bytes/cycle - 125.99 MiB/sec @ 3 ghz
+Alignment 1 - 0.044 bytes/cycle - 125.94 MiB/sec @ 3 ghz
+Alignment 0 - 0.044 bytes/cycle - 125.87 MiB/sec @ 3 ghz
+Average - 0.044 bytes/cycle - 125.98 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 3093.32 cycles/hash
+Small key speed test - 2-byte keys - 3095.27 cycles/hash
+Small key speed test - 3-byte keys - 3092.19 cycles/hash
+Small key speed test - 4-byte keys - 3092.68 cycles/hash
+Small key speed test - 5-byte keys - 3090.83 cycles/hash
+Small key speed test - 6-byte keys - 3101.59 cycles/hash
+Small key speed test - 7-byte keys - 3101.21 cycles/hash
+Small key speed test - 8-byte keys - 3094.59 cycles/hash
+Small key speed test - 9-byte keys - 3098.49 cycles/hash
+Small key speed test - 10-byte keys - 3104.98 cycles/hash
+Small key speed test - 11-byte keys - 3098.24 cycles/hash
+Small key speed test - 12-byte keys - 3102.23 cycles/hash
+Small key speed test - 13-byte keys - 3107.86 cycles/hash
+Small key speed test - 14-byte keys - 3136.45 cycles/hash
+Small key speed test - 15-byte keys - 3136.66 cycles/hash
+Small key speed test - 16-byte keys - 3130.67 cycles/hash
+Small key speed test - 17-byte keys - 3133.08 cycles/hash
+Small key speed test - 18-byte keys - 3130.61 cycles/hash
+Small key speed test - 19-byte keys - 3135.79 cycles/hash
+Small key speed test - 20-byte keys - 3131.56 cycles/hash
+Small key speed test - 21-byte keys - 3136.78 cycles/hash
+Small key speed test - 22-byte keys - 3141.83 cycles/hash
+Small key speed test - 23-byte keys - 3140.13 cycles/hash
+Small key speed test - 24-byte keys - 3130.39 cycles/hash
+Small key speed test - 25-byte keys - 3133.38 cycles/hash
+Small key speed test - 26-byte keys - 3136.11 cycles/hash
+Small key speed test - 27-byte keys - 3138.69 cycles/hash
+Small key speed test - 28-byte keys - 3136.92 cycles/hash
+Small key speed test - 29-byte keys - 3138.74 cycles/hash
+Small key speed test - 30-byte keys - 3141.02 cycles/hash
+Small key speed test - 31-byte keys - 3143.60 cycles/hash
+Small key speed test - 32-byte keys - 3132.57 cycles/hash
+Average 3120.577 cycles/hash
+Average, weighted by key length freq. 3123.588 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 3114.300 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 3642.221 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 3500.147 cycles/op (6.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 3456.600 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 3384.956 cycles/op (6.5 stdv) ....... FAIL
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 613.441244 seconds
--- Testing sha3-256_64 "SHA3-256 (Keccak), low 64 bits" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.044 bytes/cycle - 125.31 MiB/sec @ 3 ghz
-Alignment 6 - 0.044 bytes/cycle - 125.14 MiB/sec @ 3 ghz
-Alignment 5 - 0.044 bytes/cycle - 125.30 MiB/sec @ 3 ghz
-Alignment 4 - 0.044 bytes/cycle - 125.68 MiB/sec @ 3 ghz
-Alignment 3 - 0.044 bytes/cycle - 125.72 MiB/sec @ 3 ghz
-Alignment 2 - 0.044 bytes/cycle - 125.74 MiB/sec @ 3 ghz
-Alignment 1 - 0.044 bytes/cycle - 125.73 MiB/sec @ 3 ghz
-Alignment 0 - 0.044 bytes/cycle - 125.74 MiB/sec @ 3 ghz
-Average - 0.044 bytes/cycle - 125.55 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 3118.10 cycles/hash
-Small key speed test - 2-byte keys - 3117.04 cycles/hash
-Small key speed test - 3-byte keys - 3115.24 cycles/hash
-Small key speed test - 4-byte keys - 3117.87 cycles/hash
-Small key speed test - 5-byte keys - 3120.82 cycles/hash
-Small key speed test - 6-byte keys - 3123.99 cycles/hash
-Small key speed test - 7-byte keys - 3118.25 cycles/hash
-Small key speed test - 8-byte keys - 3088.87 cycles/hash
-Small key speed test - 9-byte keys - 3093.04 cycles/hash
-Small key speed test - 10-byte keys - 3111.70 cycles/hash
-Small key speed test - 11-byte keys - 3091.42 cycles/hash
-Small key speed test - 12-byte keys - 3091.04 cycles/hash
-Small key speed test - 13-byte keys - 3096.22 cycles/hash
-Small key speed test - 14-byte keys - 3100.04 cycles/hash
-Small key speed test - 15-byte keys - 3098.91 cycles/hash
-Small key speed test - 16-byte keys - 3088.50 cycles/hash
-Small key speed test - 17-byte keys - 3099.37 cycles/hash
-Small key speed test - 18-byte keys - 3098.92 cycles/hash
-Small key speed test - 19-byte keys - 3094.08 cycles/hash
-Small key speed test - 20-byte keys - 3093.35 cycles/hash
-Small key speed test - 21-byte keys - 3099.42 cycles/hash
-Small key speed test - 22-byte keys - 3102.17 cycles/hash
-Small key speed test - 23-byte keys - 3104.43 cycles/hash
-Small key speed test - 24-byte keys - 3092.23 cycles/hash
-Small key speed test - 25-byte keys - 3107.08 cycles/hash
-Small key speed test - 26-byte keys - 3099.05 cycles/hash
-Small key speed test - 27-byte keys - 3103.54 cycles/hash
-Small key speed test - 28-byte keys - 3097.82 cycles/hash
-Small key speed test - 29-byte keys - 3102.52 cycles/hash
-Small key speed test - 30-byte keys - 3103.74 cycles/hash
-Small key speed test - 31-byte keys - 3103.29 cycles/hash
-Average 3102.970 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 3686.128 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 3567.563 cycles/op (7.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 3506.523 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 3412.380 cycles/op (19.0 stdv) ....... FAIL
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 586.444547 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x10c83a2352d4 - 0x10c83a235268). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.044 bytes/cycle - 124.60 MiB/sec @ 3 ghz
+Alignment 6 - 0.044 bytes/cycle - 124.65 MiB/sec @ 3 ghz
+Alignment 5 - 0.044 bytes/cycle - 124.64 MiB/sec @ 3 ghz
+Alignment 4 - 0.044 bytes/cycle - 124.71 MiB/sec @ 3 ghz
+Alignment 3 - 0.044 bytes/cycle - 124.71 MiB/sec @ 3 ghz
+Alignment 2 - 0.044 bytes/cycle - 124.48 MiB/sec @ 3 ghz
+Alignment 1 - 0.044 bytes/cycle - 124.65 MiB/sec @ 3 ghz
+Alignment 0 - 0.044 bytes/cycle - 124.68 MiB/sec @ 3 ghz
+Average - 0.044 bytes/cycle - 124.64 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 3131.41 cycles/hash
+Small key speed test - 2-byte keys - 3131.49 cycles/hash
+Small key speed test - 3-byte keys - 3127.13 cycles/hash
+Small key speed test - 4-byte keys - 3130.38 cycles/hash
+Small key speed test - 5-byte keys - 3131.75 cycles/hash
+Small key speed test - 6-byte keys - 3127.85 cycles/hash
+Small key speed test - 7-byte keys - 3142.87 cycles/hash
+Small key speed test - 8-byte keys - 3128.25 cycles/hash
+Small key speed test - 9-byte keys - 3133.22 cycles/hash
+Small key speed test - 10-byte keys - 3133.76 cycles/hash
+Small key speed test - 11-byte keys - 3131.66 cycles/hash
+Small key speed test - 12-byte keys - 3133.93 cycles/hash
+Small key speed test - 13-byte keys - 3133.54 cycles/hash
+Small key speed test - 14-byte keys - 3141.64 cycles/hash
+Small key speed test - 15-byte keys - 3144.97 cycles/hash
+Small key speed test - 16-byte keys - 3091.83 cycles/hash
+Small key speed test - 17-byte keys - 3083.27 cycles/hash
+Small key speed test - 18-byte keys - 3098.83 cycles/hash
+Small key speed test - 19-byte keys - 3106.56 cycles/hash
+Small key speed test - 20-byte keys - 3107.69 cycles/hash
+Small key speed test - 21-byte keys - 3109.98 cycles/hash
+Small key speed test - 22-byte keys - 3063.26 cycles/hash
+Small key speed test - 23-byte keys - 3046.29 cycles/hash
+Small key speed test - 24-byte keys - 3043.67 cycles/hash
+Small key speed test - 25-byte keys - 3042.83 cycles/hash
+Small key speed test - 26-byte keys - 3045.86 cycles/hash
+Small key speed test - 27-byte keys - 3042.54 cycles/hash
+Small key speed test - 28-byte keys - 3045.12 cycles/hash
+Small key speed test - 29-byte keys - 3098.92 cycles/hash
+Small key speed test - 30-byte keys - 3115.60 cycles/hash
+Small key speed test - 31-byte keys - 3138.43 cycles/hash
+Small key speed test - 32-byte keys - 3143.42 cycles/hash
+Average 3107.123 cycles/hash
+Average, weighted by key length freq. 3110.394 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 3117.056 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 3609.005 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 3526.315 cycles/op (18.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 3492.878 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 3392.770 cycles/op (5.8 stdv) ....... FAIL
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 612.976934 seconds
--- Testing hasshe2 "SSE2 hasshe2, 256-bit" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.976 bytes/cycle - 2793.72 MiB/sec @ 3 ghz
-Alignment 6 - 0.976 bytes/cycle - 2791.29 MiB/sec @ 3 ghz
-Alignment 5 - 0.976 bytes/cycle - 2791.82 MiB/sec @ 3 ghz
-Alignment 4 - 0.976 bytes/cycle - 2793.37 MiB/sec @ 3 ghz
-Alignment 3 - 0.976 bytes/cycle - 2792.12 MiB/sec @ 3 ghz
-Alignment 2 - 0.976 bytes/cycle - 2792.53 MiB/sec @ 3 ghz
-Alignment 1 - 0.975 bytes/cycle - 2790.24 MiB/sec @ 3 ghz
-Alignment 0 - 0.975 bytes/cycle - 2790.36 MiB/sec @ 3 ghz
-Average - 0.976 bytes/cycle - 2791.93 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 56.23 cycles/hash
-Small key speed test - 2-byte keys - 55.93 cycles/hash
-Small key speed test - 3-byte keys - 55.95 cycles/hash
-Small key speed test - 4-byte keys - 55.91 cycles/hash
-Small key speed test - 5-byte keys - 55.97 cycles/hash
-Small key speed test - 6-byte keys - 55.94 cycles/hash
-Small key speed test - 7-byte keys - 55.91 cycles/hash
-Small key speed test - 8-byte keys - 55.96 cycles/hash
-Small key speed test - 9-byte keys - 55.94 cycles/hash
-Small key speed test - 10-byte keys - 56.05 cycles/hash
-Small key speed test - 11-byte keys - 56.10 cycles/hash
-Small key speed test - 12-byte keys - 56.08 cycles/hash
-Small key speed test - 13-byte keys - 56.09 cycles/hash
-Small key speed test - 14-byte keys - 56.09 cycles/hash
-Small key speed test - 15-byte keys - 56.03 cycles/hash
-Small key speed test - 16-byte keys - 55.86 cycles/hash
-Small key speed test - 17-byte keys - 71.97 cycles/hash
-Small key speed test - 18-byte keys - 71.94 cycles/hash
-Small key speed test - 19-byte keys - 71.96 cycles/hash
-Small key speed test - 20-byte keys - 71.98 cycles/hash
-Small key speed test - 21-byte keys - 72.28 cycles/hash
-Small key speed test - 22-byte keys - 72.39 cycles/hash
-Small key speed test - 23-byte keys - 72.38 cycles/hash
-Small key speed test - 24-byte keys - 72.56 cycles/hash
-Small key speed test - 25-byte keys - 72.37 cycles/hash
-Small key speed test - 26-byte keys - 72.37 cycles/hash
-Small key speed test - 27-byte keys - 72.36 cycles/hash
-Small key speed test - 28-byte keys - 72.29 cycles/hash
-Small key speed test - 29-byte keys - 72.28 cycles/hash
-Small key speed test - 30-byte keys - 72.37 cycles/hash
-Small key speed test - 31-byte keys - 72.27 cycles/hash
-Average 63.865 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 477.219 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 407.331 cycles/op (6.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 348.007 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 278.670 cycles/op (4.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 16.359342 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x12c9e943aca4 - 0x12c9e943ac38). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 1.010 bytes/cycle - 2889.43 MiB/sec @ 3 ghz
+Alignment 6 - 1.011 bytes/cycle - 2892.91 MiB/sec @ 3 ghz
+Alignment 5 - 1.008 bytes/cycle - 2882.90 MiB/sec @ 3 ghz
+Alignment 4 - 0.997 bytes/cycle - 2852.78 MiB/sec @ 3 ghz
+Alignment 3 - 1.008 bytes/cycle - 2882.91 MiB/sec @ 3 ghz
+Alignment 2 - 1.007 bytes/cycle - 2881.86 MiB/sec @ 3 ghz
+Alignment 1 - 1.008 bytes/cycle - 2883.29 MiB/sec @ 3 ghz
+Alignment 0 - 1.004 bytes/cycle - 2873.32 MiB/sec @ 3 ghz
+Average - 1.007 bytes/cycle - 2879.93 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 54.83 cycles/hash
+Small key speed test - 2-byte keys - 54.74 cycles/hash
+Small key speed test - 3-byte keys - 54.74 cycles/hash
+Small key speed test - 4-byte keys - 54.82 cycles/hash
+Small key speed test - 5-byte keys - 54.78 cycles/hash
+Small key speed test - 6-byte keys - 54.74 cycles/hash
+Small key speed test - 7-byte keys - 54.62 cycles/hash
+Small key speed test - 8-byte keys - 54.65 cycles/hash
+Small key speed test - 9-byte keys - 54.77 cycles/hash
+Small key speed test - 10-byte keys - 54.76 cycles/hash
+Small key speed test - 11-byte keys - 54.76 cycles/hash
+Small key speed test - 12-byte keys - 54.74 cycles/hash
+Small key speed test - 13-byte keys - 54.74 cycles/hash
+Small key speed test - 14-byte keys - 54.75 cycles/hash
+Small key speed test - 15-byte keys - 54.78 cycles/hash
+Small key speed test - 16-byte keys - 54.00 cycles/hash
+Small key speed test - 17-byte keys - 70.23 cycles/hash
+Small key speed test - 18-byte keys - 70.24 cycles/hash
+Small key speed test - 19-byte keys - 70.22 cycles/hash
+Small key speed test - 20-byte keys - 70.23 cycles/hash
+Small key speed test - 21-byte keys - 70.23 cycles/hash
+Small key speed test - 22-byte keys - 70.25 cycles/hash
+Small key speed test - 23-byte keys - 70.22 cycles/hash
+Small key speed test - 24-byte keys - 70.23 cycles/hash
+Small key speed test - 25-byte keys - 70.23 cycles/hash
+Small key speed test - 26-byte keys - 70.23 cycles/hash
+Small key speed test - 27-byte keys - 70.25 cycles/hash
+Small key speed test - 28-byte keys - 70.27 cycles/hash
+Small key speed test - 29-byte keys - 70.22 cycles/hash
+Small key speed test - 30-byte keys - 70.23 cycles/hash
+Small key speed test - 31-byte keys - 70.22 cycles/hash
+Small key speed test - 32-byte keys - 70.16 cycles/hash
+Average 62.465 cycles/hash
+Average, weighted by key length freq. 61.474 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 54.665 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 446.025 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 369.466 cycles/op (2.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 311.350 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 272.340 cycles/op (1.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 16.253592 seconds
--- Testing poly_1_mersenne "Degree 1 Hashing mod 2^61-1" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x12d788a826c4 - 0x12d788a8267c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.470 bytes/cycle - 1344.27 MiB/sec @ 3 ghz
-Alignment 6 - 0.470 bytes/cycle - 1343.87 MiB/sec @ 3 ghz
-Alignment 5 - 0.470 bytes/cycle - 1343.95 MiB/sec @ 3 ghz
-Alignment 4 - 0.470 bytes/cycle - 1345.13 MiB/sec @ 3 ghz
-Alignment 3 - 0.470 bytes/cycle - 1345.18 MiB/sec @ 3 ghz
-Alignment 2 - 0.470 bytes/cycle - 1344.30 MiB/sec @ 3 ghz
-Alignment 1 - 0.470 bytes/cycle - 1343.69 MiB/sec @ 3 ghz
-Alignment 0 - 0.470 bytes/cycle - 1343.69 MiB/sec @ 3 ghz
-Average - 0.470 bytes/cycle - 1344.26 MiB/sec @ 3 ghz
+Alignment 7 - 0.386 bytes/cycle - 1105.57 MiB/sec @ 3 ghz
+Alignment 6 - 0.399 bytes/cycle - 1140.32 MiB/sec @ 3 ghz
+Alignment 5 - 0.465 bytes/cycle - 1329.64 MiB/sec @ 3 ghz
+Alignment 4 - 0.465 bytes/cycle - 1330.10 MiB/sec @ 3 ghz
+Alignment 3 - 0.465 bytes/cycle - 1330.62 MiB/sec @ 3 ghz
+Alignment 2 - 0.465 bytes/cycle - 1330.59 MiB/sec @ 3 ghz
+Alignment 1 - 0.465 bytes/cycle - 1330.44 MiB/sec @ 3 ghz
+Alignment 0 - 0.465 bytes/cycle - 1329.70 MiB/sec @ 3 ghz
+Average - 0.447 bytes/cycle - 1278.37 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 32.15 cycles/hash
-Small key speed test - 2-byte keys - 31.24 cycles/hash
-Small key speed test - 3-byte keys - 33.99 cycles/hash
+Small key speed test - 1-byte keys - 32.00 cycles/hash
+Small key speed test - 2-byte keys - 31.00 cycles/hash
+Small key speed test - 3-byte keys - 33.63 cycles/hash
Small key speed test - 4-byte keys - 32.00 cycles/hash
Small key speed test - 5-byte keys - 41.00 cycles/hash
Small key speed test - 6-byte keys - 41.00 cycles/hash
Small key speed test - 7-byte keys - 41.00 cycles/hash
-Small key speed test - 8-byte keys - 40.98 cycles/hash
-Small key speed test - 9-byte keys - 49.94 cycles/hash
+Small key speed test - 8-byte keys - 40.93 cycles/hash
+Small key speed test - 9-byte keys - 49.92 cycles/hash
Small key speed test - 10-byte keys - 50.00 cycles/hash
-Small key speed test - 11-byte keys - 50.00 cycles/hash
-Small key speed test - 12-byte keys - 50.48 cycles/hash
-Small key speed test - 13-byte keys - 59.11 cycles/hash
+Small key speed test - 11-byte keys - 49.96 cycles/hash
+Small key speed test - 12-byte keys - 50.71 cycles/hash
+Small key speed test - 13-byte keys - 59.00 cycles/hash
Small key speed test - 14-byte keys - 59.00 cycles/hash
-Small key speed test - 15-byte keys - 59.24 cycles/hash
-Small key speed test - 16-byte keys - 59.00 cycles/hash
-Small key speed test - 17-byte keys - 67.00 cycles/hash
-Small key speed test - 18-byte keys - 67.95 cycles/hash
+Small key speed test - 15-byte keys - 59.76 cycles/hash
+Small key speed test - 16-byte keys - 58.63 cycles/hash
+Small key speed test - 17-byte keys - 67.20 cycles/hash
+Small key speed test - 18-byte keys - 67.46 cycles/hash
Small key speed test - 19-byte keys - 67.00 cycles/hash
-Small key speed test - 20-byte keys - 67.97 cycles/hash
-Small key speed test - 21-byte keys - 76.95 cycles/hash
-Small key speed test - 22-byte keys - 77.00 cycles/hash
-Small key speed test - 23-byte keys - 76.99 cycles/hash
+Small key speed test - 20-byte keys - 67.76 cycles/hash
+Small key speed test - 21-byte keys - 76.66 cycles/hash
+Small key speed test - 22-byte keys - 76.61 cycles/hash
+Small key speed test - 23-byte keys - 76.64 cycles/hash
Small key speed test - 24-byte keys - 77.00 cycles/hash
-Small key speed test - 25-byte keys - 86.00 cycles/hash
-Small key speed test - 26-byte keys - 85.99 cycles/hash
-Small key speed test - 27-byte keys - 86.00 cycles/hash
-Small key speed test - 28-byte keys - 86.00 cycles/hash
-Small key speed test - 29-byte keys - 95.00 cycles/hash
-Small key speed test - 30-byte keys - 95.00 cycles/hash
-Small key speed test - 31-byte keys - 95.15 cycles/hash
-Average 62.488 cycles/hash
+Small key speed test - 25-byte keys - 85.67 cycles/hash
+Small key speed test - 26-byte keys - 85.57 cycles/hash
+Small key speed test - 27-byte keys - 85.85 cycles/hash
+Small key speed test - 28-byte keys - 85.66 cycles/hash
+Small key speed test - 29-byte keys - 95.44 cycles/hash
+Small key speed test - 30-byte keys - 95.24 cycles/hash
+Small key speed test - 31-byte keys - 95.32 cycles/hash
+Small key speed test - 32-byte keys - 94.72 cycles/hash
+Average 63.417 cycles/hash
+Average, weighted by key length freq. 63.248 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 53.569 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 454.519 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 383.860 cycles/op (6.1 stdv)
+Init std HashMapTest: 422.331 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 350.555 cycles/op (2.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 334.039 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 258.516 cycles/op (3.7 stdv) ....... PASS
+Init fast HashMapTest: 297.342 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 244.410 cycles/op (1.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 18.235625 seconds
+Verification value is 0x00000001 - Testing took 19.036229 seconds
--- Testing poly_2_mersenne "Degree 2 Hashing mod 2^61-1" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x12e77ce7f914 - 0x12e77ce7f8a8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.474 bytes/cycle - 1355.64 MiB/sec @ 3 ghz
-Alignment 6 - 0.473 bytes/cycle - 1353.99 MiB/sec @ 3 ghz
-Alignment 5 - 0.474 bytes/cycle - 1355.42 MiB/sec @ 3 ghz
-Alignment 4 - 0.474 bytes/cycle - 1355.82 MiB/sec @ 3 ghz
-Alignment 3 - 0.474 bytes/cycle - 1356.06 MiB/sec @ 3 ghz
-Alignment 2 - 0.474 bytes/cycle - 1356.08 MiB/sec @ 3 ghz
-Alignment 1 - 0.474 bytes/cycle - 1355.05 MiB/sec @ 3 ghz
-Alignment 0 - 0.474 bytes/cycle - 1356.03 MiB/sec @ 3 ghz
-Average - 0.474 bytes/cycle - 1355.51 MiB/sec @ 3 ghz
+Alignment 7 - 0.486 bytes/cycle - 1391.88 MiB/sec @ 3 ghz
+Alignment 6 - 0.486 bytes/cycle - 1391.75 MiB/sec @ 3 ghz
+Alignment 5 - 0.487 bytes/cycle - 1392.05 MiB/sec @ 3 ghz
+Alignment 4 - 0.486 bytes/cycle - 1391.72 MiB/sec @ 3 ghz
+Alignment 3 - 0.487 bytes/cycle - 1392.11 MiB/sec @ 3 ghz
+Alignment 2 - 0.487 bytes/cycle - 1392.08 MiB/sec @ 3 ghz
+Alignment 1 - 0.487 bytes/cycle - 1392.04 MiB/sec @ 3 ghz
+Alignment 0 - 0.486 bytes/cycle - 1391.54 MiB/sec @ 3 ghz
+Average - 0.487 bytes/cycle - 1391.90 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 40.00 cycles/hash
-Small key speed test - 2-byte keys - 39.13 cycles/hash
-Small key speed test - 3-byte keys - 41.99 cycles/hash
-Small key speed test - 4-byte keys - 40.00 cycles/hash
-Small key speed test - 5-byte keys - 49.55 cycles/hash
-Small key speed test - 6-byte keys - 50.00 cycles/hash
-Small key speed test - 7-byte keys - 49.61 cycles/hash
-Small key speed test - 8-byte keys - 49.62 cycles/hash
-Small key speed test - 9-byte keys - 58.00 cycles/hash
-Small key speed test - 10-byte keys - 58.00 cycles/hash
-Small key speed test - 11-byte keys - 58.59 cycles/hash
-Small key speed test - 12-byte keys - 58.00 cycles/hash
-Small key speed test - 13-byte keys - 67.00 cycles/hash
-Small key speed test - 14-byte keys - 67.00 cycles/hash
-Small key speed test - 15-byte keys - 67.00 cycles/hash
-Small key speed test - 16-byte keys - 66.83 cycles/hash
-Small key speed test - 17-byte keys - 76.00 cycles/hash
-Small key speed test - 18-byte keys - 76.00 cycles/hash
-Small key speed test - 19-byte keys - 75.72 cycles/hash
-Small key speed test - 20-byte keys - 76.00 cycles/hash
-Small key speed test - 21-byte keys - 85.00 cycles/hash
-Small key speed test - 22-byte keys - 85.00 cycles/hash
-Small key speed test - 23-byte keys - 85.00 cycles/hash
-Small key speed test - 24-byte keys - 85.60 cycles/hash
-Small key speed test - 25-byte keys - 94.00 cycles/hash
-Small key speed test - 26-byte keys - 94.00 cycles/hash
-Small key speed test - 27-byte keys - 94.00 cycles/hash
-Small key speed test - 28-byte keys - 94.30 cycles/hash
-Small key speed test - 29-byte keys - 103.30 cycles/hash
-Small key speed test - 30-byte keys - 103.47 cycles/hash
-Small key speed test - 31-byte keys - 103.32 cycles/hash
-Average 70.679 cycles/hash
+Small key speed test - 1-byte keys - 39.00 cycles/hash
+Small key speed test - 2-byte keys - 38.69 cycles/hash
+Small key speed test - 3-byte keys - 41.00 cycles/hash
+Small key speed test - 4-byte keys - 39.00 cycles/hash
+Small key speed test - 5-byte keys - 48.00 cycles/hash
+Small key speed test - 6-byte keys - 48.58 cycles/hash
+Small key speed test - 7-byte keys - 48.00 cycles/hash
+Small key speed test - 8-byte keys - 48.00 cycles/hash
+Small key speed test - 9-byte keys - 56.80 cycles/hash
+Small key speed test - 10-byte keys - 56.99 cycles/hash
+Small key speed test - 11-byte keys - 57.00 cycles/hash
+Small key speed test - 12-byte keys - 57.00 cycles/hash
+Small key speed test - 13-byte keys - 65.54 cycles/hash
+Small key speed test - 14-byte keys - 65.63 cycles/hash
+Small key speed test - 15-byte keys - 65.00 cycles/hash
+Small key speed test - 16-byte keys - 65.00 cycles/hash
+Small key speed test - 17-byte keys - 74.00 cycles/hash
+Small key speed test - 18-byte keys - 74.00 cycles/hash
+Small key speed test - 19-byte keys - 74.00 cycles/hash
+Small key speed test - 20-byte keys - 74.41 cycles/hash
+Small key speed test - 21-byte keys - 83.00 cycles/hash
+Small key speed test - 22-byte keys - 83.00 cycles/hash
+Small key speed test - 23-byte keys - 83.00 cycles/hash
+Small key speed test - 24-byte keys - 83.59 cycles/hash
+Small key speed test - 25-byte keys - 91.64 cycles/hash
+Small key speed test - 26-byte keys - 91.71 cycles/hash
+Small key speed test - 27-byte keys - 91.66 cycles/hash
+Small key speed test - 28-byte keys - 92.57 cycles/hash
+Small key speed test - 29-byte keys - 100.59 cycles/hash
+Small key speed test - 30-byte keys - 100.54 cycles/hash
+Small key speed test - 31-byte keys - 100.61 cycles/hash
+Small key speed test - 32-byte keys - 101.51 cycles/hash
+Average 69.970 cycles/hash
+Average, weighted by key length freq. 69.735 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 60.199 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 465.672 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 390.301 cycles/op (6.4 stdv)
+Init std HashMapTest: 441.156 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 353.947 cycles/op (2.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 341.829 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 267.089 cycles/op (4.7 stdv) ....... PASS
+Init fast HashMapTest: 307.015 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 255.441 cycles/op (3.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 19.628627 seconds
+Verification value is 0x00000001 - Testing took 19.605164 seconds
--- Testing poly_3_mersenne "Degree 3 Hashing mod 2^61-1" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x12f7ecc784d4 - 0x12f7ecc7848c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.470 bytes/cycle - 1345.54 MiB/sec @ 3 ghz
-Alignment 6 - 0.470 bytes/cycle - 1344.57 MiB/sec @ 3 ghz
-Alignment 5 - 0.469 bytes/cycle - 1342.78 MiB/sec @ 3 ghz
-Alignment 4 - 0.470 bytes/cycle - 1345.38 MiB/sec @ 3 ghz
-Alignment 3 - 0.470 bytes/cycle - 1345.20 MiB/sec @ 3 ghz
-Alignment 2 - 0.470 bytes/cycle - 1345.40 MiB/sec @ 3 ghz
-Alignment 1 - 0.470 bytes/cycle - 1345.15 MiB/sec @ 3 ghz
-Alignment 0 - 0.470 bytes/cycle - 1345.60 MiB/sec @ 3 ghz
-Average - 0.470 bytes/cycle - 1344.95 MiB/sec @ 3 ghz
+Alignment 7 - 0.393 bytes/cycle - 1123.32 MiB/sec @ 3 ghz
+Alignment 6 - 0.472 bytes/cycle - 1350.53 MiB/sec @ 3 ghz
+Alignment 5 - 0.468 bytes/cycle - 1338.92 MiB/sec @ 3 ghz
+Alignment 4 - 0.470 bytes/cycle - 1345.68 MiB/sec @ 3 ghz
+Alignment 3 - 0.472 bytes/cycle - 1351.52 MiB/sec @ 3 ghz
+Alignment 2 - 0.472 bytes/cycle - 1349.84 MiB/sec @ 3 ghz
+Alignment 1 - 0.472 bytes/cycle - 1351.50 MiB/sec @ 3 ghz
+Alignment 0 - 0.472 bytes/cycle - 1349.89 MiB/sec @ 3 ghz
+Average - 0.461 bytes/cycle - 1320.15 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 49.44 cycles/hash
+Small key speed test - 1-byte keys - 49.00 cycles/hash
Small key speed test - 2-byte keys - 48.00 cycles/hash
-Small key speed test - 3-byte keys - 50.95 cycles/hash
+Small key speed test - 3-byte keys - 50.86 cycles/hash
Small key speed test - 4-byte keys - 50.00 cycles/hash
-Small key speed test - 5-byte keys - 58.14 cycles/hash
-Small key speed test - 6-byte keys - 57.96 cycles/hash
-Small key speed test - 7-byte keys - 58.57 cycles/hash
-Small key speed test - 8-byte keys - 58.92 cycles/hash
-Small key speed test - 9-byte keys - 67.23 cycles/hash
+Small key speed test - 5-byte keys - 58.62 cycles/hash
+Small key speed test - 6-byte keys - 57.51 cycles/hash
+Small key speed test - 7-byte keys - 58.00 cycles/hash
+Small key speed test - 8-byte keys - 58.48 cycles/hash
+Small key speed test - 9-byte keys - 67.00 cycles/hash
Small key speed test - 10-byte keys - 67.00 cycles/hash
-Small key speed test - 11-byte keys - 67.31 cycles/hash
+Small key speed test - 11-byte keys - 67.00 cycles/hash
Small key speed test - 12-byte keys - 67.00 cycles/hash
Small key speed test - 13-byte keys - 76.00 cycles/hash
-Small key speed test - 14-byte keys - 76.24 cycles/hash
-Small key speed test - 15-byte keys - 76.30 cycles/hash
+Small key speed test - 14-byte keys - 76.00 cycles/hash
+Small key speed test - 15-byte keys - 76.13 cycles/hash
Small key speed test - 16-byte keys - 76.00 cycles/hash
-Small key speed test - 17-byte keys - 84.88 cycles/hash
-Small key speed test - 18-byte keys - 84.88 cycles/hash
-Small key speed test - 19-byte keys - 84.95 cycles/hash
-Small key speed test - 20-byte keys - 85.89 cycles/hash
-Small key speed test - 21-byte keys - 94.92 cycles/hash
+Small key speed test - 17-byte keys - 84.00 cycles/hash
+Small key speed test - 18-byte keys - 84.29 cycles/hash
+Small key speed test - 19-byte keys - 84.80 cycles/hash
+Small key speed test - 20-byte keys - 85.00 cycles/hash
+Small key speed test - 21-byte keys - 94.00 cycles/hash
Small key speed test - 22-byte keys - 95.00 cycles/hash
-Small key speed test - 23-byte keys - 95.00 cycles/hash
-Small key speed test - 24-byte keys - 95.76 cycles/hash
-Small key speed test - 25-byte keys - 104.70 cycles/hash
-Small key speed test - 26-byte keys - 104.54 cycles/hash
-Small key speed test - 27-byte keys - 104.47 cycles/hash
-Small key speed test - 28-byte keys - 104.73 cycles/hash
-Small key speed test - 29-byte keys - 112.54 cycles/hash
-Small key speed test - 30-byte keys - 112.52 cycles/hash
-Small key speed test - 31-byte keys - 112.60 cycles/hash
-Average 80.079 cycles/hash
+Small key speed test - 23-byte keys - 94.94 cycles/hash
+Small key speed test - 24-byte keys - 95.33 cycles/hash
+Small key speed test - 25-byte keys - 104.00 cycles/hash
+Small key speed test - 26-byte keys - 104.27 cycles/hash
+Small key speed test - 27-byte keys - 104.33 cycles/hash
+Small key speed test - 28-byte keys - 104.68 cycles/hash
+Small key speed test - 29-byte keys - 112.28 cycles/hash
+Small key speed test - 30-byte keys - 112.00 cycles/hash
+Small key speed test - 31-byte keys - 112.28 cycles/hash
+Small key speed test - 32-byte keys - 112.16 cycles/hash
+Average 80.812 cycles/hash
+Average, weighted by key length freq. 80.451 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 70.725 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 474.465 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 399.817 cycles/op (7.6 stdv)
+Init std HashMapTest: 447.389 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 369.316 cycles/op (4.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 346.550 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 277.605 cycles/op (5.7 stdv) ....... PASS
+Init fast HashMapTest: 318.915 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 263.116 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 21.368673 seconds
+Verification value is 0x00000001 - Testing took 22.078920 seconds
--- Testing poly_4_mersenne "Degree 4 Hashing mod 2^61-1" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x130a6dc51a2c - 0x130a6dc519e4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.474 bytes/cycle - 1356.79 MiB/sec @ 3 ghz
-Alignment 6 - 0.475 bytes/cycle - 1360.25 MiB/sec @ 3 ghz
-Alignment 5 - 0.475 bytes/cycle - 1359.36 MiB/sec @ 3 ghz
-Alignment 4 - 0.475 bytes/cycle - 1358.19 MiB/sec @ 3 ghz
-Alignment 3 - 0.474 bytes/cycle - 1356.87 MiB/sec @ 3 ghz
-Alignment 2 - 0.474 bytes/cycle - 1357.47 MiB/sec @ 3 ghz
-Alignment 1 - 0.474 bytes/cycle - 1357.32 MiB/sec @ 3 ghz
-Alignment 0 - 0.475 bytes/cycle - 1360.32 MiB/sec @ 3 ghz
-Average - 0.475 bytes/cycle - 1358.32 MiB/sec @ 3 ghz
+Alignment 7 - 0.488 bytes/cycle - 1395.41 MiB/sec @ 3 ghz
+Alignment 6 - 0.488 bytes/cycle - 1395.43 MiB/sec @ 3 ghz
+Alignment 5 - 0.488 bytes/cycle - 1395.42 MiB/sec @ 3 ghz
+Alignment 4 - 0.487 bytes/cycle - 1392.73 MiB/sec @ 3 ghz
+Alignment 3 - 0.487 bytes/cycle - 1392.10 MiB/sec @ 3 ghz
+Alignment 2 - 0.488 bytes/cycle - 1395.39 MiB/sec @ 3 ghz
+Alignment 1 - 0.487 bytes/cycle - 1392.45 MiB/sec @ 3 ghz
+Alignment 0 - 0.487 bytes/cycle - 1392.52 MiB/sec @ 3 ghz
+Average - 0.487 bytes/cycle - 1393.93 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 58.00 cycles/hash
-Small key speed test - 2-byte keys - 57.00 cycles/hash
-Small key speed test - 3-byte keys - 58.69 cycles/hash
-Small key speed test - 4-byte keys - 57.00 cycles/hash
-Small key speed test - 5-byte keys - 66.00 cycles/hash
-Small key speed test - 6-byte keys - 66.29 cycles/hash
-Small key speed test - 7-byte keys - 66.44 cycles/hash
-Small key speed test - 8-byte keys - 66.28 cycles/hash
-Small key speed test - 9-byte keys - 75.57 cycles/hash
-Small key speed test - 10-byte keys - 75.99 cycles/hash
-Small key speed test - 11-byte keys - 75.32 cycles/hash
-Small key speed test - 12-byte keys - 75.46 cycles/hash
-Small key speed test - 13-byte keys - 84.09 cycles/hash
-Small key speed test - 14-byte keys - 84.00 cycles/hash
-Small key speed test - 15-byte keys - 84.17 cycles/hash
-Small key speed test - 16-byte keys - 84.00 cycles/hash
-Small key speed test - 17-byte keys - 92.92 cycles/hash
-Small key speed test - 18-byte keys - 93.21 cycles/hash
-Small key speed test - 19-byte keys - 92.96 cycles/hash
-Small key speed test - 20-byte keys - 93.00 cycles/hash
-Small key speed test - 21-byte keys - 104.87 cycles/hash
-Small key speed test - 22-byte keys - 104.76 cycles/hash
-Small key speed test - 23-byte keys - 103.95 cycles/hash
-Small key speed test - 24-byte keys - 103.22 cycles/hash
-Small key speed test - 25-byte keys - 110.95 cycles/hash
-Small key speed test - 26-byte keys - 111.42 cycles/hash
-Small key speed test - 27-byte keys - 111.00 cycles/hash
-Small key speed test - 28-byte keys - 111.18 cycles/hash
-Small key speed test - 29-byte keys - 120.27 cycles/hash
-Small key speed test - 30-byte keys - 120.43 cycles/hash
-Small key speed test - 31-byte keys - 120.20 cycles/hash
-Average 88.020 cycles/hash
+Small key speed test - 1-byte keys - 56.54 cycles/hash
+Small key speed test - 2-byte keys - 60.17 cycles/hash
+Small key speed test - 3-byte keys - 57.00 cycles/hash
+Small key speed test - 4-byte keys - 56.00 cycles/hash
+Small key speed test - 5-byte keys - 64.81 cycles/hash
+Small key speed test - 6-byte keys - 65.00 cycles/hash
+Small key speed test - 7-byte keys - 64.86 cycles/hash
+Small key speed test - 8-byte keys - 65.00 cycles/hash
+Small key speed test - 9-byte keys - 73.44 cycles/hash
+Small key speed test - 10-byte keys - 73.96 cycles/hash
+Small key speed test - 11-byte keys - 73.94 cycles/hash
+Small key speed test - 12-byte keys - 73.28 cycles/hash
+Small key speed test - 13-byte keys - 82.00 cycles/hash
+Small key speed test - 14-byte keys - 82.00 cycles/hash
+Small key speed test - 15-byte keys - 82.00 cycles/hash
+Small key speed test - 16-byte keys - 82.49 cycles/hash
+Small key speed test - 17-byte keys - 105.05 cycles/hash
+Small key speed test - 18-byte keys - 113.00 cycles/hash
+Small key speed test - 19-byte keys - 113.00 cycles/hash
+Small key speed test - 20-byte keys - 96.79 cycles/hash
+Small key speed test - 21-byte keys - 102.00 cycles/hash
+Small key speed test - 22-byte keys - 102.42 cycles/hash
+Small key speed test - 23-byte keys - 101.48 cycles/hash
+Small key speed test - 24-byte keys - 100.66 cycles/hash
+Small key speed test - 25-byte keys - 108.48 cycles/hash
+Small key speed test - 26-byte keys - 109.21 cycles/hash
+Small key speed test - 27-byte keys - 108.83 cycles/hash
+Small key speed test - 28-byte keys - 109.00 cycles/hash
+Small key speed test - 29-byte keys - 117.33 cycles/hash
+Small key speed test - 30-byte keys - 117.00 cycles/hash
+Small key speed test - 31-byte keys - 117.00 cycles/hash
+Small key speed test - 32-byte keys - 116.45 cycles/hash
+Average 89.068 cycles/hash
+Average, weighted by key length freq. 90.230 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 77.254 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 482.149 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 408.569 cycles/op (5.2 stdv)
+Init std HashMapTest: 443.073 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 370.279 cycles/op (2.8 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 359.845 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 281.047 cycles/op (4.8 stdv) ....... PASS
+Init fast HashMapTest: 323.999 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 262.968 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 22.747686 seconds
+Verification value is 0x00000001 - Testing took 23.076098 seconds
--- Testing tabulation "64-bit Tabulation with Multiply-Shift Mixer" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.750 bytes/cycle - 7867.44 MiB/sec @ 3 ghz
-Alignment 6 - 2.750 bytes/cycle - 7866.74 MiB/sec @ 3 ghz
-Alignment 5 - 2.750 bytes/cycle - 7866.41 MiB/sec @ 3 ghz
-Alignment 4 - 2.749 bytes/cycle - 7864.42 MiB/sec @ 3 ghz
-Alignment 3 - 2.746 bytes/cycle - 7857.02 MiB/sec @ 3 ghz
-Alignment 2 - 2.750 bytes/cycle - 7867.61 MiB/sec @ 3 ghz
-Alignment 1 - 2.745 bytes/cycle - 7852.41 MiB/sec @ 3 ghz
-Alignment 0 - 2.740 bytes/cycle - 7838.73 MiB/sec @ 3 ghz
-Average - 2.747 bytes/cycle - 7860.10 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 34.24 cycles/hash
-Small key speed test - 2-byte keys - 34.95 cycles/hash
-Small key speed test - 3-byte keys - 37.00 cycles/hash
-Small key speed test - 4-byte keys - 33.97 cycles/hash
-Small key speed test - 5-byte keys - 35.88 cycles/hash
-Small key speed test - 6-byte keys - 35.49 cycles/hash
-Small key speed test - 7-byte keys - 37.51 cycles/hash
-Small key speed test - 8-byte keys - 33.92 cycles/hash
-Small key speed test - 9-byte keys - 37.93 cycles/hash
-Small key speed test - 10-byte keys - 37.00 cycles/hash
-Small key speed test - 11-byte keys - 39.93 cycles/hash
-Small key speed test - 12-byte keys - 36.61 cycles/hash
-Small key speed test - 13-byte keys - 39.97 cycles/hash
-Small key speed test - 14-byte keys - 38.86 cycles/hash
-Small key speed test - 15-byte keys - 40.96 cycles/hash
-Small key speed test - 16-byte keys - 36.78 cycles/hash
-Small key speed test - 17-byte keys - 40.97 cycles/hash
-Small key speed test - 18-byte keys - 40.21 cycles/hash
-Small key speed test - 19-byte keys - 43.11 cycles/hash
-Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 42.21 cycles/hash
-Small key speed test - 22-byte keys - 42.08 cycles/hash
-Small key speed test - 23-byte keys - 44.00 cycles/hash
-Small key speed test - 24-byte keys - 39.00 cycles/hash
-Small key speed test - 25-byte keys - 44.86 cycles/hash
-Small key speed test - 26-byte keys - 44.13 cycles/hash
-Small key speed test - 27-byte keys - 44.72 cycles/hash
-Small key speed test - 28-byte keys - 43.57 cycles/hash
-Small key speed test - 29-byte keys - 45.00 cycles/hash
-Small key speed test - 30-byte keys - 44.85 cycles/hash
-Small key speed test - 31-byte keys - 47.65 cycles/hash
-Average 39.882 cycles/hash
+WARNING: timer resolution is 108 (0x6c) ticks (0x131dc55e43d4 - 0x131dc55e4368). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 2.300 bytes/cycle - 6580.04 MiB/sec @ 3 ghz
+Alignment 6 - 2.300 bytes/cycle - 6579.95 MiB/sec @ 3 ghz
+Alignment 5 - 2.300 bytes/cycle - 6580.04 MiB/sec @ 3 ghz
+Alignment 4 - 2.773 bytes/cycle - 7932.90 MiB/sec @ 3 ghz
+Alignment 3 - 2.768 bytes/cycle - 7918.21 MiB/sec @ 3 ghz
+Alignment 2 - 2.759 bytes/cycle - 7892.95 MiB/sec @ 3 ghz
+Alignment 1 - 2.758 bytes/cycle - 7889.84 MiB/sec @ 3 ghz
+Alignment 0 - 2.758 bytes/cycle - 7889.63 MiB/sec @ 3 ghz
+Average - 2.589 bytes/cycle - 7407.94 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 34.15 cycles/hash
+Small key speed test - 2-byte keys - 34.93 cycles/hash
+Small key speed test - 3-byte keys - 37.14 cycles/hash
+Small key speed test - 4-byte keys - 33.80 cycles/hash
+Small key speed test - 5-byte keys - 35.70 cycles/hash
+Small key speed test - 6-byte keys - 35.32 cycles/hash
+Small key speed test - 7-byte keys - 37.30 cycles/hash
+Small key speed test - 8-byte keys - 33.82 cycles/hash
+Small key speed test - 9-byte keys - 37.83 cycles/hash
+Small key speed test - 10-byte keys - 36.96 cycles/hash
+Small key speed test - 11-byte keys - 39.78 cycles/hash
+Small key speed test - 12-byte keys - 36.00 cycles/hash
+Small key speed test - 13-byte keys - 39.82 cycles/hash
+Small key speed test - 14-byte keys - 38.69 cycles/hash
+Small key speed test - 15-byte keys - 40.76 cycles/hash
+Small key speed test - 16-byte keys - 36.53 cycles/hash
+Small key speed test - 17-byte keys - 40.89 cycles/hash
+Small key speed test - 18-byte keys - 40.13 cycles/hash
+Small key speed test - 19-byte keys - 42.98 cycles/hash
+Small key speed test - 20-byte keys - 38.98 cycles/hash
+Small key speed test - 21-byte keys - 42.15 cycles/hash
+Small key speed test - 22-byte keys - 41.90 cycles/hash
+Small key speed test - 23-byte keys - 43.98 cycles/hash
+Small key speed test - 24-byte keys - 38.99 cycles/hash
+Small key speed test - 25-byte keys - 44.60 cycles/hash
+Small key speed test - 26-byte keys - 43.90 cycles/hash
+Small key speed test - 27-byte keys - 44.56 cycles/hash
+Small key speed test - 28-byte keys - 43.00 cycles/hash
+Small key speed test - 29-byte keys - 45.25 cycles/hash
+Small key speed test - 30-byte keys - 44.73 cycles/hash
+Small key speed test - 31-byte keys - 47.48 cycles/hash
+Small key speed test - 32-byte keys - 42.59 cycles/hash
+Average 39.833 cycles/hash
+Average, weighted by key length freq. 39.790 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 37.299 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 477.273 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 393.743 cycles/op (7.7 stdv)
+Init std HashMapTest: 439.571 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 355.452 cycles/op (3.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 325.825 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 260.991 cycles/op (6.5 stdv) ....... PASS
+Init fast HashMapTest: 284.621 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 240.248 cycles/op (3.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.883434 seconds
+Verification value is 0x00000001 - Testing took 11.179657 seconds
--- Testing tabulation32 "32-bit Tabulation with Multiply-Shift Mixer" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x13272429ec64 - 0x13272429ebf8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.977 bytes/cycle - 5656.04 MiB/sec @ 3 ghz
-Alignment 6 - 1.983 bytes/cycle - 5673.46 MiB/sec @ 3 ghz
-Alignment 5 - 1.982 bytes/cycle - 5671.48 MiB/sec @ 3 ghz
-Alignment 4 - 1.980 bytes/cycle - 5665.84 MiB/sec @ 3 ghz
-Alignment 3 - 1.980 bytes/cycle - 5664.36 MiB/sec @ 3 ghz
-Alignment 2 - 1.979 bytes/cycle - 5662.36 MiB/sec @ 3 ghz
-Alignment 1 - 1.980 bytes/cycle - 5664.30 MiB/sec @ 3 ghz
-Alignment 0 - 1.983 bytes/cycle - 5672.13 MiB/sec @ 3 ghz
-Average - 1.980 bytes/cycle - 5666.25 MiB/sec @ 3 ghz
+Alignment 7 - 2.031 bytes/cycle - 5809.66 MiB/sec @ 3 ghz
+Alignment 6 - 2.032 bytes/cycle - 5812.70 MiB/sec @ 3 ghz
+Alignment 5 - 2.035 bytes/cycle - 5822.05 MiB/sec @ 3 ghz
+Alignment 4 - 2.035 bytes/cycle - 5822.73 MiB/sec @ 3 ghz
+Alignment 3 - 2.034 bytes/cycle - 5820.19 MiB/sec @ 3 ghz
+Alignment 2 - 2.035 bytes/cycle - 5822.30 MiB/sec @ 3 ghz
+Alignment 1 - 2.034 bytes/cycle - 5819.76 MiB/sec @ 3 ghz
+Alignment 0 - 2.036 bytes/cycle - 5825.78 MiB/sec @ 3 ghz
+Average - 2.034 bytes/cycle - 5819.40 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 30.00 cycles/hash
-Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 29.94 cycles/hash
+Small key speed test - 1-byte keys - 29.62 cycles/hash
+Small key speed test - 2-byte keys - 27.72 cycles/hash
+Small key speed test - 3-byte keys - 29.00 cycles/hash
Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 31.00 cycles/hash
-Small key speed test - 6-byte keys - 30.00 cycles/hash
-Small key speed test - 7-byte keys - 32.00 cycles/hash
-Small key speed test - 8-byte keys - 29.26 cycles/hash
-Small key speed test - 9-byte keys - 33.15 cycles/hash
-Small key speed test - 10-byte keys - 31.15 cycles/hash
-Small key speed test - 11-byte keys - 34.00 cycles/hash
-Small key speed test - 12-byte keys - 30.25 cycles/hash
-Small key speed test - 13-byte keys - 33.98 cycles/hash
-Small key speed test - 14-byte keys - 32.59 cycles/hash
-Small key speed test - 15-byte keys - 34.98 cycles/hash
-Small key speed test - 16-byte keys - 46.47 cycles/hash
-Small key speed test - 17-byte keys - 48.43 cycles/hash
-Small key speed test - 18-byte keys - 48.28 cycles/hash
-Small key speed test - 19-byte keys - 48.00 cycles/hash
-Small key speed test - 20-byte keys - 47.80 cycles/hash
-Small key speed test - 21-byte keys - 49.61 cycles/hash
-Small key speed test - 22-byte keys - 48.78 cycles/hash
-Small key speed test - 23-byte keys - 49.00 cycles/hash
-Small key speed test - 24-byte keys - 49.16 cycles/hash
-Small key speed test - 25-byte keys - 50.94 cycles/hash
-Small key speed test - 26-byte keys - 51.00 cycles/hash
-Small key speed test - 27-byte keys - 50.00 cycles/hash
-Small key speed test - 28-byte keys - 50.99 cycles/hash
-Small key speed test - 29-byte keys - 52.00 cycles/hash
-Small key speed test - 30-byte keys - 52.15 cycles/hash
-Small key speed test - 31-byte keys - 52.29 cycles/hash
-Average 40.748 cycles/hash
+Small key speed test - 5-byte keys - 30.00 cycles/hash
+Small key speed test - 6-byte keys - 29.00 cycles/hash
+Small key speed test - 7-byte keys - 31.00 cycles/hash
+Small key speed test - 8-byte keys - 28.00 cycles/hash
+Small key speed test - 9-byte keys - 32.30 cycles/hash
+Small key speed test - 10-byte keys - 30.32 cycles/hash
+Small key speed test - 11-byte keys - 33.00 cycles/hash
+Small key speed test - 12-byte keys - 29.89 cycles/hash
+Small key speed test - 13-byte keys - 32.99 cycles/hash
+Small key speed test - 14-byte keys - 31.98 cycles/hash
+Small key speed test - 15-byte keys - 33.99 cycles/hash
+Small key speed test - 16-byte keys - 45.04 cycles/hash
+Small key speed test - 17-byte keys - 47.00 cycles/hash
+Small key speed test - 18-byte keys - 47.00 cycles/hash
+Small key speed test - 19-byte keys - 47.00 cycles/hash
+Small key speed test - 20-byte keys - 46.00 cycles/hash
+Small key speed test - 21-byte keys - 47.82 cycles/hash
+Small key speed test - 22-byte keys - 46.56 cycles/hash
+Small key speed test - 23-byte keys - 47.98 cycles/hash
+Small key speed test - 24-byte keys - 47.95 cycles/hash
+Small key speed test - 25-byte keys - 49.00 cycles/hash
+Small key speed test - 26-byte keys - 49.20 cycles/hash
+Small key speed test - 27-byte keys - 48.95 cycles/hash
+Small key speed test - 28-byte keys - 49.46 cycles/hash
+Small key speed test - 29-byte keys - 50.89 cycles/hash
+Small key speed test - 30-byte keys - 52.16 cycles/hash
+Small key speed test - 31-byte keys - 51.03 cycles/hash
+Small key speed test - 32-byte keys - 55.32 cycles/hash
+Average 40.161 cycles/hash
+Average, weighted by key length freq. 39.734 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 37.057 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 433.894 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 374.479 cycles/op (6.8 stdv)
+Init std HashMapTest: 428.152 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 339.839 cycles/op (2.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 310.649 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 247.273 cycles/op (4.2 stdv) ....... PASS
+Init fast HashMapTest: 287.042 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 233.000 cycles/op (2.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.248495 seconds
+Verification value is 0x00000001 - Testing took 11.220119 seconds
--- Testing crc32_hw "SSE4.2 crc32 in HW" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.115 bytes/cycle - 6050.63 MiB/sec @ 3 ghz
-Alignment 6 - 2.119 bytes/cycle - 6062.61 MiB/sec @ 3 ghz
-Alignment 5 - 2.118 bytes/cycle - 6060.18 MiB/sec @ 3 ghz
-Alignment 4 - 2.117 bytes/cycle - 6056.59 MiB/sec @ 3 ghz
-Alignment 3 - 2.116 bytes/cycle - 6053.67 MiB/sec @ 3 ghz
-Alignment 2 - 2.117 bytes/cycle - 6056.61 MiB/sec @ 3 ghz
-Alignment 1 - 2.116 bytes/cycle - 6053.98 MiB/sec @ 3 ghz
-Alignment 0 - 2.116 bytes/cycle - 6055.14 MiB/sec @ 3 ghz
-Average - 2.117 bytes/cycle - 6056.18 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 27.51 cycles/hash
-Small key speed test - 2-byte keys - 30.37 cycles/hash
-Small key speed test - 3-byte keys - 34.28 cycles/hash
-Small key speed test - 4-byte keys - 33.96 cycles/hash
-Small key speed test - 5-byte keys - 38.56 cycles/hash
-Small key speed test - 6-byte keys - 39.30 cycles/hash
-Small key speed test - 7-byte keys - 41.50 cycles/hash
-Small key speed test - 8-byte keys - 33.87 cycles/hash
-Small key speed test - 9-byte keys - 38.56 cycles/hash
-Small key speed test - 10-byte keys - 38.90 cycles/hash
-Small key speed test - 11-byte keys - 43.10 cycles/hash
-Small key speed test - 12-byte keys - 35.72 cycles/hash
-Small key speed test - 13-byte keys - 41.99 cycles/hash
-Small key speed test - 14-byte keys - 42.44 cycles/hash
-Small key speed test - 15-byte keys - 45.21 cycles/hash
-Small key speed test - 16-byte keys - 40.22 cycles/hash
-Small key speed test - 17-byte keys - 44.13 cycles/hash
-Small key speed test - 18-byte keys - 44.66 cycles/hash
-Small key speed test - 19-byte keys - 47.94 cycles/hash
-Small key speed test - 20-byte keys - 39.08 cycles/hash
-Small key speed test - 21-byte keys - 45.51 cycles/hash
-Small key speed test - 22-byte keys - 45.97 cycles/hash
-Small key speed test - 23-byte keys - 49.86 cycles/hash
-Small key speed test - 24-byte keys - 43.40 cycles/hash
-Small key speed test - 25-byte keys - 48.07 cycles/hash
-Small key speed test - 26-byte keys - 48.35 cycles/hash
-Small key speed test - 27-byte keys - 50.19 cycles/hash
-Small key speed test - 28-byte keys - 44.08 cycles/hash
-Small key speed test - 29-byte keys - 48.70 cycles/hash
-Small key speed test - 30-byte keys - 49.93 cycles/hash
-Small key speed test - 31-byte keys - 53.51 cycles/hash
-Average 42.221 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 434.616 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 367.298 cycles/op (6.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 304.704 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.538 cycles/op (4.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.423691 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x13308c57fee8 - 0x13308c57fea0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 2.188 bytes/cycle - 6261.33 MiB/sec @ 3 ghz
+Alignment 6 - 1.807 bytes/cycle - 5169.63 MiB/sec @ 3 ghz
+Alignment 5 - 1.769 bytes/cycle - 5062.08 MiB/sec @ 3 ghz
+Alignment 4 - 1.769 bytes/cycle - 5061.94 MiB/sec @ 3 ghz
+Alignment 3 - 1.769 bytes/cycle - 5061.68 MiB/sec @ 3 ghz
+Alignment 2 - 1.785 bytes/cycle - 5105.98 MiB/sec @ 3 ghz
+Alignment 1 - 2.202 bytes/cycle - 6300.93 MiB/sec @ 3 ghz
+Alignment 0 - 2.195 bytes/cycle - 6278.77 MiB/sec @ 3 ghz
+Average - 1.936 bytes/cycle - 5537.79 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 26.52 cycles/hash
+Small key speed test - 2-byte keys - 29.27 cycles/hash
+Small key speed test - 3-byte keys - 32.83 cycles/hash
+Small key speed test - 4-byte keys - 32.76 cycles/hash
+Small key speed test - 5-byte keys - 37.19 cycles/hash
+Small key speed test - 6-byte keys - 37.41 cycles/hash
+Small key speed test - 7-byte keys - 40.15 cycles/hash
+Small key speed test - 8-byte keys - 32.61 cycles/hash
+Small key speed test - 9-byte keys - 36.93 cycles/hash
+Small key speed test - 10-byte keys - 37.43 cycles/hash
+Small key speed test - 11-byte keys - 41.59 cycles/hash
+Small key speed test - 12-byte keys - 34.62 cycles/hash
+Small key speed test - 13-byte keys - 40.65 cycles/hash
+Small key speed test - 14-byte keys - 41.10 cycles/hash
+Small key speed test - 15-byte keys - 43.64 cycles/hash
+Small key speed test - 16-byte keys - 38.96 cycles/hash
+Small key speed test - 17-byte keys - 42.59 cycles/hash
+Small key speed test - 18-byte keys - 43.08 cycles/hash
+Small key speed test - 19-byte keys - 45.98 cycles/hash
+Small key speed test - 20-byte keys - 38.50 cycles/hash
+Small key speed test - 21-byte keys - 44.11 cycles/hash
+Small key speed test - 22-byte keys - 44.49 cycles/hash
+Small key speed test - 23-byte keys - 48.28 cycles/hash
+Small key speed test - 24-byte keys - 42.02 cycles/hash
+Small key speed test - 25-byte keys - 46.09 cycles/hash
+Small key speed test - 26-byte keys - 47.06 cycles/hash
+Small key speed test - 27-byte keys - 48.58 cycles/hash
+Small key speed test - 28-byte keys - 41.61 cycles/hash
+Small key speed test - 29-byte keys - 47.03 cycles/hash
+Small key speed test - 30-byte keys - 48.28 cycles/hash
+Small key speed test - 31-byte keys - 51.84 cycles/hash
+Small key speed test - 32-byte keys - 42.37 cycles/hash
+Average 40.799 cycles/hash
+Average, weighted by key length freq. 41.411 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 38.392 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 398.783 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 321.550 cycles/op (3.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 273.147 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 225.650 cycles/op (2.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 11.495928 seconds
--- Testing crc64_hw "SSE4.2 crc64 in HW" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x133a2f229f40 - 0x133a2f229ed4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.150 bytes/cycle - 6149.97 MiB/sec @ 3 ghz
-Alignment 6 - 2.155 bytes/cycle - 6164.11 MiB/sec @ 3 ghz
-Alignment 5 - 2.138 bytes/cycle - 6116.18 MiB/sec @ 3 ghz
-Alignment 4 - 2.155 bytes/cycle - 6166.02 MiB/sec @ 3 ghz
-Alignment 3 - 2.147 bytes/cycle - 6142.45 MiB/sec @ 3 ghz
-Alignment 2 - 2.153 bytes/cycle - 6160.97 MiB/sec @ 3 ghz
-Alignment 1 - 2.148 bytes/cycle - 6145.34 MiB/sec @ 3 ghz
-Alignment 0 - 2.149 bytes/cycle - 6148.69 MiB/sec @ 3 ghz
-Average - 2.149 bytes/cycle - 6149.22 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 26.72 cycles/hash
-Small key speed test - 2-byte keys - 28.31 cycles/hash
-Small key speed test - 3-byte keys - 31.63 cycles/hash
-Small key speed test - 4-byte keys - 32.09 cycles/hash
-Small key speed test - 5-byte keys - 35.67 cycles/hash
-Small key speed test - 6-byte keys - 34.66 cycles/hash
-Small key speed test - 7-byte keys - 40.50 cycles/hash
-Small key speed test - 8-byte keys - 34.62 cycles/hash
-Small key speed test - 9-byte keys - 38.06 cycles/hash
-Small key speed test - 10-byte keys - 36.10 cycles/hash
-Small key speed test - 11-byte keys - 42.86 cycles/hash
-Small key speed test - 12-byte keys - 35.94 cycles/hash
-Small key speed test - 13-byte keys - 41.31 cycles/hash
-Small key speed test - 14-byte keys - 40.62 cycles/hash
-Small key speed test - 15-byte keys - 43.27 cycles/hash
-Small key speed test - 16-byte keys - 37.92 cycles/hash
-Small key speed test - 17-byte keys - 43.55 cycles/hash
-Small key speed test - 18-byte keys - 42.88 cycles/hash
-Small key speed test - 19-byte keys - 43.65 cycles/hash
-Small key speed test - 20-byte keys - 40.03 cycles/hash
-Small key speed test - 21-byte keys - 44.43 cycles/hash
-Small key speed test - 22-byte keys - 42.31 cycles/hash
-Small key speed test - 23-byte keys - 45.08 cycles/hash
-Small key speed test - 24-byte keys - 39.28 cycles/hash
-Small key speed test - 25-byte keys - 43.83 cycles/hash
-Small key speed test - 26-byte keys - 45.87 cycles/hash
-Small key speed test - 27-byte keys - 48.03 cycles/hash
-Small key speed test - 28-byte keys - 41.87 cycles/hash
-Small key speed test - 29-byte keys - 47.61 cycles/hash
-Small key speed test - 30-byte keys - 44.00 cycles/hash
-Small key speed test - 31-byte keys - 50.35 cycles/hash
-Average 40.099 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 423.865 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 334.458 cycles/op (7.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 295.177 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 214.151 cycles/op (5.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.915872 seconds
---- Testing crc32_hw1 "Faster Adler SSE4.2 crc32 on Intel HW" POOR
-
-[[[ Speed Tests ]]]
+Alignment 7 - 1.769 bytes/cycle - 5062.20 MiB/sec @ 3 ghz
+Alignment 6 - 1.769 bytes/cycle - 5062.23 MiB/sec @ 3 ghz
+Alignment 5 - 1.769 bytes/cycle - 5061.95 MiB/sec @ 3 ghz
+Alignment 4 - 1.769 bytes/cycle - 5061.86 MiB/sec @ 3 ghz
+Alignment 3 - 2.136 bytes/cycle - 6112.39 MiB/sec @ 3 ghz
+Alignment 2 - 2.130 bytes/cycle - 6092.73 MiB/sec @ 3 ghz
+Alignment 1 - 2.128 bytes/cycle - 6089.39 MiB/sec @ 3 ghz
+Alignment 0 - 2.129 bytes/cycle - 6090.61 MiB/sec @ 3 ghz
+Average - 1.950 bytes/cycle - 5579.17 MiB/sec @ 3 ghz
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.552 bytes/cycle - 7302.19 MiB/sec @ 3 ghz
-Alignment 6 - 2.555 bytes/cycle - 7311.20 MiB/sec @ 3 ghz
-Alignment 5 - 2.550 bytes/cycle - 7296.07 MiB/sec @ 3 ghz
-Alignment 4 - 2.553 bytes/cycle - 7303.62 MiB/sec @ 3 ghz
-Alignment 3 - 2.557 bytes/cycle - 7316.52 MiB/sec @ 3 ghz
-Alignment 2 - 2.548 bytes/cycle - 7288.88 MiB/sec @ 3 ghz
-Alignment 1 - 2.554 bytes/cycle - 7306.67 MiB/sec @ 3 ghz
-Alignment 0 - 2.554 bytes/cycle - 7307.76 MiB/sec @ 3 ghz
-Average - 2.553 bytes/cycle - 7304.11 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 28.91 cycles/hash
-Small key speed test - 2-byte keys - 30.96 cycles/hash
-Small key speed test - 3-byte keys - 34.93 cycles/hash
-Small key speed test - 4-byte keys - 38.21 cycles/hash
-Small key speed test - 5-byte keys - 42.61 cycles/hash
-Small key speed test - 6-byte keys - 45.14 cycles/hash
-Small key speed test - 7-byte keys - 48.86 cycles/hash
-Small key speed test - 8-byte keys - 41.35 cycles/hash
-Small key speed test - 9-byte keys - 45.16 cycles/hash
-Small key speed test - 10-byte keys - 50.69 cycles/hash
-Small key speed test - 11-byte keys - 51.92 cycles/hash
-Small key speed test - 12-byte keys - 45.06 cycles/hash
-Small key speed test - 13-byte keys - 48.93 cycles/hash
-Small key speed test - 14-byte keys - 53.87 cycles/hash
-Small key speed test - 15-byte keys - 53.76 cycles/hash
-Small key speed test - 16-byte keys - 45.88 cycles/hash
-Small key speed test - 17-byte keys - 50.41 cycles/hash
-Small key speed test - 18-byte keys - 54.58 cycles/hash
-Small key speed test - 19-byte keys - 57.18 cycles/hash
-Small key speed test - 20-byte keys - 50.33 cycles/hash
-Small key speed test - 21-byte keys - 51.84 cycles/hash
-Small key speed test - 22-byte keys - 56.03 cycles/hash
-Small key speed test - 23-byte keys - 58.51 cycles/hash
-Small key speed test - 24-byte keys - 48.38 cycles/hash
-Small key speed test - 25-byte keys - 54.02 cycles/hash
-Small key speed test - 26-byte keys - 58.41 cycles/hash
-Small key speed test - 27-byte keys - 61.80 cycles/hash
-Small key speed test - 28-byte keys - 54.10 cycles/hash
-Small key speed test - 29-byte keys - 55.40 cycles/hash
-Small key speed test - 30-byte keys - 60.33 cycles/hash
-Small key speed test - 31-byte keys - 61.47 cycles/hash
-Average 49.647 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 456.340 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 375.073 cycles/op (6.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 312.003 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 248.607 cycles/op (6.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.600133 seconds
---- Testing crc32_pclmul "-mpclmul crc32 in asm on HW" POOR
+Small key speed test - 1-byte keys - 27.02 cycles/hash
+Small key speed test - 2-byte keys - 28.23 cycles/hash
+Small key speed test - 3-byte keys - 31.39 cycles/hash
+Small key speed test - 4-byte keys - 32.25 cycles/hash
+Small key speed test - 5-byte keys - 34.74 cycles/hash
+Small key speed test - 6-byte keys - 34.00 cycles/hash
+Small key speed test - 7-byte keys - 41.26 cycles/hash
+Small key speed test - 8-byte keys - 33.69 cycles/hash
+Small key speed test - 9-byte keys - 39.24 cycles/hash
+Small key speed test - 10-byte keys - 37.57 cycles/hash
+Small key speed test - 11-byte keys - 43.55 cycles/hash
+Small key speed test - 12-byte keys - 35.49 cycles/hash
+Small key speed test - 13-byte keys - 42.76 cycles/hash
+Small key speed test - 14-byte keys - 42.02 cycles/hash
+Small key speed test - 15-byte keys - 44.43 cycles/hash
+Small key speed test - 16-byte keys - 39.09 cycles/hash
+Small key speed test - 17-byte keys - 44.71 cycles/hash
+Small key speed test - 18-byte keys - 44.12 cycles/hash
+Small key speed test - 19-byte keys - 44.34 cycles/hash
+Small key speed test - 20-byte keys - 39.60 cycles/hash
+Small key speed test - 21-byte keys - 45.38 cycles/hash
+Small key speed test - 22-byte keys - 44.68 cycles/hash
+Small key speed test - 23-byte keys - 45.93 cycles/hash
+Small key speed test - 24-byte keys - 39.73 cycles/hash
+Small key speed test - 25-byte keys - 44.13 cycles/hash
+Small key speed test - 26-byte keys - 46.41 cycles/hash
+Small key speed test - 27-byte keys - 49.38 cycles/hash
+Small key speed test - 28-byte keys - 42.48 cycles/hash
+Small key speed test - 29-byte keys - 49.65 cycles/hash
+Small key speed test - 30-byte keys - 44.62 cycles/hash
+Small key speed test - 31-byte keys - 52.66 cycles/hash
+Small key speed test - 32-byte keys - 43.25 cycles/hash
+Average 40.868 cycles/hash
+Average, weighted by key length freq. 42.067 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 39.267 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 414.041 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 305.614 cycles/op (3.5 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 267.574 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 202.188 cycles/op (1.4 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 11.522479 seconds
+--- Testing crc32_hw1 "Faster Adler SSE4.2 crc32 on Intel HW" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.686 bytes/cycle - 7684.72 MiB/sec @ 3 ghz
-Alignment 6 - 2.684 bytes/cycle - 7679.16 MiB/sec @ 3 ghz
-Alignment 5 - 2.665 bytes/cycle - 7624.42 MiB/sec @ 3 ghz
-Alignment 4 - 2.667 bytes/cycle - 7629.61 MiB/sec @ 3 ghz
-Alignment 3 - 2.681 bytes/cycle - 7669.72 MiB/sec @ 3 ghz
-Alignment 2 - 2.704 bytes/cycle - 7736.51 MiB/sec @ 3 ghz
-Alignment 1 - 2.692 bytes/cycle - 7701.95 MiB/sec @ 3 ghz
-Alignment 0 - 4.153 bytes/cycle - 11882.66 MiB/sec @ 3 ghz
-Average - 2.866 bytes/cycle - 8201.09 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 101.80 cycles/hash
-Small key speed test - 2-byte keys - 104.77 cycles/hash
-Small key speed test - 3-byte keys - 104.98 cycles/hash
-Small key speed test - 4-byte keys - 106.24 cycles/hash
-Small key speed test - 5-byte keys - 105.11 cycles/hash
-Small key speed test - 6-byte keys - 104.82 cycles/hash
-Small key speed test - 7-byte keys - 104.80 cycles/hash
-Small key speed test - 8-byte keys - 104.86 cycles/hash
-Small key speed test - 9-byte keys - 104.91 cycles/hash
-Small key speed test - 10-byte keys - 104.80 cycles/hash
-Small key speed test - 11-byte keys - 104.89 cycles/hash
-Small key speed test - 12-byte keys - 104.81 cycles/hash
-Small key speed test - 13-byte keys - 105.22 cycles/hash
-Small key speed test - 14-byte keys - 105.22 cycles/hash
-Small key speed test - 15-byte keys - 105.20 cycles/hash
-Small key speed test - 16-byte keys - 99.89 cycles/hash
-Small key speed test - 17-byte keys - 107.41 cycles/hash
-Small key speed test - 18-byte keys - 107.40 cycles/hash
-Small key speed test - 19-byte keys - 107.67 cycles/hash
-Small key speed test - 20-byte keys - 107.59 cycles/hash
-Small key speed test - 21-byte keys - 107.23 cycles/hash
-Small key speed test - 22-byte keys - 107.37 cycles/hash
-Small key speed test - 23-byte keys - 107.55 cycles/hash
-Small key speed test - 24-byte keys - 107.39 cycles/hash
-Small key speed test - 25-byte keys - 107.80 cycles/hash
-Small key speed test - 26-byte keys - 107.72 cycles/hash
-Small key speed test - 27-byte keys - 107.43 cycles/hash
-Small key speed test - 28-byte keys - 107.35 cycles/hash
-Small key speed test - 29-byte keys - 107.14 cycles/hash
-Small key speed test - 30-byte keys - 107.05 cycles/hash
-Small key speed test - 31-byte keys - 107.02 cycles/hash
-Average 105.918 cycles/hash
+WARNING: timer resolution is 108 (0x6c) ticks (0x1343d7887fe4 - 0x1343d7887f78). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 2.669 bytes/cycle - 7634.73 MiB/sec @ 3 ghz
+Alignment 6 - 2.668 bytes/cycle - 7634.50 MiB/sec @ 3 ghz
+Alignment 5 - 2.667 bytes/cycle - 7630.51 MiB/sec @ 3 ghz
+Alignment 4 - 2.666 bytes/cycle - 7626.28 MiB/sec @ 3 ghz
+Alignment 3 - 2.661 bytes/cycle - 7612.20 MiB/sec @ 3 ghz
+Alignment 2 - 2.662 bytes/cycle - 7616.15 MiB/sec @ 3 ghz
+Alignment 1 - 2.665 bytes/cycle - 7624.92 MiB/sec @ 3 ghz
+Alignment 0 - 2.667 bytes/cycle - 7630.04 MiB/sec @ 3 ghz
+Average - 2.666 bytes/cycle - 7626.17 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 28.65 cycles/hash
+Small key speed test - 2-byte keys - 30.46 cycles/hash
+Small key speed test - 3-byte keys - 34.12 cycles/hash
+Small key speed test - 4-byte keys - 36.99 cycles/hash
+Small key speed test - 5-byte keys - 41.72 cycles/hash
+Small key speed test - 6-byte keys - 43.90 cycles/hash
+Small key speed test - 7-byte keys - 47.40 cycles/hash
+Small key speed test - 8-byte keys - 40.18 cycles/hash
+Small key speed test - 9-byte keys - 43.74 cycles/hash
+Small key speed test - 10-byte keys - 48.66 cycles/hash
+Small key speed test - 11-byte keys - 50.23 cycles/hash
+Small key speed test - 12-byte keys - 43.39 cycles/hash
+Small key speed test - 13-byte keys - 47.03 cycles/hash
+Small key speed test - 14-byte keys - 51.88 cycles/hash
+Small key speed test - 15-byte keys - 51.94 cycles/hash
+Small key speed test - 16-byte keys - 44.76 cycles/hash
+Small key speed test - 17-byte keys - 48.46 cycles/hash
+Small key speed test - 18-byte keys - 65.00 cycles/hash
+Small key speed test - 19-byte keys - 68.62 cycles/hash
+Small key speed test - 20-byte keys - 60.60 cycles/hash
+Small key speed test - 21-byte keys - 62.72 cycles/hash
+Small key speed test - 22-byte keys - 66.59 cycles/hash
+Small key speed test - 23-byte keys - 56.17 cycles/hash
+Small key speed test - 24-byte keys - 48.47 cycles/hash
+Small key speed test - 25-byte keys - 53.00 cycles/hash
+Small key speed test - 26-byte keys - 56.97 cycles/hash
+Small key speed test - 27-byte keys - 60.01 cycles/hash
+Small key speed test - 28-byte keys - 52.05 cycles/hash
+Small key speed test - 29-byte keys - 53.61 cycles/hash
+Small key speed test - 30-byte keys - 58.99 cycles/hash
+Small key speed test - 31-byte keys - 58.95 cycles/hash
+Small key speed test - 32-byte keys - 51.30 cycles/hash
+Average 50.206 cycles/hash
+Average, weighted by key length freq. 52.507 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 45.432 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 845.760 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 535.694 cycles/op (3.6 stdv)
+Init std HashMapTest: 422.016 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 334.146 cycles/op (2.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 610.035 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 575.741 cycles/op (4.8 stdv) ....... PASS
+Init fast HashMapTest: 283.805 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 228.504 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 22.960678 seconds
+Verification value is 0x00000001 - Testing took 12.724036 seconds
+--- Testing crc32_pclmul "-mpclmul crc32 in asm on HW" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x134e82784df8 - 0x134e82784d8c). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 2.330 bytes/cycle - 6666.15 MiB/sec @ 3 ghz
+Alignment 6 - 2.311 bytes/cycle - 6612.02 MiB/sec @ 3 ghz
+Alignment 5 - 2.668 bytes/cycle - 7633.50 MiB/sec @ 3 ghz
+Alignment 4 - 2.674 bytes/cycle - 7649.15 MiB/sec @ 3 ghz
+Alignment 3 - 2.701 bytes/cycle - 7726.54 MiB/sec @ 3 ghz
+Alignment 2 - 2.673 bytes/cycle - 7647.96 MiB/sec @ 3 ghz
+Alignment 1 - 2.711 bytes/cycle - 7756.34 MiB/sec @ 3 ghz
+Alignment 0 - 4.199 bytes/cycle - 12013.98 MiB/sec @ 3 ghz
+Average - 2.783 bytes/cycle - 7963.20 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 101.97 cycles/hash
+Small key speed test - 2-byte keys - 105.35 cycles/hash
+Small key speed test - 3-byte keys - 105.31 cycles/hash
+Small key speed test - 4-byte keys - 105.37 cycles/hash
+Small key speed test - 5-byte keys - 105.41 cycles/hash
+Small key speed test - 6-byte keys - 105.44 cycles/hash
+Small key speed test - 7-byte keys - 105.42 cycles/hash
+Small key speed test - 8-byte keys - 105.41 cycles/hash
+Small key speed test - 9-byte keys - 105.37 cycles/hash
+Small key speed test - 10-byte keys - 105.40 cycles/hash
+Small key speed test - 11-byte keys - 105.40 cycles/hash
+Small key speed test - 12-byte keys - 105.36 cycles/hash
+Small key speed test - 13-byte keys - 105.36 cycles/hash
+Small key speed test - 14-byte keys - 105.36 cycles/hash
+Small key speed test - 15-byte keys - 105.38 cycles/hash
+Small key speed test - 16-byte keys - 100.19 cycles/hash
+Small key speed test - 17-byte keys - 107.46 cycles/hash
+Small key speed test - 18-byte keys - 107.49 cycles/hash
+Small key speed test - 19-byte keys - 107.45 cycles/hash
+Small key speed test - 20-byte keys - 107.47 cycles/hash
+Small key speed test - 21-byte keys - 107.47 cycles/hash
+Small key speed test - 22-byte keys - 107.46 cycles/hash
+Small key speed test - 23-byte keys - 107.50 cycles/hash
+Small key speed test - 24-byte keys - 107.49 cycles/hash
+Small key speed test - 25-byte keys - 107.47 cycles/hash
+Small key speed test - 26-byte keys - 107.56 cycles/hash
+Small key speed test - 27-byte keys - 107.71 cycles/hash
+Small key speed test - 28-byte keys - 107.49 cycles/hash
+Small key speed test - 29-byte keys - 107.90 cycles/hash
+Small key speed test - 30-byte keys - 107.82 cycles/hash
+Small key speed test - 31-byte keys - 107.86 cycles/hash
+Small key speed test - 32-byte keys - 101.62 cycles/hash
+Average 106.023 cycles/hash
+Average, weighted by key length freq. 105.908 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 103.388 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 757.091 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 525.855 cycles/op (3.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 597.419 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 567.698 cycles/op (2.8 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 23.661043 seconds
+--- Testing crc64_jones1 "crc64, jones polynomial, standard fast software method from Mark Adler" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 72 (0x48) ticks (0x13625708f670 - 0x13625708f628). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.593 bytes/cycle - 1696.78 MiB/sec @ 3 ghz
+Alignment 6 - 0.593 bytes/cycle - 1697.18 MiB/sec @ 3 ghz
+Alignment 5 - 0.593 bytes/cycle - 1695.67 MiB/sec @ 3 ghz
+Alignment 4 - 0.591 bytes/cycle - 1690.89 MiB/sec @ 3 ghz
+Alignment 3 - 0.584 bytes/cycle - 1670.92 MiB/sec @ 3 ghz
+Alignment 2 - 0.573 bytes/cycle - 1639.74 MiB/sec @ 3 ghz
+Alignment 1 - 0.576 bytes/cycle - 1649.03 MiB/sec @ 3 ghz
+Alignment 0 - 0.576 bytes/cycle - 1649.17 MiB/sec @ 3 ghz
+Average - 0.585 bytes/cycle - 1673.67 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 33.41 cycles/hash
+Small key speed test - 2-byte keys - 39.56 cycles/hash
+Small key speed test - 3-byte keys - 47.95 cycles/hash
+Small key speed test - 4-byte keys - 55.14 cycles/hash
+Small key speed test - 5-byte keys - 61.96 cycles/hash
+Small key speed test - 6-byte keys - 69.91 cycles/hash
+Small key speed test - 7-byte keys - 77.24 cycles/hash
+Small key speed test - 8-byte keys - 62.76 cycles/hash
+Small key speed test - 9-byte keys - 68.74 cycles/hash
+Small key speed test - 10-byte keys - 76.66 cycles/hash
+Small key speed test - 11-byte keys - 83.89 cycles/hash
+Small key speed test - 12-byte keys - 69.14 cycles/hash
+Small key speed test - 13-byte keys - 76.56 cycles/hash
+Small key speed test - 14-byte keys - 83.35 cycles/hash
+Small key speed test - 15-byte keys - 91.08 cycles/hash
+Small key speed test - 16-byte keys - 75.81 cycles/hash
+Small key speed test - 17-byte keys - 83.44 cycles/hash
+Small key speed test - 18-byte keys - 90.36 cycles/hash
+Small key speed test - 19-byte keys - 97.78 cycles/hash
+Small key speed test - 20-byte keys - 82.68 cycles/hash
+Small key speed test - 21-byte keys - 89.89 cycles/hash
+Small key speed test - 22-byte keys - 98.27 cycles/hash
+Small key speed test - 23-byte keys - 105.20 cycles/hash
+Small key speed test - 24-byte keys - 89.31 cycles/hash
+Small key speed test - 25-byte keys - 96.65 cycles/hash
+Small key speed test - 26-byte keys - 104.64 cycles/hash
+Small key speed test - 27-byte keys - 111.70 cycles/hash
+Small key speed test - 28-byte keys - 96.53 cycles/hash
+Small key speed test - 29-byte keys - 103.32 cycles/hash
+Small key speed test - 30-byte keys - 111.78 cycles/hash
+Small key speed test - 31-byte keys - 118.18 cycles/hash
+Small key speed test - 32-byte keys - 103.20 cycles/hash
+Average 83.003 cycles/hash
+Average, weighted by key length freq. 85.080 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 74.418 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 455.744 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 365.660 cycles/op (3.6 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 297.296 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 249.158 cycles/op (2.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 21.365472 seconds
+--- Testing crc64_jones2 "crc64, jones polynomial, 2 pipelines in 1 thread, joined at the end" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x13743ef5d07c - 0x13743ef5d010). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 1.034 bytes/cycle - 2959.44 MiB/sec @ 3 ghz
+Alignment 6 - 1.034 bytes/cycle - 2958.81 MiB/sec @ 3 ghz
+Alignment 5 - 1.034 bytes/cycle - 2958.30 MiB/sec @ 3 ghz
+Alignment 4 - 1.034 bytes/cycle - 2959.21 MiB/sec @ 3 ghz
+Alignment 3 - 1.034 bytes/cycle - 2957.55 MiB/sec @ 3 ghz
+Alignment 2 - 1.034 bytes/cycle - 2958.22 MiB/sec @ 3 ghz
+Alignment 1 - 1.034 bytes/cycle - 2958.72 MiB/sec @ 3 ghz
+Alignment 0 - 1.061 bytes/cycle - 3034.34 MiB/sec @ 3 ghz
+Average - 1.037 bytes/cycle - 2968.07 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 31.90 cycles/hash
+Small key speed test - 2-byte keys - 42.08 cycles/hash
+Small key speed test - 3-byte keys - 48.83 cycles/hash
+Small key speed test - 4-byte keys - 55.88 cycles/hash
+Small key speed test - 5-byte keys - 62.97 cycles/hash
+Small key speed test - 6-byte keys - 70.32 cycles/hash
+Small key speed test - 7-byte keys - 77.60 cycles/hash
+Small key speed test - 8-byte keys - 63.10 cycles/hash
+Small key speed test - 9-byte keys - 69.32 cycles/hash
+Small key speed test - 10-byte keys - 76.10 cycles/hash
+Small key speed test - 11-byte keys - 83.57 cycles/hash
+Small key speed test - 12-byte keys - 68.91 cycles/hash
+Small key speed test - 13-byte keys - 76.40 cycles/hash
+Small key speed test - 14-byte keys - 82.67 cycles/hash
+Small key speed test - 15-byte keys - 90.26 cycles/hash
+Small key speed test - 16-byte keys - 316.12 cycles/hash
+Small key speed test - 17-byte keys - 337.84 cycles/hash
+Small key speed test - 18-byte keys - 379.26 cycles/hash
+Small key speed test - 19-byte keys - 343.58 cycles/hash
+Small key speed test - 20-byte keys - 582.23 cycles/hash
+Small key speed test - 21-byte keys - 585.14 cycles/hash
+Small key speed test - 22-byte keys - 588.74 cycles/hash
+Small key speed test - 23-byte keys - 594.11 cycles/hash
+Small key speed test - 24-byte keys - 586.81 cycles/hash
+Small key speed test - 25-byte keys - 592.00 cycles/hash
+Small key speed test - 26-byte keys - 599.53 cycles/hash
+Small key speed test - 27-byte keys - 607.34 cycles/hash
+Small key speed test - 28-byte keys - 586.43 cycles/hash
+Small key speed test - 29-byte keys - 586.87 cycles/hash
+Small key speed test - 30-byte keys - 592.13 cycles/hash
+Small key speed test - 31-byte keys - 597.46 cycles/hash
+Small key speed test - 32-byte keys - 591.70 cycles/hash
+Average 314.600 cycles/hash
+Average, weighted by key length freq. 278.350 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 174.045 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 473.293 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 373.217 cycles/op (1.9 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 291.879 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 253.015 cycles/op (2.8 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 61.101510 seconds
+--- Testing crc64_jones3 "crc64, jones polynomial, 3 pipelines in 1 thread, joined at the end" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x13a773dfac0c - 0x13a773dfaba0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 1.190 bytes/cycle - 3404.35 MiB/sec @ 3 ghz
+Alignment 6 - 1.195 bytes/cycle - 3419.97 MiB/sec @ 3 ghz
+Alignment 5 - 1.195 bytes/cycle - 3420.32 MiB/sec @ 3 ghz
+Alignment 4 - 1.177 bytes/cycle - 3367.52 MiB/sec @ 3 ghz
+Alignment 3 - 1.176 bytes/cycle - 3365.57 MiB/sec @ 3 ghz
+Alignment 2 - 1.190 bytes/cycle - 3405.45 MiB/sec @ 3 ghz
+Alignment 1 - 1.190 bytes/cycle - 3404.19 MiB/sec @ 3 ghz
+Alignment 0 - 1.189 bytes/cycle - 3403.01 MiB/sec @ 3 ghz
+Average - 1.188 bytes/cycle - 3398.80 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 33.05 cycles/hash
+Small key speed test - 2-byte keys - 43.51 cycles/hash
+Small key speed test - 3-byte keys - 51.26 cycles/hash
+Small key speed test - 4-byte keys - 58.66 cycles/hash
+Small key speed test - 5-byte keys - 66.83 cycles/hash
+Small key speed test - 6-byte keys - 74.23 cycles/hash
+Small key speed test - 7-byte keys - 81.43 cycles/hash
+Small key speed test - 8-byte keys - 66.43 cycles/hash
+Small key speed test - 9-byte keys - 73.22 cycles/hash
+Small key speed test - 10-byte keys - 80.44 cycles/hash
+Small key speed test - 11-byte keys - 87.98 cycles/hash
+Small key speed test - 12-byte keys - 73.16 cycles/hash
+Small key speed test - 13-byte keys - 80.55 cycles/hash
+Small key speed test - 14-byte keys - 87.83 cycles/hash
+Small key speed test - 15-byte keys - 95.52 cycles/hash
+Small key speed test - 16-byte keys - 79.97 cycles/hash
+Small key speed test - 17-byte keys - 87.32 cycles/hash
+Small key speed test - 18-byte keys - 94.63 cycles/hash
+Small key speed test - 19-byte keys - 101.61 cycles/hash
+Small key speed test - 20-byte keys - 86.29 cycles/hash
+Small key speed test - 21-byte keys - 94.12 cycles/hash
+Small key speed test - 22-byte keys - 101.57 cycles/hash
+Small key speed test - 23-byte keys - 109.18 cycles/hash
+Small key speed test - 24-byte keys - 588.30 cycles/hash
+Small key speed test - 25-byte keys - 593.17 cycles/hash
+Small key speed test - 26-byte keys - 600.86 cycles/hash
+Small key speed test - 27-byte keys - 607.50 cycles/hash
+Small key speed test - 28-byte keys - 1091.08 cycles/hash
+Small key speed test - 29-byte keys - 1094.38 cycles/hash
+Small key speed test - 30-byte keys - 1098.71 cycles/hash
+Small key speed test - 31-byte keys - 1103.15 cycles/hash
+Small key speed test - 32-byte keys - 1097.07 cycles/hash
+Average 302.594 cycles/hash
+Average, weighted by key length freq. 176.347 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 85.004 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 474.708 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 372.947 cycles/op (3.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 296.871 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 258.156 cycles/op (7.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 58.768858 seconds
+--- Testing crc64_jones "crc64, jones polynomial, auto 1-3 pipelines depending on length, joined at the end" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x13d8b3e14f14 - 0x13d8b3e14ea8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 1.230 bytes/cycle - 3517.70 MiB/sec @ 3 ghz
+Alignment 6 - 1.228 bytes/cycle - 3512.77 MiB/sec @ 3 ghz
+Alignment 5 - 1.233 bytes/cycle - 3528.35 MiB/sec @ 3 ghz
+Alignment 4 - 1.220 bytes/cycle - 3490.33 MiB/sec @ 3 ghz
+Alignment 3 - 1.220 bytes/cycle - 3490.11 MiB/sec @ 3 ghz
+Alignment 2 - 1.233 bytes/cycle - 3528.39 MiB/sec @ 3 ghz
+Alignment 1 - 1.231 bytes/cycle - 3521.03 MiB/sec @ 3 ghz
+Alignment 0 - 1.228 bytes/cycle - 3512.59 MiB/sec @ 3 ghz
+Average - 1.228 bytes/cycle - 3512.66 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 33.62 cycles/hash
+Small key speed test - 2-byte keys - 38.94 cycles/hash
+Small key speed test - 3-byte keys - 45.83 cycles/hash
+Small key speed test - 4-byte keys - 52.82 cycles/hash
+Small key speed test - 5-byte keys - 60.61 cycles/hash
+Small key speed test - 6-byte keys - 67.39 cycles/hash
+Small key speed test - 7-byte keys - 74.64 cycles/hash
+Small key speed test - 8-byte keys - 59.43 cycles/hash
+Small key speed test - 9-byte keys - 67.11 cycles/hash
+Small key speed test - 10-byte keys - 74.24 cycles/hash
+Small key speed test - 11-byte keys - 81.46 cycles/hash
+Small key speed test - 12-byte keys - 66.63 cycles/hash
+Small key speed test - 13-byte keys - 74.12 cycles/hash
+Small key speed test - 14-byte keys - 81.65 cycles/hash
+Small key speed test - 15-byte keys - 89.06 cycles/hash
+Small key speed test - 16-byte keys - 72.98 cycles/hash
+Small key speed test - 17-byte keys - 80.81 cycles/hash
+Small key speed test - 18-byte keys - 88.07 cycles/hash
+Small key speed test - 19-byte keys - 95.28 cycles/hash
+Small key speed test - 20-byte keys - 80.17 cycles/hash
+Small key speed test - 21-byte keys - 87.86 cycles/hash
+Small key speed test - 22-byte keys - 94.88 cycles/hash
+Small key speed test - 23-byte keys - 102.22 cycles/hash
+Small key speed test - 24-byte keys - 87.11 cycles/hash
+Small key speed test - 25-byte keys - 94.44 cycles/hash
+Small key speed test - 26-byte keys - 101.44 cycles/hash
+Small key speed test - 27-byte keys - 109.15 cycles/hash
+Small key speed test - 28-byte keys - 94.53 cycles/hash
+Small key speed test - 29-byte keys - 101.42 cycles/hash
+Small key speed test - 30-byte keys - 108.57 cycles/hash
+Small key speed test - 31-byte keys - 115.23 cycles/hash
+Small key speed test - 32-byte keys - 100.58 cycles/hash
+Average 80.697 cycles/hash
+Average, weighted by key length freq. 82.658 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 72.032 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 437.340 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 355.073 cycles/op (4.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 296.030 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 251.404 cycles/op (2.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 19.076429 seconds
--- Testing o1hash "o(1)hash unseeded, from wyhash" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x13e8b16809b0 - 0x13e8b1680968). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4061.566 bytes/cycle - 11620232.33 MiB/sec @ 3 ghz
-Alignment 6 - 4033.109 bytes/cycle - 11538818.72 MiB/sec @ 3 ghz
-Alignment 5 - 4059.632 bytes/cycle - 11614700.02 MiB/sec @ 3 ghz
-Alignment 4 - 4049.359 bytes/cycle - 11585308.94 MiB/sec @ 3 ghz
-Alignment 3 - 4031.467 bytes/cycle - 11534119.03 MiB/sec @ 3 ghz
-Alignment 2 - 4065.829 bytes/cycle - 11632430.75 MiB/sec @ 3 ghz
-Alignment 1 - 4065.421 bytes/cycle - 11631262.09 MiB/sec @ 3 ghz
-Alignment 0 - 4068.306 bytes/cycle - 11639518.19 MiB/sec @ 3 ghz
-Average - 4054.336 bytes/cycle - 11599548.76 MiB/sec @ 3 ghz
+Alignment 7 - 4087.394 bytes/cycle - 11694127.19 MiB/sec @ 3 ghz
+Alignment 6 - 4032.237 bytes/cycle - 11536323.20 MiB/sec @ 3 ghz
+Alignment 5 - 4066.553 bytes/cycle - 11634501.83 MiB/sec @ 3 ghz
+Alignment 4 - 4054.194 bytes/cycle - 11599141.15 MiB/sec @ 3 ghz
+Alignment 3 - 3947.490 bytes/cycle - 11293859.65 MiB/sec @ 3 ghz
+Alignment 2 - 4024.105 bytes/cycle - 11513056.84 MiB/sec @ 3 ghz
+Alignment 1 - 4033.026 bytes/cycle - 11538579.96 MiB/sec @ 3 ghz
+Alignment 0 - 3996.244 bytes/cycle - 11433345.54 MiB/sec @ 3 ghz
+Average - 4030.155 bytes/cycle - 11530366.92 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 19.00 cycles/hash
-Small key speed test - 2-byte keys - 19.00 cycles/hash
-Small key speed test - 3-byte keys - 19.00 cycles/hash
+Small key speed test - 1-byte keys - 19.98 cycles/hash
+Small key speed test - 2-byte keys - 19.92 cycles/hash
+Small key speed test - 3-byte keys - 19.93 cycles/hash
Small key speed test - 4-byte keys - 18.00 cycles/hash
Small key speed test - 5-byte keys - 18.00 cycles/hash
-Small key speed test - 6-byte keys - 18.00 cycles/hash
-Small key speed test - 7-byte keys - 18.00 cycles/hash
-Small key speed test - 8-byte keys - 18.00 cycles/hash
-Small key speed test - 9-byte keys - 18.00 cycles/hash
-Small key speed test - 10-byte keys - 18.16 cycles/hash
-Small key speed test - 11-byte keys - 18.00 cycles/hash
-Small key speed test - 12-byte keys - 18.00 cycles/hash
-Small key speed test - 13-byte keys - 18.00 cycles/hash
-Small key speed test - 14-byte keys - 18.00 cycles/hash
+Small key speed test - 6-byte keys - 18.30 cycles/hash
+Small key speed test - 7-byte keys - 18.31 cycles/hash
+Small key speed test - 8-byte keys - 18.32 cycles/hash
+Small key speed test - 9-byte keys - 18.28 cycles/hash
+Small key speed test - 10-byte keys - 18.00 cycles/hash
+Small key speed test - 11-byte keys - 18.29 cycles/hash
+Small key speed test - 12-byte keys - 18.24 cycles/hash
+Small key speed test - 13-byte keys - 18.24 cycles/hash
+Small key speed test - 14-byte keys - 18.26 cycles/hash
Small key speed test - 15-byte keys - 18.00 cycles/hash
-Small key speed test - 16-byte keys - 18.00 cycles/hash
+Small key speed test - 16-byte keys - 18.31 cycles/hash
Small key speed test - 17-byte keys - 18.00 cycles/hash
-Small key speed test - 18-byte keys - 18.00 cycles/hash
-Small key speed test - 19-byte keys - 18.00 cycles/hash
-Small key speed test - 20-byte keys - 18.00 cycles/hash
-Small key speed test - 21-byte keys - 18.00 cycles/hash
-Small key speed test - 22-byte keys - 18.25 cycles/hash
-Small key speed test - 23-byte keys - 18.25 cycles/hash
-Small key speed test - 24-byte keys - 18.25 cycles/hash
-Small key speed test - 25-byte keys - 18.25 cycles/hash
-Small key speed test - 26-byte keys - 18.25 cycles/hash
-Small key speed test - 27-byte keys - 18.25 cycles/hash
-Small key speed test - 28-byte keys - 18.00 cycles/hash
-Small key speed test - 29-byte keys - 18.00 cycles/hash
-Small key speed test - 30-byte keys - 18.89 cycles/hash
-Small key speed test - 31-byte keys - 18.87 cycles/hash
-Average 18.207 cycles/hash
+Small key speed test - 18-byte keys - 18.27 cycles/hash
+Small key speed test - 19-byte keys - 18.33 cycles/hash
+Small key speed test - 20-byte keys - 18.29 cycles/hash
+Small key speed test - 21-byte keys - 18.23 cycles/hash
+Small key speed test - 22-byte keys - 18.26 cycles/hash
+Small key speed test - 23-byte keys - 18.29 cycles/hash
+Small key speed test - 24-byte keys - 18.26 cycles/hash
+Small key speed test - 25-byte keys - 18.24 cycles/hash
+Small key speed test - 26-byte keys - 18.00 cycles/hash
+Small key speed test - 27-byte keys - 18.00 cycles/hash
+Small key speed test - 28-byte keys - 18.34 cycles/hash
+Small key speed test - 29-byte keys - 18.53 cycles/hash
+Small key speed test - 30-byte keys - 18.50 cycles/hash
+Small key speed test - 31-byte keys - 18.52 cycles/hash
+Small key speed test - 32-byte keys - 18.43 cycles/hash
+Average 18.402 cycles/hash
+Average, weighted by key length freq. 18.222 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 18.270 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 435.396 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 326.751 cycles/op (3.1 stdv)
+Init std HashMapTest: 407.334 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 305.980 cycles/op (3.6 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 283.894 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 223.192 cycles/op (4.3 stdv) ....... PASS
+Init fast HashMapTest: 264.355 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 206.935 cycles/op (1.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 6.210601 seconds
+Verification value is 0x00000001 - Testing took 6.328712 seconds
--- Testing fibonacci "wordwise Fibonacci" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x13edff74b478 - 0x13edff74b430). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.911 bytes/cycle - 16911.34 MiB/sec @ 3 ghz
-Alignment 6 - 5.508 bytes/cycle - 15759.16 MiB/sec @ 3 ghz
-Alignment 5 - 5.924 bytes/cycle - 16948.80 MiB/sec @ 3 ghz
-Alignment 4 - 5.385 bytes/cycle - 15407.20 MiB/sec @ 3 ghz
-Alignment 3 - 5.216 bytes/cycle - 14922.20 MiB/sec @ 3 ghz
-Alignment 2 - 5.268 bytes/cycle - 15072.48 MiB/sec @ 3 ghz
-Alignment 1 - 5.495 bytes/cycle - 15721.50 MiB/sec @ 3 ghz
-Alignment 0 - 5.866 bytes/cycle - 16783.07 MiB/sec @ 3 ghz
-Average - 5.572 bytes/cycle - 15940.72 MiB/sec @ 3 ghz
+Alignment 7 - 5.386 bytes/cycle - 15410.37 MiB/sec @ 3 ghz
+Alignment 6 - 5.193 bytes/cycle - 14858.71 MiB/sec @ 3 ghz
+Alignment 5 - 5.448 bytes/cycle - 15586.59 MiB/sec @ 3 ghz
+Alignment 4 - 5.852 bytes/cycle - 16743.10 MiB/sec @ 3 ghz
+Alignment 3 - 5.442 bytes/cycle - 15568.94 MiB/sec @ 3 ghz
+Alignment 2 - 5.264 bytes/cycle - 15060.79 MiB/sec @ 3 ghz
+Alignment 1 - 5.286 bytes/cycle - 15122.96 MiB/sec @ 3 ghz
+Alignment 0 - 5.217 bytes/cycle - 14925.50 MiB/sec @ 3 ghz
+Average - 5.386 bytes/cycle - 15409.62 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 17.00 cycles/hash
-Small key speed test - 2-byte keys - 18.88 cycles/hash
+Small key speed test - 2-byte keys - 18.00 cycles/hash
Small key speed test - 3-byte keys - 20.00 cycles/hash
-Small key speed test - 4-byte keys - 21.31 cycles/hash
-Small key speed test - 5-byte keys - 23.21 cycles/hash
-Small key speed test - 6-byte keys - 24.62 cycles/hash
-Small key speed test - 7-byte keys - 25.82 cycles/hash
+Small key speed test - 4-byte keys - 21.00 cycles/hash
+Small key speed test - 5-byte keys - 22.25 cycles/hash
+Small key speed test - 6-byte keys - 24.00 cycles/hash
+Small key speed test - 7-byte keys - 25.00 cycles/hash
Small key speed test - 8-byte keys - 17.00 cycles/hash
-Small key speed test - 9-byte keys - 18.86 cycles/hash
-Small key speed test - 10-byte keys - 20.13 cycles/hash
-Small key speed test - 11-byte keys - 21.93 cycles/hash
+Small key speed test - 9-byte keys - 18.75 cycles/hash
+Small key speed test - 10-byte keys - 20.00 cycles/hash
+Small key speed test - 11-byte keys - 21.53 cycles/hash
Small key speed test - 12-byte keys - 23.00 cycles/hash
-Small key speed test - 13-byte keys - 24.48 cycles/hash
-Small key speed test - 14-byte keys - 25.99 cycles/hash
+Small key speed test - 13-byte keys - 24.71 cycles/hash
+Small key speed test - 14-byte keys - 25.85 cycles/hash
Small key speed test - 15-byte keys - 26.00 cycles/hash
-Small key speed test - 16-byte keys - 18.28 cycles/hash
-Small key speed test - 17-byte keys - 20.00 cycles/hash
+Small key speed test - 16-byte keys - 18.00 cycles/hash
+Small key speed test - 17-byte keys - 19.70 cycles/hash
Small key speed test - 18-byte keys - 21.00 cycles/hash
Small key speed test - 19-byte keys - 23.00 cycles/hash
-Small key speed test - 20-byte keys - 24.75 cycles/hash
-Small key speed test - 21-byte keys - 25.25 cycles/hash
+Small key speed test - 20-byte keys - 24.44 cycles/hash
+Small key speed test - 21-byte keys - 25.00 cycles/hash
Small key speed test - 22-byte keys - 26.00 cycles/hash
-Small key speed test - 23-byte keys - 28.00 cycles/hash
-Small key speed test - 24-byte keys - 20.25 cycles/hash
-Small key speed test - 25-byte keys - 21.25 cycles/hash
-Small key speed test - 26-byte keys - 23.14 cycles/hash
-Small key speed test - 27-byte keys - 24.25 cycles/hash
-Small key speed test - 28-byte keys - 25.25 cycles/hash
-Small key speed test - 29-byte keys - 25.98 cycles/hash
-Small key speed test - 30-byte keys - 27.90 cycles/hash
-Small key speed test - 31-byte keys - 29.91 cycles/hash
-Average 22.982 cycles/hash
+Small key speed test - 23-byte keys - 27.99 cycles/hash
+Small key speed test - 24-byte keys - 20.00 cycles/hash
+Small key speed test - 25-byte keys - 21.00 cycles/hash
+Small key speed test - 26-byte keys - 22.92 cycles/hash
+Small key speed test - 27-byte keys - 24.00 cycles/hash
+Small key speed test - 28-byte keys - 25.00 cycles/hash
+Small key speed test - 29-byte keys - 25.00 cycles/hash
+Small key speed test - 30-byte keys - 27.51 cycles/hash
+Small key speed test - 31-byte keys - 29.70 cycles/hash
+Small key speed test - 32-byte keys - 21.00 cycles/hash
+Average 22.668 cycles/hash
+Average, weighted by key length freq. 22.761 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 19.787 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 1820.428 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1526.073 cycles/op (9.4 stdv)
+Init std HashMapTest: 1601.008 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 1418.905 cycles/op (11.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 894.749 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 840.865 cycles/op (3.8 stdv) ....... FAIL
+Init fast HashMapTest: 947.015 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 872.833 cycles/op (3.2 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.105311 seconds
+Verification value is 0x00000001 - Testing took 10.032110 seconds
--- Testing k-hash32 "K-Hash mixer, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x13f6681de860 - 0x13f6681de818). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.777 bytes/cycle - 2222.29 MiB/sec @ 3 ghz
-Alignment 6 - 0.778 bytes/cycle - 2224.83 MiB/sec @ 3 ghz
-Alignment 5 - 0.776 bytes/cycle - 2220.94 MiB/sec @ 3 ghz
-Alignment 4 - 0.778 bytes/cycle - 2225.81 MiB/sec @ 3 ghz
-Alignment 3 - 0.774 bytes/cycle - 2215.77 MiB/sec @ 3 ghz
-Alignment 2 - 0.777 bytes/cycle - 2221.99 MiB/sec @ 3 ghz
-Alignment 1 - 0.775 bytes/cycle - 2218.54 MiB/sec @ 3 ghz
-Alignment 0 - 0.777 bytes/cycle - 2223.33 MiB/sec @ 3 ghz
-Average - 0.777 bytes/cycle - 2221.69 MiB/sec @ 3 ghz
+Alignment 7 - 0.778 bytes/cycle - 2225.21 MiB/sec @ 3 ghz
+Alignment 6 - 0.779 bytes/cycle - 2228.90 MiB/sec @ 3 ghz
+Alignment 5 - 0.779 bytes/cycle - 2228.55 MiB/sec @ 3 ghz
+Alignment 4 - 0.778 bytes/cycle - 2226.85 MiB/sec @ 3 ghz
+Alignment 3 - 0.779 bytes/cycle - 2229.96 MiB/sec @ 3 ghz
+Alignment 2 - 0.779 bytes/cycle - 2227.82 MiB/sec @ 3 ghz
+Alignment 1 - 0.779 bytes/cycle - 2228.32 MiB/sec @ 3 ghz
+Alignment 0 - 0.779 bytes/cycle - 2227.60 MiB/sec @ 3 ghz
+Average - 0.779 bytes/cycle - 2227.90 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 32.99 cycles/hash
-Small key speed test - 2-byte keys - 33.00 cycles/hash
-Small key speed test - 3-byte keys - 33.00 cycles/hash
+Small key speed test - 1-byte keys - 32.97 cycles/hash
+Small key speed test - 2-byte keys - 32.97 cycles/hash
+Small key speed test - 3-byte keys - 32.98 cycles/hash
Small key speed test - 4-byte keys - 33.00 cycles/hash
-Small key speed test - 5-byte keys - 39.00 cycles/hash
+Small key speed test - 5-byte keys - 38.98 cycles/hash
Small key speed test - 6-byte keys - 39.00 cycles/hash
-Small key speed test - 7-byte keys - 39.00 cycles/hash
-Small key speed test - 8-byte keys - 37.57 cycles/hash
-Small key speed test - 9-byte keys - 45.43 cycles/hash
-Small key speed test - 10-byte keys - 45.41 cycles/hash
+Small key speed test - 7-byte keys - 38.96 cycles/hash
+Small key speed test - 8-byte keys - 37.00 cycles/hash
+Small key speed test - 9-byte keys - 45.00 cycles/hash
+Small key speed test - 10-byte keys - 45.00 cycles/hash
Small key speed test - 11-byte keys - 45.00 cycles/hash
-Small key speed test - 12-byte keys - 45.00 cycles/hash
+Small key speed test - 12-byte keys - 44.83 cycles/hash
Small key speed test - 13-byte keys - 55.00 cycles/hash
-Small key speed test - 14-byte keys - 55.00 cycles/hash
+Small key speed test - 14-byte keys - 55.47 cycles/hash
Small key speed test - 15-byte keys - 55.00 cycles/hash
-Small key speed test - 16-byte keys - 61.25 cycles/hash
-Small key speed test - 17-byte keys - 62.00 cycles/hash
-Small key speed test - 18-byte keys - 62.00 cycles/hash
-Small key speed test - 19-byte keys - 62.00 cycles/hash
+Small key speed test - 16-byte keys - 61.00 cycles/hash
+Small key speed test - 17-byte keys - 61.72 cycles/hash
+Small key speed test - 18-byte keys - 61.84 cycles/hash
+Small key speed test - 19-byte keys - 61.73 cycles/hash
Small key speed test - 20-byte keys - 63.00 cycles/hash
-Small key speed test - 21-byte keys - 63.86 cycles/hash
-Small key speed test - 22-byte keys - 63.87 cycles/hash
-Small key speed test - 23-byte keys - 63.89 cycles/hash
-Small key speed test - 24-byte keys - 63.00 cycles/hash
-Small key speed test - 25-byte keys - 64.46 cycles/hash
-Small key speed test - 26-byte keys - 64.41 cycles/hash
-Small key speed test - 27-byte keys - 64.26 cycles/hash
-Small key speed test - 28-byte keys - 64.48 cycles/hash
-Small key speed test - 29-byte keys - 65.45 cycles/hash
-Small key speed test - 30-byte keys - 65.42 cycles/hash
-Small key speed test - 31-byte keys - 65.44 cycles/hash
-Average 53.264 cycles/hash
+Small key speed test - 21-byte keys - 63.00 cycles/hash
+Small key speed test - 22-byte keys - 63.00 cycles/hash
+Small key speed test - 23-byte keys - 63.00 cycles/hash
+Small key speed test - 24-byte keys - 62.80 cycles/hash
+Small key speed test - 25-byte keys - 63.87 cycles/hash
+Small key speed test - 26-byte keys - 63.86 cycles/hash
+Small key speed test - 27-byte keys - 63.92 cycles/hash
+Small key speed test - 28-byte keys - 64.00 cycles/hash
+Small key speed test - 29-byte keys - 65.00 cycles/hash
+Small key speed test - 30-byte keys - 65.00 cycles/hash
+Small key speed test - 31-byte keys - 65.00 cycles/hash
+Small key speed test - 32-byte keys - 80.47 cycles/hash
+Average 53.855 cycles/hash
+Average, weighted by key length freq. 55.936 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 51.593 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 455.984 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 380.506 cycles/op (6.1 stdv)
+Init std HashMapTest: 410.514 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 340.661 cycles/op (2.6 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 321.051 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 264.073 cycles/op (4.2 stdv) ....... PASS
+Init fast HashMapTest: 296.322 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 255.784 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.986062 seconds
+Verification value is 0x00000001 - Testing took 15.228516 seconds
--- Testing k-hash64 "K-Hash mixer, 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x14032ba29420 - 0x14032ba293b4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.845 bytes/cycle - 2417.64 MiB/sec @ 3 ghz
-Alignment 6 - 0.846 bytes/cycle - 2419.79 MiB/sec @ 3 ghz
-Alignment 5 - 0.845 bytes/cycle - 2417.64 MiB/sec @ 3 ghz
-Alignment 4 - 0.846 bytes/cycle - 2419.47 MiB/sec @ 3 ghz
-Alignment 3 - 0.845 bytes/cycle - 2417.76 MiB/sec @ 3 ghz
-Alignment 2 - 0.845 bytes/cycle - 2418.34 MiB/sec @ 3 ghz
-Alignment 1 - 0.845 bytes/cycle - 2416.84 MiB/sec @ 3 ghz
-Alignment 0 - 0.845 bytes/cycle - 2416.69 MiB/sec @ 3 ghz
-Average - 0.845 bytes/cycle - 2418.02 MiB/sec @ 3 ghz
+Alignment 7 - 0.874 bytes/cycle - 2499.87 MiB/sec @ 3 ghz
+Alignment 6 - 0.854 bytes/cycle - 2442.60 MiB/sec @ 3 ghz
+Alignment 5 - 0.870 bytes/cycle - 2488.23 MiB/sec @ 3 ghz
+Alignment 4 - 0.875 bytes/cycle - 2503.46 MiB/sec @ 3 ghz
+Alignment 3 - 0.875 bytes/cycle - 2502.19 MiB/sec @ 3 ghz
+Alignment 2 - 0.874 bytes/cycle - 2501.72 MiB/sec @ 3 ghz
+Alignment 1 - 0.874 bytes/cycle - 2501.96 MiB/sec @ 3 ghz
+Alignment 0 - 0.874 bytes/cycle - 2501.24 MiB/sec @ 3 ghz
+Average - 0.871 bytes/cycle - 2492.66 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 33.00 cycles/hash
-Small key speed test - 2-byte keys - 33.00 cycles/hash
-Small key speed test - 3-byte keys - 33.00 cycles/hash
-Small key speed test - 4-byte keys - 33.00 cycles/hash
-Small key speed test - 5-byte keys - 33.00 cycles/hash
-Small key speed test - 6-byte keys - 33.00 cycles/hash
-Small key speed test - 7-byte keys - 33.00 cycles/hash
-Small key speed test - 8-byte keys - 35.00 cycles/hash
-Small key speed test - 9-byte keys - 40.00 cycles/hash
-Small key speed test - 10-byte keys - 40.00 cycles/hash
-Small key speed test - 11-byte keys - 40.00 cycles/hash
-Small key speed test - 12-byte keys - 40.00 cycles/hash
-Small key speed test - 13-byte keys - 40.00 cycles/hash
-Small key speed test - 14-byte keys - 40.00 cycles/hash
-Small key speed test - 15-byte keys - 40.00 cycles/hash
-Small key speed test - 16-byte keys - 60.00 cycles/hash
-Small key speed test - 17-byte keys - 61.00 cycles/hash
-Small key speed test - 18-byte keys - 61.00 cycles/hash
-Small key speed test - 19-byte keys - 61.00 cycles/hash
-Small key speed test - 20-byte keys - 61.00 cycles/hash
-Small key speed test - 21-byte keys - 61.88 cycles/hash
-Small key speed test - 22-byte keys - 61.81 cycles/hash
-Small key speed test - 23-byte keys - 61.86 cycles/hash
-Small key speed test - 24-byte keys - 62.00 cycles/hash
-Small key speed test - 25-byte keys - 61.95 cycles/hash
-Small key speed test - 26-byte keys - 61.93 cycles/hash
-Small key speed test - 27-byte keys - 61.96 cycles/hash
-Small key speed test - 28-byte keys - 61.88 cycles/hash
-Small key speed test - 29-byte keys - 61.71 cycles/hash
-Small key speed test - 30-byte keys - 61.66 cycles/hash
-Small key speed test - 31-byte keys - 61.76 cycles/hash
-Average 49.368 cycles/hash
+Small key speed test - 1-byte keys - 32.00 cycles/hash
+Small key speed test - 2-byte keys - 32.00 cycles/hash
+Small key speed test - 3-byte keys - 32.00 cycles/hash
+Small key speed test - 4-byte keys - 32.00 cycles/hash
+Small key speed test - 5-byte keys - 32.00 cycles/hash
+Small key speed test - 6-byte keys - 32.00 cycles/hash
+Small key speed test - 7-byte keys - 32.00 cycles/hash
+Small key speed test - 8-byte keys - 34.00 cycles/hash
+Small key speed test - 9-byte keys - 38.67 cycles/hash
+Small key speed test - 10-byte keys - 38.69 cycles/hash
+Small key speed test - 11-byte keys - 38.65 cycles/hash
+Small key speed test - 12-byte keys - 38.65 cycles/hash
+Small key speed test - 13-byte keys - 38.67 cycles/hash
+Small key speed test - 14-byte keys - 38.69 cycles/hash
+Small key speed test - 15-byte keys - 38.72 cycles/hash
+Small key speed test - 16-byte keys - 58.00 cycles/hash
+Small key speed test - 17-byte keys - 59.00 cycles/hash
+Small key speed test - 18-byte keys - 59.00 cycles/hash
+Small key speed test - 19-byte keys - 59.00 cycles/hash
+Small key speed test - 20-byte keys - 59.00 cycles/hash
+Small key speed test - 21-byte keys - 59.00 cycles/hash
+Small key speed test - 22-byte keys - 59.00 cycles/hash
+Small key speed test - 23-byte keys - 59.00 cycles/hash
+Small key speed test - 24-byte keys - 59.21 cycles/hash
+Small key speed test - 25-byte keys - 59.34 cycles/hash
+Small key speed test - 26-byte keys - 59.33 cycles/hash
+Small key speed test - 27-byte keys - 59.00 cycles/hash
+Small key speed test - 28-byte keys - 59.00 cycles/hash
+Small key speed test - 29-byte keys - 59.00 cycles/hash
+Small key speed test - 30-byte keys - 59.00 cycles/hash
+Small key speed test - 31-byte keys - 59.00 cycles/hash
+Small key speed test - 32-byte keys - 69.20 cycles/hash
+Average 48.182 cycles/hash
+Average, weighted by key length freq. 48.753 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 45.824 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 453.528 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 334.642 cycles/op (9.5 stdv)
+Init std HashMapTest: 417.935 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 309.503 cycles/op (3.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 308.599 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 247.610 cycles/op (4.3 stdv) ....... PASS
+Init fast HashMapTest: 287.424 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 242.584 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.040791 seconds
+Verification value is 0x00000001 - Testing took 13.922977 seconds
--- Testing FNV1a "Fowler-Noll-Vo hash, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x140ed7434f1c - 0x140ed7434ed4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.266 bytes/cycle - 762.18 MiB/sec @ 3 ghz
-Alignment 6 - 0.266 bytes/cycle - 761.98 MiB/sec @ 3 ghz
-Alignment 5 - 0.266 bytes/cycle - 762.42 MiB/sec @ 3 ghz
-Alignment 4 - 0.266 bytes/cycle - 761.53 MiB/sec @ 3 ghz
-Alignment 3 - 0.266 bytes/cycle - 761.68 MiB/sec @ 3 ghz
-Alignment 2 - 0.267 bytes/cycle - 762.69 MiB/sec @ 3 ghz
-Alignment 1 - 0.267 bytes/cycle - 762.73 MiB/sec @ 3 ghz
-Alignment 0 - 0.266 bytes/cycle - 761.61 MiB/sec @ 3 ghz
-Average - 0.266 bytes/cycle - 762.10 MiB/sec @ 3 ghz
+Alignment 7 - 0.238 bytes/cycle - 680.82 MiB/sec @ 3 ghz
+Alignment 6 - 0.268 bytes/cycle - 765.49 MiB/sec @ 3 ghz
+Alignment 5 - 0.267 bytes/cycle - 765.14 MiB/sec @ 3 ghz
+Alignment 4 - 0.267 bytes/cycle - 765.28 MiB/sec @ 3 ghz
+Alignment 3 - 0.267 bytes/cycle - 765.18 MiB/sec @ 3 ghz
+Alignment 2 - 0.267 bytes/cycle - 765.25 MiB/sec @ 3 ghz
+Alignment 1 - 0.267 bytes/cycle - 765.25 MiB/sec @ 3 ghz
+Alignment 0 - 0.267 bytes/cycle - 765.17 MiB/sec @ 3 ghz
+Average - 0.264 bytes/cycle - 754.70 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 17.00 cycles/hash
Small key speed test - 2-byte keys - 21.00 cycles/hash
-Small key speed test - 3-byte keys - 24.99 cycles/hash
-Small key speed test - 4-byte keys - 28.81 cycles/hash
+Small key speed test - 3-byte keys - 24.89 cycles/hash
+Small key speed test - 4-byte keys - 28.50 cycles/hash
Small key speed test - 5-byte keys - 32.00 cycles/hash
Small key speed test - 6-byte keys - 36.00 cycles/hash
-Small key speed test - 7-byte keys - 40.00 cycles/hash
-Small key speed test - 8-byte keys - 44.00 cycles/hash
-Small key speed test - 9-byte keys - 47.00 cycles/hash
-Small key speed test - 10-byte keys - 51.62 cycles/hash
-Small key speed test - 11-byte keys - 55.00 cycles/hash
-Small key speed test - 12-byte keys - 59.00 cycles/hash
-Small key speed test - 13-byte keys - 63.00 cycles/hash
-Small key speed test - 14-byte keys - 66.00 cycles/hash
-Small key speed test - 15-byte keys - 70.00 cycles/hash
-Small key speed test - 16-byte keys - 73.68 cycles/hash
-Small key speed test - 17-byte keys - 77.00 cycles/hash
-Small key speed test - 18-byte keys - 81.00 cycles/hash
-Small key speed test - 19-byte keys - 84.50 cycles/hash
-Small key speed test - 20-byte keys - 88.52 cycles/hash
-Small key speed test - 21-byte keys - 92.00 cycles/hash
-Small key speed test - 22-byte keys - 96.00 cycles/hash
-Small key speed test - 23-byte keys - 99.66 cycles/hash
-Small key speed test - 24-byte keys - 104.00 cycles/hash
-Small key speed test - 25-byte keys - 108.00 cycles/hash
-Small key speed test - 26-byte keys - 111.58 cycles/hash
-Small key speed test - 27-byte keys - 115.54 cycles/hash
-Small key speed test - 28-byte keys - 118.60 cycles/hash
-Small key speed test - 29-byte keys - 122.55 cycles/hash
-Small key speed test - 30-byte keys - 126.61 cycles/hash
-Small key speed test - 31-byte keys - 130.51 cycles/hash
-Average 73.715 cycles/hash
+Small key speed test - 7-byte keys - 39.99 cycles/hash
+Small key speed test - 8-byte keys - 43.75 cycles/hash
+Small key speed test - 9-byte keys - 46.95 cycles/hash
+Small key speed test - 10-byte keys - 51.00 cycles/hash
+Small key speed test - 11-byte keys - 54.90 cycles/hash
+Small key speed test - 12-byte keys - 58.89 cycles/hash
+Small key speed test - 13-byte keys - 62.17 cycles/hash
+Small key speed test - 14-byte keys - 65.99 cycles/hash
+Small key speed test - 15-byte keys - 69.98 cycles/hash
+Small key speed test - 16-byte keys - 73.00 cycles/hash
+Small key speed test - 17-byte keys - 76.96 cycles/hash
+Small key speed test - 18-byte keys - 80.84 cycles/hash
+Small key speed test - 19-byte keys - 84.00 cycles/hash
+Small key speed test - 20-byte keys - 88.00 cycles/hash
+Small key speed test - 21-byte keys - 91.84 cycles/hash
+Small key speed test - 22-byte keys - 95.83 cycles/hash
+Small key speed test - 23-byte keys - 99.13 cycles/hash
+Small key speed test - 24-byte keys - 103.80 cycles/hash
+Small key speed test - 25-byte keys - 107.80 cycles/hash
+Small key speed test - 26-byte keys - 110.97 cycles/hash
+Small key speed test - 27-byte keys - 115.22 cycles/hash
+Small key speed test - 28-byte keys - 117.86 cycles/hash
+Small key speed test - 29-byte keys - 121.38 cycles/hash
+Small key speed test - 30-byte keys - 125.86 cycles/hash
+Small key speed test - 31-byte keys - 129.78 cycles/hash
+Small key speed test - 32-byte keys - 133.80 cycles/hash
+Average 75.283 cycles/hash
+Average, weighted by key length freq. 75.065 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 59.819 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 445.591 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 365.918 cycles/op (7.1 stdv)
+Init std HashMapTest: 410.147 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 334.137 cycles/op (3.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 313.765 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 250.052 cycles/op (5.9 stdv) ....... PASS
+Init fast HashMapTest: 284.495 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 226.300 cycles/op (1.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 23.333825 seconds
+Verification value is 0x00000001 - Testing took 24.141659 seconds
--- Testing FNV1A_Totenschiff "FNV1A_Totenschiff_v1 64-bit sanmayce" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x142312c15158 - 0x142312c150ec). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.151 bytes/cycle - 6152.98 MiB/sec @ 3 ghz
-Alignment 6 - 2.150 bytes/cycle - 6152.26 MiB/sec @ 3 ghz
-Alignment 5 - 2.150 bytes/cycle - 6150.94 MiB/sec @ 3 ghz
-Alignment 4 - 2.144 bytes/cycle - 6133.06 MiB/sec @ 3 ghz
-Alignment 3 - 2.150 bytes/cycle - 6152.56 MiB/sec @ 3 ghz
-Alignment 2 - 2.151 bytes/cycle - 6153.28 MiB/sec @ 3 ghz
-Alignment 1 - 2.151 bytes/cycle - 6153.24 MiB/sec @ 3 ghz
-Alignment 0 - 2.150 bytes/cycle - 6151.67 MiB/sec @ 3 ghz
-Average - 2.150 bytes/cycle - 6150.00 MiB/sec @ 3 ghz
+Alignment 7 - 2.154 bytes/cycle - 6163.99 MiB/sec @ 3 ghz
+Alignment 6 - 2.156 bytes/cycle - 6167.98 MiB/sec @ 3 ghz
+Alignment 5 - 2.156 bytes/cycle - 6167.82 MiB/sec @ 3 ghz
+Alignment 4 - 2.156 bytes/cycle - 6167.90 MiB/sec @ 3 ghz
+Alignment 3 - 2.155 bytes/cycle - 6166.48 MiB/sec @ 3 ghz
+Alignment 2 - 2.156 bytes/cycle - 6167.62 MiB/sec @ 3 ghz
+Alignment 1 - 2.156 bytes/cycle - 6167.50 MiB/sec @ 3 ghz
+Alignment 0 - 2.155 bytes/cycle - 6165.47 MiB/sec @ 3 ghz
+Average - 2.155 bytes/cycle - 6166.85 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 22.00 cycles/hash
-Small key speed test - 2-byte keys - 22.00 cycles/hash
+Small key speed test - 1-byte keys - 22.28 cycles/hash
+Small key speed test - 2-byte keys - 22.32 cycles/hash
Small key speed test - 3-byte keys - 22.00 cycles/hash
-Small key speed test - 4-byte keys - 22.00 cycles/hash
+Small key speed test - 4-byte keys - 22.28 cycles/hash
Small key speed test - 5-byte keys - 22.00 cycles/hash
Small key speed test - 6-byte keys - 22.00 cycles/hash
-Small key speed test - 7-byte keys - 22.33 cycles/hash
-Small key speed test - 8-byte keys - 22.00 cycles/hash
-Small key speed test - 9-byte keys - 24.12 cycles/hash
-Small key speed test - 10-byte keys - 24.18 cycles/hash
-Small key speed test - 11-byte keys - 24.14 cycles/hash
-Small key speed test - 12-byte keys - 24.30 cycles/hash
-Small key speed test - 13-byte keys - 24.15 cycles/hash
-Small key speed test - 14-byte keys - 24.21 cycles/hash
-Small key speed test - 15-byte keys - 24.15 cycles/hash
-Small key speed test - 16-byte keys - 24.26 cycles/hash
+Small key speed test - 7-byte keys - 22.00 cycles/hash
+Small key speed test - 8-byte keys - 22.34 cycles/hash
+Small key speed test - 9-byte keys - 24.28 cycles/hash
+Small key speed test - 10-byte keys - 24.25 cycles/hash
+Small key speed test - 11-byte keys - 24.29 cycles/hash
+Small key speed test - 12-byte keys - 24.26 cycles/hash
+Small key speed test - 13-byte keys - 24.26 cycles/hash
+Small key speed test - 14-byte keys - 24.43 cycles/hash
+Small key speed test - 15-byte keys - 24.00 cycles/hash
+Small key speed test - 16-byte keys - 24.23 cycles/hash
Small key speed test - 17-byte keys - 28.00 cycles/hash
Small key speed test - 18-byte keys - 28.00 cycles/hash
Small key speed test - 19-byte keys - 28.00 cycles/hash
@@ -3472,103 +4091,111 @@ Small key speed test - 21-byte keys - 28.00 cycles/hash
Small key speed test - 22-byte keys - 28.00 cycles/hash
Small key speed test - 23-byte keys - 28.00 cycles/hash
Small key speed test - 24-byte keys - 28.00 cycles/hash
-Small key speed test - 25-byte keys - 31.88 cycles/hash
-Small key speed test - 26-byte keys - 31.98 cycles/hash
-Small key speed test - 27-byte keys - 31.88 cycles/hash
-Small key speed test - 28-byte keys - 31.76 cycles/hash
-Small key speed test - 29-byte keys - 31.78 cycles/hash
-Small key speed test - 30-byte keys - 31.85 cycles/hash
-Small key speed test - 31-byte keys - 31.88 cycles/hash
-Average 26.350 cycles/hash
+Small key speed test - 25-byte keys - 32.00 cycles/hash
+Small key speed test - 26-byte keys - 32.00 cycles/hash
+Small key speed test - 27-byte keys - 32.00 cycles/hash
+Small key speed test - 28-byte keys - 32.00 cycles/hash
+Small key speed test - 29-byte keys - 32.00 cycles/hash
+Small key speed test - 30-byte keys - 32.00 cycles/hash
+Small key speed test - 31-byte keys - 32.00 cycles/hash
+Small key speed test - 32-byte keys - 32.00 cycles/hash
+Average 26.601 cycles/hash
+Average, weighted by key length freq. 26.211 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 24.097 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 414.630 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 360.159 cycles/op (4.7 stdv)
+Init std HashMapTest: 386.585 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 328.473 cycles/op (2.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 312.769 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 251.715 cycles/op (5.1 stdv) ....... PASS
+Init fast HashMapTest: 280.126 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 235.714 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.636707 seconds
+Verification value is 0x00000001 - Testing took 8.733134 seconds
--- Testing FNV1A_Pippip_Yurii "FNV1A-Pippip_Yurii 32-bit sanmayce" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x142a64b222d0 - 0x142a64b22264). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.125 bytes/cycle - 6079.15 MiB/sec @ 3 ghz
-Alignment 6 - 2.127 bytes/cycle - 6084.06 MiB/sec @ 3 ghz
-Alignment 5 - 2.128 bytes/cycle - 6087.31 MiB/sec @ 3 ghz
-Alignment 4 - 2.129 bytes/cycle - 6092.44 MiB/sec @ 3 ghz
-Alignment 3 - 2.137 bytes/cycle - 6113.32 MiB/sec @ 3 ghz
-Alignment 2 - 2.127 bytes/cycle - 6085.81 MiB/sec @ 3 ghz
-Alignment 1 - 2.137 bytes/cycle - 6113.28 MiB/sec @ 3 ghz
-Alignment 0 - 2.131 bytes/cycle - 6098.08 MiB/sec @ 3 ghz
-Average - 2.130 bytes/cycle - 6094.18 MiB/sec @ 3 ghz
+Alignment 7 - 2.135 bytes/cycle - 6107.30 MiB/sec @ 3 ghz
+Alignment 6 - 2.138 bytes/cycle - 6116.83 MiB/sec @ 3 ghz
+Alignment 5 - 2.138 bytes/cycle - 6116.27 MiB/sec @ 3 ghz
+Alignment 4 - 2.138 bytes/cycle - 6116.50 MiB/sec @ 3 ghz
+Alignment 3 - 2.138 bytes/cycle - 6116.47 MiB/sec @ 3 ghz
+Alignment 2 - 2.138 bytes/cycle - 6116.49 MiB/sec @ 3 ghz
+Alignment 1 - 2.138 bytes/cycle - 6115.86 MiB/sec @ 3 ghz
+Alignment 0 - 2.138 bytes/cycle - 6116.57 MiB/sec @ 3 ghz
+Average - 2.137 bytes/cycle - 6115.29 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 23.00 cycles/hash
-Small key speed test - 2-byte keys - 23.00 cycles/hash
-Small key speed test - 3-byte keys - 23.00 cycles/hash
-Small key speed test - 4-byte keys - 23.00 cycles/hash
-Small key speed test - 5-byte keys - 23.00 cycles/hash
-Small key speed test - 6-byte keys - 23.00 cycles/hash
+Small key speed test - 1-byte keys - 22.99 cycles/hash
+Small key speed test - 2-byte keys - 22.99 cycles/hash
+Small key speed test - 3-byte keys - 22.99 cycles/hash
+Small key speed test - 4-byte keys - 22.99 cycles/hash
+Small key speed test - 5-byte keys - 22.99 cycles/hash
+Small key speed test - 6-byte keys - 22.99 cycles/hash
Small key speed test - 7-byte keys - 23.00 cycles/hash
-Small key speed test - 8-byte keys - 23.00 cycles/hash
-Small key speed test - 9-byte keys - 25.00 cycles/hash
-Small key speed test - 10-byte keys - 25.00 cycles/hash
-Small key speed test - 11-byte keys - 25.00 cycles/hash
-Small key speed test - 12-byte keys - 25.00 cycles/hash
-Small key speed test - 13-byte keys - 25.00 cycles/hash
-Small key speed test - 14-byte keys - 25.00 cycles/hash
-Small key speed test - 15-byte keys - 25.00 cycles/hash
-Small key speed test - 16-byte keys - 25.00 cycles/hash
-Small key speed test - 17-byte keys - 32.72 cycles/hash
-Small key speed test - 18-byte keys - 32.81 cycles/hash
-Small key speed test - 19-byte keys - 32.78 cycles/hash
-Small key speed test - 20-byte keys - 32.59 cycles/hash
-Small key speed test - 21-byte keys - 32.93 cycles/hash
-Small key speed test - 22-byte keys - 32.95 cycles/hash
-Small key speed test - 23-byte keys - 32.82 cycles/hash
-Small key speed test - 24-byte keys - 32.83 cycles/hash
-Small key speed test - 25-byte keys - 32.95 cycles/hash
-Small key speed test - 26-byte keys - 32.91 cycles/hash
-Small key speed test - 27-byte keys - 32.93 cycles/hash
-Small key speed test - 28-byte keys - 32.86 cycles/hash
-Small key speed test - 29-byte keys - 32.86 cycles/hash
-Small key speed test - 30-byte keys - 32.95 cycles/hash
-Small key speed test - 31-byte keys - 32.96 cycles/hash
-Average 28.286 cycles/hash
+Small key speed test - 8-byte keys - 22.99 cycles/hash
+Small key speed test - 9-byte keys - 24.98 cycles/hash
+Small key speed test - 10-byte keys - 24.99 cycles/hash
+Small key speed test - 11-byte keys - 24.99 cycles/hash
+Small key speed test - 12-byte keys - 24.99 cycles/hash
+Small key speed test - 13-byte keys - 24.99 cycles/hash
+Small key speed test - 14-byte keys - 24.98 cycles/hash
+Small key speed test - 15-byte keys - 24.97 cycles/hash
+Small key speed test - 16-byte keys - 24.99 cycles/hash
+Small key speed test - 17-byte keys - 32.00 cycles/hash
+Small key speed test - 18-byte keys - 32.32 cycles/hash
+Small key speed test - 19-byte keys - 32.00 cycles/hash
+Small key speed test - 20-byte keys - 32.13 cycles/hash
+Small key speed test - 21-byte keys - 32.13 cycles/hash
+Small key speed test - 22-byte keys - 32.59 cycles/hash
+Small key speed test - 23-byte keys - 32.00 cycles/hash
+Small key speed test - 24-byte keys - 32.00 cycles/hash
+Small key speed test - 25-byte keys - 32.00 cycles/hash
+Small key speed test - 26-byte keys - 32.00 cycles/hash
+Small key speed test - 27-byte keys - 32.00 cycles/hash
+Small key speed test - 28-byte keys - 32.00 cycles/hash
+Small key speed test - 29-byte keys - 32.00 cycles/hash
+Small key speed test - 30-byte keys - 32.00 cycles/hash
+Small key speed test - 31-byte keys - 32.00 cycles/hash
+Small key speed test - 32-byte keys - 32.00 cycles/hash
+Average 28.031 cycles/hash
+Average, weighted by key length freq. 28.018 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 24.865 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 425.095 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 364.956 cycles/op (7.3 stdv)
+Init std HashMapTest: 390.744 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 326.160 cycles/op (3.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.994 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 260.047 cycles/op (5.5 stdv) ....... PASS
+Init fast HashMapTest: 289.682 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 233.521 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.979590 seconds
+Verification value is 0x00000001 - Testing took 8.954601 seconds
--- Testing FNV1a_YT "FNV1a-YoshimitsuTRIAD 32-bit sanmayce" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 144 (0x90) ticks (0x1431e64afcd4 - 0x1431e64afc44). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.673 bytes/cycle - 13369.79 MiB/sec @ 3 ghz
-Alignment 6 - 4.700 bytes/cycle - 13445.87 MiB/sec @ 3 ghz
-Alignment 5 - 4.687 bytes/cycle - 13408.93 MiB/sec @ 3 ghz
-Alignment 4 - 4.756 bytes/cycle - 13608.15 MiB/sec @ 3 ghz
-Alignment 3 - 4.678 bytes/cycle - 13384.95 MiB/sec @ 3 ghz
-Alignment 2 - 4.681 bytes/cycle - 13391.17 MiB/sec @ 3 ghz
-Alignment 1 - 4.693 bytes/cycle - 13426.74 MiB/sec @ 3 ghz
-Alignment 0 - 4.745 bytes/cycle - 13574.85 MiB/sec @ 3 ghz
-Average - 4.702 bytes/cycle - 13451.31 MiB/sec @ 3 ghz
+Alignment 7 - 4.692 bytes/cycle - 13423.19 MiB/sec @ 3 ghz
+Alignment 6 - 4.702 bytes/cycle - 13451.58 MiB/sec @ 3 ghz
+Alignment 5 - 4.702 bytes/cycle - 13453.85 MiB/sec @ 3 ghz
+Alignment 4 - 4.758 bytes/cycle - 13611.90 MiB/sec @ 3 ghz
+Alignment 3 - 4.696 bytes/cycle - 13434.93 MiB/sec @ 3 ghz
+Alignment 2 - 4.695 bytes/cycle - 13432.54 MiB/sec @ 3 ghz
+Alignment 1 - 4.695 bytes/cycle - 13432.21 MiB/sec @ 3 ghz
+Alignment 0 - 4.758 bytes/cycle - 13613.40 MiB/sec @ 3 ghz
+Average - 4.712 bytes/cycle - 13481.70 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 22.00 cycles/hash
Small key speed test - 2-byte keys - 22.00 cycles/hash
@@ -3578,241 +4205,257 @@ Small key speed test - 5-byte keys - 26.00 cycles/hash
Small key speed test - 6-byte keys - 26.00 cycles/hash
Small key speed test - 7-byte keys - 30.00 cycles/hash
Small key speed test - 8-byte keys - 24.00 cycles/hash
-Small key speed test - 9-byte keys - 26.98 cycles/hash
+Small key speed test - 9-byte keys - 27.00 cycles/hash
Small key speed test - 10-byte keys - 26.00 cycles/hash
Small key speed test - 11-byte keys - 30.00 cycles/hash
Small key speed test - 12-byte keys - 28.00 cycles/hash
Small key speed test - 13-byte keys - 30.00 cycles/hash
Small key speed test - 14-byte keys - 30.00 cycles/hash
-Small key speed test - 15-byte keys - 34.00 cycles/hash
+Small key speed test - 15-byte keys - 33.60 cycles/hash
Small key speed test - 16-byte keys - 26.00 cycles/hash
Small key speed test - 17-byte keys - 28.00 cycles/hash
Small key speed test - 18-byte keys - 28.00 cycles/hash
-Small key speed test - 19-byte keys - 31.96 cycles/hash
+Small key speed test - 19-byte keys - 31.59 cycles/hash
Small key speed test - 20-byte keys - 30.00 cycles/hash
-Small key speed test - 21-byte keys - 31.86 cycles/hash
+Small key speed test - 21-byte keys - 32.00 cycles/hash
Small key speed test - 22-byte keys - 32.00 cycles/hash
Small key speed test - 23-byte keys - 36.00 cycles/hash
-Small key speed test - 24-byte keys - 32.00 cycles/hash
-Small key speed test - 25-byte keys - 35.89 cycles/hash
-Small key speed test - 26-byte keys - 36.00 cycles/hash
+Small key speed test - 24-byte keys - 31.94 cycles/hash
+Small key speed test - 25-byte keys - 35.85 cycles/hash
+Small key speed test - 26-byte keys - 35.92 cycles/hash
Small key speed test - 27-byte keys - 39.00 cycles/hash
-Small key speed test - 28-byte keys - 35.12 cycles/hash
+Small key speed test - 28-byte keys - 35.00 cycles/hash
Small key speed test - 29-byte keys - 39.00 cycles/hash
Small key speed test - 30-byte keys - 39.00 cycles/hash
-Small key speed test - 31-byte keys - 42.88 cycles/hash
-Average 30.570 cycles/hash
+Small key speed test - 31-byte keys - 42.67 cycles/hash
+Small key speed test - 32-byte keys - 35.00 cycles/hash
+Average 30.674 cycles/hash
+Average, weighted by key length freq. 30.277 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 27.166 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 441.560 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 359.307 cycles/op (4.1 stdv)
+Init std HashMapTest: 407.872 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 327.644 cycles/op (3.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 309.156 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.222 cycles/op (5.4 stdv) ....... PASS
+Init fast HashMapTest: 284.955 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 233.706 cycles/op (7.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.843693 seconds
+Verification value is 0x00000001 - Testing took 8.919961 seconds
--- Testing FNV64 "Fowler-Noll-Vo hash, 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1439604ba534 - 0x1439604ba4c8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.267 bytes/cycle - 762.83 MiB/sec @ 3 ghz
-Alignment 6 - 0.266 bytes/cycle - 761.93 MiB/sec @ 3 ghz
-Alignment 5 - 0.266 bytes/cycle - 761.61 MiB/sec @ 3 ghz
-Alignment 4 - 0.266 bytes/cycle - 761.39 MiB/sec @ 3 ghz
-Alignment 3 - 0.266 bytes/cycle - 761.60 MiB/sec @ 3 ghz
-Alignment 2 - 0.266 bytes/cycle - 761.65 MiB/sec @ 3 ghz
-Alignment 1 - 0.267 bytes/cycle - 762.92 MiB/sec @ 3 ghz
-Alignment 0 - 0.267 bytes/cycle - 763.25 MiB/sec @ 3 ghz
-Average - 0.266 bytes/cycle - 762.15 MiB/sec @ 3 ghz
+Alignment 7 - 0.222 bytes/cycle - 635.75 MiB/sec @ 3 ghz
+Alignment 6 - 0.248 bytes/cycle - 710.13 MiB/sec @ 3 ghz
+Alignment 5 - 0.270 bytes/cycle - 772.85 MiB/sec @ 3 ghz
+Alignment 4 - 0.270 bytes/cycle - 772.75 MiB/sec @ 3 ghz
+Alignment 3 - 0.270 bytes/cycle - 772.46 MiB/sec @ 3 ghz
+Alignment 2 - 0.270 bytes/cycle - 772.46 MiB/sec @ 3 ghz
+Alignment 1 - 0.270 bytes/cycle - 772.57 MiB/sec @ 3 ghz
+Alignment 0 - 0.270 bytes/cycle - 772.66 MiB/sec @ 3 ghz
+Average - 0.261 bytes/cycle - 747.70 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 17.00 cycles/hash
-Small key speed test - 2-byte keys - 21.00 cycles/hash
-Small key speed test - 3-byte keys - 24.82 cycles/hash
+Small key speed test - 2-byte keys - 20.89 cycles/hash
+Small key speed test - 3-byte keys - 24.00 cycles/hash
Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 32.00 cycles/hash
-Small key speed test - 6-byte keys - 36.00 cycles/hash
-Small key speed test - 7-byte keys - 39.88 cycles/hash
-Small key speed test - 8-byte keys - 43.00 cycles/hash
-Small key speed test - 9-byte keys - 47.00 cycles/hash
-Small key speed test - 10-byte keys - 51.00 cycles/hash
-Small key speed test - 11-byte keys - 54.33 cycles/hash
-Small key speed test - 12-byte keys - 58.60 cycles/hash
-Small key speed test - 13-byte keys - 62.00 cycles/hash
-Small key speed test - 14-byte keys - 66.00 cycles/hash
-Small key speed test - 15-byte keys - 69.75 cycles/hash
-Small key speed test - 16-byte keys - 73.73 cycles/hash
-Small key speed test - 17-byte keys - 77.00 cycles/hash
-Small key speed test - 18-byte keys - 81.00 cycles/hash
-Small key speed test - 19-byte keys - 84.56 cycles/hash
-Small key speed test - 20-byte keys - 88.00 cycles/hash
-Small key speed test - 21-byte keys - 92.00 cycles/hash
-Small key speed test - 22-byte keys - 95.74 cycles/hash
-Small key speed test - 23-byte keys - 99.66 cycles/hash
-Small key speed test - 24-byte keys - 103.62 cycles/hash
-Small key speed test - 25-byte keys - 107.00 cycles/hash
-Small key speed test - 26-byte keys - 111.31 cycles/hash
-Small key speed test - 27-byte keys - 114.80 cycles/hash
-Small key speed test - 28-byte keys - 118.21 cycles/hash
-Small key speed test - 29-byte keys - 122.15 cycles/hash
-Small key speed test - 30-byte keys - 126.10 cycles/hash
-Small key speed test - 31-byte keys - 129.60 cycles/hash
-Average 73.382 cycles/hash
+Small key speed test - 5-byte keys - 31.73 cycles/hash
+Small key speed test - 6-byte keys - 35.00 cycles/hash
+Small key speed test - 7-byte keys - 39.00 cycles/hash
+Small key speed test - 8-byte keys - 42.94 cycles/hash
+Small key speed test - 9-byte keys - 46.00 cycles/hash
+Small key speed test - 10-byte keys - 50.00 cycles/hash
+Small key speed test - 11-byte keys - 53.86 cycles/hash
+Small key speed test - 12-byte keys - 57.61 cycles/hash
+Small key speed test - 13-byte keys - 61.00 cycles/hash
+Small key speed test - 14-byte keys - 65.00 cycles/hash
+Small key speed test - 15-byte keys - 68.68 cycles/hash
+Small key speed test - 16-byte keys - 72.95 cycles/hash
+Small key speed test - 17-byte keys - 76.00 cycles/hash
+Small key speed test - 18-byte keys - 79.81 cycles/hash
+Small key speed test - 19-byte keys - 83.50 cycles/hash
+Small key speed test - 20-byte keys - 87.00 cycles/hash
+Small key speed test - 21-byte keys - 91.00 cycles/hash
+Small key speed test - 22-byte keys - 94.54 cycles/hash
+Small key speed test - 23-byte keys - 98.48 cycles/hash
+Small key speed test - 24-byte keys - 102.00 cycles/hash
+Small key speed test - 25-byte keys - 105.47 cycles/hash
+Small key speed test - 26-byte keys - 109.00 cycles/hash
+Small key speed test - 27-byte keys - 113.00 cycles/hash
+Small key speed test - 28-byte keys - 117.16 cycles/hash
+Small key speed test - 29-byte keys - 120.00 cycles/hash
+Small key speed test - 30-byte keys - 124.06 cycles/hash
+Small key speed test - 31-byte keys - 127.95 cycles/hash
+Small key speed test - 32-byte keys - 131.00 cycles/hash
+Average 74.176 cycles/hash
+Average, weighted by key length freq. 74.003 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 59.190 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 444.551 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 363.390 cycles/op (7.1 stdv)
+Init std HashMapTest: 427.539 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 329.381 cycles/op (3.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 305.130 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 204.266 cycles/op (4.9 stdv) ....... PASS
+Init fast HashMapTest: 271.484 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 189.182 cycles/op (1.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 23.230626 seconds
---- Testing FNV2 "wordwise FNV" POOR
+Verification value is 0x00000001 - Testing took 23.808438 seconds
+--- Testing FNV128 "Go variant of FNV, 128-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x144d544a6918 - 0x144d544a68ac). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.166 bytes/cycle - 6197.39 MiB/sec @ 3 ghz
-Alignment 6 - 2.166 bytes/cycle - 6196.81 MiB/sec @ 3 ghz
-Alignment 5 - 2.167 bytes/cycle - 6200.37 MiB/sec @ 3 ghz
-Alignment 4 - 2.167 bytes/cycle - 6199.11 MiB/sec @ 3 ghz
-Alignment 3 - 2.168 bytes/cycle - 6201.54 MiB/sec @ 3 ghz
-Alignment 2 - 2.167 bytes/cycle - 6200.32 MiB/sec @ 3 ghz
-Alignment 1 - 2.168 bytes/cycle - 6201.27 MiB/sec @ 3 ghz
-Alignment 0 - 2.168 bytes/cycle - 6202.09 MiB/sec @ 3 ghz
-Average - 2.167 bytes/cycle - 6199.86 MiB/sec @ 3 ghz
+Alignment 7 - 0.143 bytes/cycle - 408.56 MiB/sec @ 3 ghz
+Alignment 6 - 0.143 bytes/cycle - 408.55 MiB/sec @ 3 ghz
+Alignment 5 - 0.143 bytes/cycle - 408.54 MiB/sec @ 3 ghz
+Alignment 4 - 0.143 bytes/cycle - 408.68 MiB/sec @ 3 ghz
+Alignment 3 - 0.143 bytes/cycle - 408.52 MiB/sec @ 3 ghz
+Alignment 2 - 0.143 bytes/cycle - 408.53 MiB/sec @ 3 ghz
+Alignment 1 - 0.143 bytes/cycle - 408.67 MiB/sec @ 3 ghz
+Alignment 0 - 0.143 bytes/cycle - 408.69 MiB/sec @ 3 ghz
+Average - 0.143 bytes/cycle - 408.59 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 16.95 cycles/hash
-Small key speed test - 2-byte keys - 20.00 cycles/hash
-Small key speed test - 3-byte keys - 24.00 cycles/hash
-Small key speed test - 4-byte keys - 27.97 cycles/hash
-Small key speed test - 5-byte keys - 32.00 cycles/hash
-Small key speed test - 6-byte keys - 35.00 cycles/hash
-Small key speed test - 7-byte keys - 39.00 cycles/hash
-Small key speed test - 8-byte keys - 16.94 cycles/hash
-Small key speed test - 9-byte keys - 20.41 cycles/hash
-Small key speed test - 10-byte keys - 24.00 cycles/hash
-Small key speed test - 11-byte keys - 27.96 cycles/hash
-Small key speed test - 12-byte keys - 32.00 cycles/hash
-Small key speed test - 13-byte keys - 35.00 cycles/hash
-Small key speed test - 14-byte keys - 38.88 cycles/hash
-Small key speed test - 15-byte keys - 42.00 cycles/hash
-Small key speed test - 16-byte keys - 20.00 cycles/hash
-Small key speed test - 17-byte keys - 24.00 cycles/hash
-Small key speed test - 18-byte keys - 28.00 cycles/hash
-Small key speed test - 19-byte keys - 31.81 cycles/hash
-Small key speed test - 20-byte keys - 35.21 cycles/hash
-Small key speed test - 21-byte keys - 39.00 cycles/hash
-Small key speed test - 22-byte keys - 43.00 cycles/hash
-Small key speed test - 23-byte keys - 46.00 cycles/hash
-Small key speed test - 24-byte keys - 24.25 cycles/hash
-Small key speed test - 25-byte keys - 28.00 cycles/hash
-Small key speed test - 26-byte keys - 31.68 cycles/hash
-Small key speed test - 27-byte keys - 35.00 cycles/hash
-Small key speed test - 28-byte keys - 39.00 cycles/hash
-Small key speed test - 29-byte keys - 42.00 cycles/hash
-Small key speed test - 30-byte keys - 46.00 cycles/hash
-Small key speed test - 31-byte keys - 50.00 cycles/hash
-Average 32.099 cycles/hash
+Small key speed test - 1-byte keys - 16.98 cycles/hash
+Small key speed test - 2-byte keys - 26.99 cycles/hash
+Small key speed test - 3-byte keys - 34.41 cycles/hash
+Small key speed test - 4-byte keys - 40.00 cycles/hash
+Small key speed test - 5-byte keys - 47.00 cycles/hash
+Small key speed test - 6-byte keys - 54.00 cycles/hash
+Small key speed test - 7-byte keys - 61.00 cycles/hash
+Small key speed test - 8-byte keys - 68.12 cycles/hash
+Small key speed test - 9-byte keys - 75.00 cycles/hash
+Small key speed test - 10-byte keys - 82.00 cycles/hash
+Small key speed test - 11-byte keys - 89.12 cycles/hash
+Small key speed test - 12-byte keys - 96.85 cycles/hash
+Small key speed test - 13-byte keys - 103.00 cycles/hash
+Small key speed test - 14-byte keys - 110.00 cycles/hash
+Small key speed test - 15-byte keys - 117.20 cycles/hash
+Small key speed test - 16-byte keys - 124.00 cycles/hash
+Small key speed test - 17-byte keys - 131.00 cycles/hash
+Small key speed test - 18-byte keys - 138.12 cycles/hash
+Small key speed test - 19-byte keys - 146.00 cycles/hash
+Small key speed test - 20-byte keys - 152.15 cycles/hash
+Small key speed test - 21-byte keys - 160.00 cycles/hash
+Small key speed test - 22-byte keys - 166.15 cycles/hash
+Small key speed test - 23-byte keys - 173.00 cycles/hash
+Small key speed test - 24-byte keys - 180.12 cycles/hash
+Small key speed test - 25-byte keys - 187.00 cycles/hash
+Small key speed test - 26-byte keys - 194.00 cycles/hash
+Small key speed test - 27-byte keys - 202.11 cycles/hash
+Small key speed test - 28-byte keys - 220.26 cycles/hash
+Small key speed test - 29-byte keys - 268.66 cycles/hash
+Small key speed test - 30-byte keys - 245.33 cycles/hash
+Small key speed test - 31-byte keys - 240.75 cycles/hash
+Small key speed test - 32-byte keys - 236.00 cycles/hash
+Average 130.822 cycles/hash
+Average, weighted by key length freq. 128.375 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 99.066 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 443.797 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 343.347 cycles/op (7.9 stdv)
+Init std HashMapTest: 457.950 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 428.367 cycles/op (17.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 293.787 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 216.134 cycles/op (5.2 stdv) ....... PASS
+Init fast HashMapTest: 348.073 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 299.473 cycles/op (19.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.546227 seconds
---- Testing fletcher2 "fletcher2 ZFS" POOR
+Verification value is 0x00000001 - Testing took 40.367945 seconds
+--- Testing FNV2 "wordwise FNV" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x146f2a4cbca0 - 0x146f2a4cbc34). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.333 bytes/cycle - 15258.16 MiB/sec @ 3 ghz
-Alignment 6 - 5.339 bytes/cycle - 15273.83 MiB/sec @ 3 ghz
-Alignment 5 - 5.337 bytes/cycle - 15270.62 MiB/sec @ 3 ghz
-Alignment 4 - 5.344 bytes/cycle - 15288.91 MiB/sec @ 3 ghz
-Alignment 3 - 5.336 bytes/cycle - 15265.36 MiB/sec @ 3 ghz
-Alignment 2 - 5.335 bytes/cycle - 15262.66 MiB/sec @ 3 ghz
-Alignment 1 - 5.337 bytes/cycle - 15270.57 MiB/sec @ 3 ghz
-Alignment 0 - 5.258 bytes/cycle - 15044.39 MiB/sec @ 3 ghz
-Average - 5.327 bytes/cycle - 15241.81 MiB/sec @ 3 ghz
+Alignment 7 - 1.777 bytes/cycle - 5083.09 MiB/sec @ 3 ghz
+Alignment 6 - 1.777 bytes/cycle - 5083.11 MiB/sec @ 3 ghz
+Alignment 5 - 1.777 bytes/cycle - 5083.09 MiB/sec @ 3 ghz
+Alignment 4 - 1.779 bytes/cycle - 5088.43 MiB/sec @ 3 ghz
+Alignment 3 - 2.168 bytes/cycle - 6201.39 MiB/sec @ 3 ghz
+Alignment 2 - 2.158 bytes/cycle - 6174.19 MiB/sec @ 3 ghz
+Alignment 1 - 2.155 bytes/cycle - 6165.96 MiB/sec @ 3 ghz
+Alignment 0 - 2.156 bytes/cycle - 6167.67 MiB/sec @ 3 ghz
+Average - 1.968 bytes/cycle - 5630.87 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 15.00 cycles/hash
-Small key speed test - 2-byte keys - 17.00 cycles/hash
-Small key speed test - 3-byte keys - 18.32 cycles/hash
-Small key speed test - 4-byte keys - 19.50 cycles/hash
-Small key speed test - 5-byte keys - 21.75 cycles/hash
-Small key speed test - 6-byte keys - 22.23 cycles/hash
-Small key speed test - 7-byte keys - 24.00 cycles/hash
-Small key speed test - 8-byte keys - 15.00 cycles/hash
-Small key speed test - 9-byte keys - 16.14 cycles/hash
-Small key speed test - 10-byte keys - 18.00 cycles/hash
-Small key speed test - 11-byte keys - 19.00 cycles/hash
-Small key speed test - 12-byte keys - 21.00 cycles/hash
-Small key speed test - 13-byte keys - 22.82 cycles/hash
-Small key speed test - 14-byte keys - 24.00 cycles/hash
-Small key speed test - 15-byte keys - 25.00 cycles/hash
-Small key speed test - 16-byte keys - 16.13 cycles/hash
-Small key speed test - 17-byte keys - 18.00 cycles/hash
-Small key speed test - 18-byte keys - 19.00 cycles/hash
-Small key speed test - 19-byte keys - 21.00 cycles/hash
-Small key speed test - 20-byte keys - 22.00 cycles/hash
-Small key speed test - 21-byte keys - 23.25 cycles/hash
-Small key speed test - 22-byte keys - 25.00 cycles/hash
-Small key speed test - 23-byte keys - 26.67 cycles/hash
-Small key speed test - 24-byte keys - 18.24 cycles/hash
-Small key speed test - 25-byte keys - 19.75 cycles/hash
-Small key speed test - 26-byte keys - 20.47 cycles/hash
-Small key speed test - 27-byte keys - 22.31 cycles/hash
-Small key speed test - 28-byte keys - 23.25 cycles/hash
-Small key speed test - 29-byte keys - 25.00 cycles/hash
-Small key speed test - 30-byte keys - 26.25 cycles/hash
-Small key speed test - 31-byte keys - 27.50 cycles/hash
-Average 21.051 cycles/hash
+Small key speed test - 1-byte keys - 16.99 cycles/hash
+Small key speed test - 2-byte keys - 20.16 cycles/hash
+Small key speed test - 3-byte keys - 24.00 cycles/hash
+Small key speed test - 4-byte keys - 28.00 cycles/hash
+Small key speed test - 5-byte keys - 32.00 cycles/hash
+Small key speed test - 6-byte keys - 35.70 cycles/hash
+Small key speed test - 7-byte keys - 39.00 cycles/hash
+Small key speed test - 8-byte keys - 17.00 cycles/hash
+Small key speed test - 9-byte keys - 20.51 cycles/hash
+Small key speed test - 10-byte keys - 24.15 cycles/hash
+Small key speed test - 11-byte keys - 28.00 cycles/hash
+Small key speed test - 12-byte keys - 32.00 cycles/hash
+Small key speed test - 13-byte keys - 35.00 cycles/hash
+Small key speed test - 14-byte keys - 39.00 cycles/hash
+Small key speed test - 15-byte keys - 42.52 cycles/hash
+Small key speed test - 16-byte keys - 20.33 cycles/hash
+Small key speed test - 17-byte keys - 24.00 cycles/hash
+Small key speed test - 18-byte keys - 28.00 cycles/hash
+Small key speed test - 19-byte keys - 32.00 cycles/hash
+Small key speed test - 20-byte keys - 35.13 cycles/hash
+Small key speed test - 21-byte keys - 39.00 cycles/hash
+Small key speed test - 22-byte keys - 43.00 cycles/hash
+Small key speed test - 23-byte keys - 46.28 cycles/hash
+Small key speed test - 24-byte keys - 24.00 cycles/hash
+Small key speed test - 25-byte keys - 28.00 cycles/hash
+Small key speed test - 26-byte keys - 31.96 cycles/hash
+Small key speed test - 27-byte keys - 35.00 cycles/hash
+Small key speed test - 28-byte keys - 39.00 cycles/hash
+Small key speed test - 29-byte keys - 43.00 cycles/hash
+Small key speed test - 30-byte keys - 46.00 cycles/hash
+Small key speed test - 31-byte keys - 50.00 cycles/hash
+Small key speed test - 32-byte keys - 28.00 cycles/hash
+Average 32.085 cycles/hash
+Average, weighted by key length freq. 31.975 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 24.209 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 738.020 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 576.272 cycles/op (3.7 stdv)
+Init std HashMapTest: 413.937 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 314.907 cycles/op (1.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 415.273 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 349.076 cycles/op (4.0 stdv) ....... PASS
+Init fast HashMapTest: 269.726 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 207.079 cycles/op (0.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 7.622509 seconds
---- Testing fletcher4 "fletcher4 ZFS" POOR
+Verification value is 0x00000001 - Testing took 9.929187 seconds
+--- Testing fletcher2 "fletcher2 ZFS" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x14777cddb450 - 0x14777cddb3e4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.366 bytes/cycle - 15350.97 MiB/sec @ 3 ghz
-Alignment 6 - 5.383 bytes/cycle - 15401.59 MiB/sec @ 3 ghz
-Alignment 5 - 5.366 bytes/cycle - 15353.29 MiB/sec @ 3 ghz
-Alignment 4 - 5.365 bytes/cycle - 15349.86 MiB/sec @ 3 ghz
-Alignment 3 - 5.371 bytes/cycle - 15365.85 MiB/sec @ 3 ghz
-Alignment 2 - 5.378 bytes/cycle - 15386.91 MiB/sec @ 3 ghz
-Alignment 1 - 5.372 bytes/cycle - 15368.08 MiB/sec @ 3 ghz
-Alignment 0 - 5.291 bytes/cycle - 15137.71 MiB/sec @ 3 ghz
-Average - 5.361 bytes/cycle - 15339.28 MiB/sec @ 3 ghz
+Alignment 7 - 5.391 bytes/cycle - 15424.54 MiB/sec @ 3 ghz
+Alignment 6 - 5.396 bytes/cycle - 15437.02 MiB/sec @ 3 ghz
+Alignment 5 - 5.397 bytes/cycle - 15441.08 MiB/sec @ 3 ghz
+Alignment 4 - 5.397 bytes/cycle - 15442.34 MiB/sec @ 3 ghz
+Alignment 3 - 5.396 bytes/cycle - 15436.70 MiB/sec @ 3 ghz
+Alignment 2 - 5.397 bytes/cycle - 15441.41 MiB/sec @ 3 ghz
+Alignment 1 - 5.396 bytes/cycle - 15437.00 MiB/sec @ 3 ghz
+Alignment 0 - 5.320 bytes/cycle - 15220.86 MiB/sec @ 3 ghz
+Average - 5.386 bytes/cycle - 15410.12 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 15.00 cycles/hash
Small key speed test - 2-byte keys - 17.00 cycles/hash
@@ -3825,848 +4468,1034 @@ Small key speed test - 8-byte keys - 15.00 cycles/hash
Small key speed test - 9-byte keys - 16.00 cycles/hash
Small key speed test - 10-byte keys - 18.00 cycles/hash
Small key speed test - 11-byte keys - 19.00 cycles/hash
-Small key speed test - 12-byte keys - 21.00 cycles/hash
-Small key speed test - 13-byte keys - 22.19 cycles/hash
-Small key speed test - 14-byte keys - 23.19 cycles/hash
-Small key speed test - 15-byte keys - 25.00 cycles/hash
-Small key speed test - 16-byte keys - 16.25 cycles/hash
-Small key speed test - 17-byte keys - 18.00 cycles/hash
+Small key speed test - 12-byte keys - 20.97 cycles/hash
+Small key speed test - 13-byte keys - 22.00 cycles/hash
+Small key speed test - 14-byte keys - 23.64 cycles/hash
+Small key speed test - 15-byte keys - 24.80 cycles/hash
+Small key speed test - 16-byte keys - 16.00 cycles/hash
+Small key speed test - 17-byte keys - 17.95 cycles/hash
Small key speed test - 18-byte keys - 19.00 cycles/hash
-Small key speed test - 19-byte keys - 20.99 cycles/hash
+Small key speed test - 19-byte keys - 20.59 cycles/hash
Small key speed test - 20-byte keys - 22.00 cycles/hash
-Small key speed test - 21-byte keys - 23.20 cycles/hash
-Small key speed test - 22-byte keys - 25.00 cycles/hash
-Small key speed test - 23-byte keys - 26.25 cycles/hash
-Small key speed test - 24-byte keys - 18.00 cycles/hash
-Small key speed test - 25-byte keys - 19.71 cycles/hash
+Small key speed test - 21-byte keys - 23.00 cycles/hash
+Small key speed test - 22-byte keys - 24.99 cycles/hash
+Small key speed test - 23-byte keys - 26.00 cycles/hash
+Small key speed test - 24-byte keys - 17.99 cycles/hash
+Small key speed test - 25-byte keys - 19.00 cycles/hash
Small key speed test - 26-byte keys - 20.00 cycles/hash
-Small key speed test - 27-byte keys - 22.25 cycles/hash
-Small key speed test - 28-byte keys - 23.25 cycles/hash
-Small key speed test - 29-byte keys - 24.63 cycles/hash
+Small key speed test - 27-byte keys - 21.99 cycles/hash
+Small key speed test - 28-byte keys - 23.00 cycles/hash
+Small key speed test - 29-byte keys - 24.00 cycles/hash
Small key speed test - 30-byte keys - 26.00 cycles/hash
-Small key speed test - 31-byte keys - 27.42 cycles/hash
-Average 20.882 cycles/hash
+Small key speed test - 31-byte keys - 27.00 cycles/hash
+Small key speed test - 32-byte keys - 19.00 cycles/hash
+Average 20.716 cycles/hash
+Average, weighted by key length freq. 20.701 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 17.600 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 684.950 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 546.720 cycles/op (5.2 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 405.196 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 345.547 cycles/op (4.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 7.595642 seconds
+--- Testing fletcher4 "fletcher4 ZFS" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x147ddaca1850 - 0x147ddaca17e4). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 5.442 bytes/cycle - 15569.21 MiB/sec @ 3 ghz
+Alignment 6 - 5.461 bytes/cycle - 15623.40 MiB/sec @ 3 ghz
+Alignment 5 - 5.442 bytes/cycle - 15570.41 MiB/sec @ 3 ghz
+Alignment 4 - 5.471 bytes/cycle - 15652.71 MiB/sec @ 3 ghz
+Alignment 3 - 5.474 bytes/cycle - 15660.93 MiB/sec @ 3 ghz
+Alignment 2 - 5.473 bytes/cycle - 15657.68 MiB/sec @ 3 ghz
+Alignment 1 - 5.469 bytes/cycle - 15646.51 MiB/sec @ 3 ghz
+Alignment 0 - 5.400 bytes/cycle - 15448.55 MiB/sec @ 3 ghz
+Average - 5.454 bytes/cycle - 15603.68 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 14.72 cycles/hash
+Small key speed test - 2-byte keys - 16.23 cycles/hash
+Small key speed test - 3-byte keys - 18.00 cycles/hash
+Small key speed test - 4-byte keys - 19.00 cycles/hash
+Small key speed test - 5-byte keys - 22.42 cycles/hash
+Small key speed test - 6-byte keys - 27.00 cycles/hash
+Small key speed test - 7-byte keys - 29.00 cycles/hash
+Small key speed test - 8-byte keys - 18.00 cycles/hash
+Small key speed test - 9-byte keys - 20.00 cycles/hash
+Small key speed test - 10-byte keys - 22.00 cycles/hash
+Small key speed test - 11-byte keys - 23.25 cycles/hash
+Small key speed test - 12-byte keys - 20.89 cycles/hash
+Small key speed test - 13-byte keys - 21.81 cycles/hash
+Small key speed test - 14-byte keys - 23.00 cycles/hash
+Small key speed test - 15-byte keys - 24.00 cycles/hash
+Small key speed test - 16-byte keys - 16.00 cycles/hash
+Small key speed test - 17-byte keys - 17.00 cycles/hash
+Small key speed test - 18-byte keys - 18.63 cycles/hash
+Small key speed test - 19-byte keys - 20.00 cycles/hash
+Small key speed test - 20-byte keys - 21.21 cycles/hash
+Small key speed test - 21-byte keys - 23.00 cycles/hash
+Small key speed test - 22-byte keys - 24.00 cycles/hash
+Small key speed test - 23-byte keys - 25.95 cycles/hash
+Small key speed test - 24-byte keys - 17.27 cycles/hash
+Small key speed test - 25-byte keys - 18.52 cycles/hash
+Small key speed test - 26-byte keys - 20.00 cycles/hash
+Small key speed test - 27-byte keys - 21.15 cycles/hash
+Small key speed test - 28-byte keys - 22.91 cycles/hash
+Small key speed test - 29-byte keys - 24.00 cycles/hash
+Small key speed test - 30-byte keys - 25.00 cycles/hash
+Small key speed test - 31-byte keys - 26.73 cycles/hash
+Small key speed test - 32-byte keys - 18.97 cycles/hash
+Average 21.240 cycles/hash
+Average, weighted by key length freq. 21.170 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 19.414 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 741.106 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 580.677 cycles/op (3.8 stdv)
+Init std HashMapTest: 653.560 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 524.617 cycles/op (5.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 420.879 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 352.188 cycles/op (4.4 stdv) ....... PASS
+Init fast HashMapTest: 385.947 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 320.088 cycles/op (2.0 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 7.599733 seconds
+Verification value is 0x00000001 - Testing took 7.610912 seconds
--- Testing bernstein "Bernstein, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x14843bfa3b20 - 0x14843bfa3ab4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.355 bytes/cycle - 1015.85 MiB/sec @ 3 ghz
-Alignment 6 - 0.354 bytes/cycle - 1013.90 MiB/sec @ 3 ghz
-Alignment 5 - 0.354 bytes/cycle - 1014.18 MiB/sec @ 3 ghz
-Alignment 4 - 0.355 bytes/cycle - 1015.25 MiB/sec @ 3 ghz
-Alignment 3 - 0.354 bytes/cycle - 1013.99 MiB/sec @ 3 ghz
-Alignment 2 - 0.355 bytes/cycle - 1014.42 MiB/sec @ 3 ghz
-Alignment 1 - 0.354 bytes/cycle - 1013.91 MiB/sec @ 3 ghz
-Alignment 0 - 0.354 bytes/cycle - 1014.08 MiB/sec @ 3 ghz
-Average - 0.355 bytes/cycle - 1014.45 MiB/sec @ 3 ghz
+Alignment 7 - 0.362 bytes/cycle - 1035.03 MiB/sec @ 3 ghz
+Alignment 6 - 0.362 bytes/cycle - 1035.09 MiB/sec @ 3 ghz
+Alignment 5 - 0.362 bytes/cycle - 1035.08 MiB/sec @ 3 ghz
+Alignment 4 - 0.362 bytes/cycle - 1035.30 MiB/sec @ 3 ghz
+Alignment 3 - 0.362 bytes/cycle - 1035.29 MiB/sec @ 3 ghz
+Alignment 2 - 0.362 bytes/cycle - 1035.47 MiB/sec @ 3 ghz
+Alignment 1 - 0.359 bytes/cycle - 1028.09 MiB/sec @ 3 ghz
+Alignment 0 - 0.355 bytes/cycle - 1016.64 MiB/sec @ 3 ghz
+Average - 0.361 bytes/cycle - 1032.00 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 15.65 cycles/hash
+Small key speed test - 1-byte keys - 15.13 cycles/hash
Small key speed test - 2-byte keys - 18.00 cycles/hash
Small key speed test - 3-byte keys - 21.00 cycles/hash
Small key speed test - 4-byte keys - 24.00 cycles/hash
-Small key speed test - 5-byte keys - 27.00 cycles/hash
-Small key speed test - 6-byte keys - 30.00 cycles/hash
-Small key speed test - 7-byte keys - 32.99 cycles/hash
+Small key speed test - 5-byte keys - 26.98 cycles/hash
+Small key speed test - 6-byte keys - 29.65 cycles/hash
+Small key speed test - 7-byte keys - 32.44 cycles/hash
Small key speed test - 8-byte keys - 35.00 cycles/hash
-Small key speed test - 9-byte keys - 38.72 cycles/hash
+Small key speed test - 9-byte keys - 38.00 cycles/hash
Small key speed test - 10-byte keys - 41.00 cycles/hash
Small key speed test - 11-byte keys - 44.00 cycles/hash
-Small key speed test - 12-byte keys - 46.14 cycles/hash
+Small key speed test - 12-byte keys - 46.00 cycles/hash
Small key speed test - 13-byte keys - 49.00 cycles/hash
Small key speed test - 14-byte keys - 52.00 cycles/hash
Small key speed test - 15-byte keys - 55.00 cycles/hash
-Small key speed test - 16-byte keys - 57.99 cycles/hash
-Small key speed test - 17-byte keys - 60.85 cycles/hash
-Small key speed test - 18-byte keys - 63.66 cycles/hash
+Small key speed test - 16-byte keys - 57.83 cycles/hash
+Small key speed test - 17-byte keys - 60.00 cycles/hash
+Small key speed test - 18-byte keys - 63.00 cycles/hash
Small key speed test - 19-byte keys - 66.00 cycles/hash
Small key speed test - 20-byte keys - 69.00 cycles/hash
-Small key speed test - 21-byte keys - 72.24 cycles/hash
-Small key speed test - 22-byte keys - 74.89 cycles/hash
-Small key speed test - 23-byte keys - 77.78 cycles/hash
+Small key speed test - 21-byte keys - 72.00 cycles/hash
+Small key speed test - 22-byte keys - 74.43 cycles/hash
+Small key speed test - 23-byte keys - 77.19 cycles/hash
Small key speed test - 24-byte keys - 80.00 cycles/hash
Small key speed test - 25-byte keys - 83.00 cycles/hash
Small key speed test - 26-byte keys - 86.00 cycles/hash
-Small key speed test - 27-byte keys - 88.75 cycles/hash
-Small key speed test - 28-byte keys - 93.77 cycles/hash
-Small key speed test - 29-byte keys - 96.14 cycles/hash
-Small key speed test - 30-byte keys - 98.96 cycles/hash
-Small key speed test - 31-byte keys - 102.84 cycles/hash
-Average 58.108 cycles/hash
+Small key speed test - 27-byte keys - 88.26 cycles/hash
+Small key speed test - 28-byte keys - 91.60 cycles/hash
+Small key speed test - 29-byte keys - 94.53 cycles/hash
+Small key speed test - 30-byte keys - 97.00 cycles/hash
+Small key speed test - 31-byte keys - 100.00 cycles/hash
+Small key speed test - 32-byte keys - 102.19 cycles/hash
+Average 59.039 cycles/hash
+Average, weighted by key length freq. 58.881 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 47.667 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 453.505 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 361.217 cycles/op (6.8 stdv)
+Init std HashMapTest: 393.792 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 325.232 cycles/op (2.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 299.175 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 238.289 cycles/op (4.2 stdv) ....... PASS
+Init fast HashMapTest: 277.334 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 225.091 cycles/op (2.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 18.791531 seconds
+Verification value is 0x00000001 - Testing took 19.027933 seconds
--- Testing sdbm "sdbm as in perl5" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x14942e75cf44 - 0x14942e75ced8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.269 bytes/cycle - 769.67 MiB/sec @ 3 ghz
-Alignment 6 - 0.269 bytes/cycle - 770.26 MiB/sec @ 3 ghz
-Alignment 5 - 0.269 bytes/cycle - 770.21 MiB/sec @ 3 ghz
-Alignment 4 - 0.269 bytes/cycle - 770.48 MiB/sec @ 3 ghz
-Alignment 3 - 0.269 bytes/cycle - 770.14 MiB/sec @ 3 ghz
-Alignment 2 - 0.269 bytes/cycle - 770.20 MiB/sec @ 3 ghz
-Alignment 1 - 0.269 bytes/cycle - 770.43 MiB/sec @ 3 ghz
-Alignment 0 - 0.269 bytes/cycle - 770.75 MiB/sec @ 3 ghz
-Average - 0.269 bytes/cycle - 770.27 MiB/sec @ 3 ghz
+Alignment 7 - 0.269 bytes/cycle - 768.52 MiB/sec @ 3 ghz
+Alignment 6 - 0.270 bytes/cycle - 772.37 MiB/sec @ 3 ghz
+Alignment 5 - 0.270 bytes/cycle - 772.46 MiB/sec @ 3 ghz
+Alignment 4 - 0.270 bytes/cycle - 772.41 MiB/sec @ 3 ghz
+Alignment 3 - 0.270 bytes/cycle - 772.50 MiB/sec @ 3 ghz
+Alignment 2 - 0.270 bytes/cycle - 772.43 MiB/sec @ 3 ghz
+Alignment 1 - 0.270 bytes/cycle - 772.80 MiB/sec @ 3 ghz
+Alignment 0 - 0.270 bytes/cycle - 772.57 MiB/sec @ 3 ghz
+Average - 0.270 bytes/cycle - 772.01 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 14.00 cycles/hash
Small key speed test - 2-byte keys - 18.00 cycles/hash
-Small key speed test - 3-byte keys - 21.73 cycles/hash
+Small key speed test - 3-byte keys - 21.70 cycles/hash
Small key speed test - 4-byte keys - 25.00 cycles/hash
-Small key speed test - 5-byte keys - 28.95 cycles/hash
-Small key speed test - 6-byte keys - 32.85 cycles/hash
-Small key speed test - 7-byte keys - 36.45 cycles/hash
-Small key speed test - 8-byte keys - 40.13 cycles/hash
-Small key speed test - 9-byte keys - 44.00 cycles/hash
+Small key speed test - 5-byte keys - 28.88 cycles/hash
+Small key speed test - 6-byte keys - 32.00 cycles/hash
+Small key speed test - 7-byte keys - 36.00 cycles/hash
+Small key speed test - 8-byte keys - 40.00 cycles/hash
+Small key speed test - 9-byte keys - 43.98 cycles/hash
Small key speed test - 10-byte keys - 48.00 cycles/hash
-Small key speed test - 11-byte keys - 50.99 cycles/hash
-Small key speed test - 12-byte keys - 54.58 cycles/hash
+Small key speed test - 11-byte keys - 50.86 cycles/hash
+Small key speed test - 12-byte keys - 54.33 cycles/hash
Small key speed test - 13-byte keys - 59.00 cycles/hash
-Small key speed test - 14-byte keys - 62.72 cycles/hash
+Small key speed test - 14-byte keys - 62.56 cycles/hash
Small key speed test - 15-byte keys - 66.00 cycles/hash
-Small key speed test - 16-byte keys - 70.00 cycles/hash
-Small key speed test - 17-byte keys - 74.00 cycles/hash
-Small key speed test - 18-byte keys - 77.98 cycles/hash
+Small key speed test - 16-byte keys - 69.73 cycles/hash
+Small key speed test - 17-byte keys - 73.64 cycles/hash
+Small key speed test - 18-byte keys - 77.51 cycles/hash
Small key speed test - 19-byte keys - 81.00 cycles/hash
-Small key speed test - 20-byte keys - 84.99 cycles/hash
-Small key speed test - 21-byte keys - 88.96 cycles/hash
-Small key speed test - 22-byte keys - 92.95 cycles/hash
+Small key speed test - 20-byte keys - 84.80 cycles/hash
+Small key speed test - 21-byte keys - 88.43 cycles/hash
+Small key speed test - 22-byte keys - 92.48 cycles/hash
Small key speed test - 23-byte keys - 96.00 cycles/hash
-Small key speed test - 24-byte keys - 99.82 cycles/hash
-Small key speed test - 25-byte keys - 103.90 cycles/hash
-Small key speed test - 26-byte keys - 107.72 cycles/hash
-Small key speed test - 27-byte keys - 110.96 cycles/hash
-Small key speed test - 28-byte keys - 114.95 cycles/hash
-Small key speed test - 29-byte keys - 118.58 cycles/hash
-Small key speed test - 30-byte keys - 121.85 cycles/hash
-Small key speed test - 31-byte keys - 125.86 cycles/hash
-Average 70.062 cycles/hash
+Small key speed test - 24-byte keys - 99.00 cycles/hash
+Small key speed test - 25-byte keys - 103.00 cycles/hash
+Small key speed test - 26-byte keys - 107.26 cycles/hash
+Small key speed test - 27-byte keys - 110.74 cycles/hash
+Small key speed test - 28-byte keys - 114.86 cycles/hash
+Small key speed test - 29-byte keys - 118.41 cycles/hash
+Small key speed test - 30-byte keys - 121.90 cycles/hash
+Small key speed test - 31-byte keys - 125.40 cycles/hash
+Small key speed test - 32-byte keys - 129.00 cycles/hash
+Average 71.671 cycles/hash
+Average, weighted by key length freq. 71.493 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 56.463 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 443.412 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 352.960 cycles/op (7.0 stdv)
+Init std HashMapTest: 401.467 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 320.060 cycles/op (2.1 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 300.971 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 234.107 cycles/op (6.3 stdv) ....... PASS
+Init fast HashMapTest: 278.809 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 220.090 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 22.568912 seconds
+Verification value is 0x00000001 - Testing took 23.104592 seconds
--- Testing x17 "x17" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x14a78b86b444 - 0x14a78b86b3d8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.266 bytes/cycle - 761.74 MiB/sec @ 3 ghz
-Alignment 6 - 0.266 bytes/cycle - 762.46 MiB/sec @ 3 ghz
-Alignment 5 - 0.266 bytes/cycle - 761.59 MiB/sec @ 3 ghz
-Alignment 4 - 0.266 bytes/cycle - 761.22 MiB/sec @ 3 ghz
-Alignment 3 - 0.266 bytes/cycle - 761.80 MiB/sec @ 3 ghz
-Alignment 2 - 0.266 bytes/cycle - 761.13 MiB/sec @ 3 ghz
-Alignment 1 - 0.266 bytes/cycle - 761.09 MiB/sec @ 3 ghz
-Alignment 0 - 0.266 bytes/cycle - 761.48 MiB/sec @ 3 ghz
-Average - 0.266 bytes/cycle - 761.56 MiB/sec @ 3 ghz
+Alignment 7 - 0.267 bytes/cycle - 765.01 MiB/sec @ 3 ghz
+Alignment 6 - 0.267 bytes/cycle - 765.01 MiB/sec @ 3 ghz
+Alignment 5 - 0.267 bytes/cycle - 765.01 MiB/sec @ 3 ghz
+Alignment 4 - 0.267 bytes/cycle - 765.02 MiB/sec @ 3 ghz
+Alignment 3 - 0.267 bytes/cycle - 765.01 MiB/sec @ 3 ghz
+Alignment 2 - 0.267 bytes/cycle - 765.00 MiB/sec @ 3 ghz
+Alignment 1 - 0.267 bytes/cycle - 765.02 MiB/sec @ 3 ghz
+Alignment 0 - 0.267 bytes/cycle - 765.02 MiB/sec @ 3 ghz
+Average - 0.267 bytes/cycle - 765.01 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 18.00 cycles/hash
+Small key speed test - 1-byte keys - 17.93 cycles/hash
Small key speed test - 2-byte keys - 21.00 cycles/hash
Small key speed test - 3-byte keys - 25.00 cycles/hash
-Small key speed test - 4-byte keys - 28.76 cycles/hash
-Small key speed test - 5-byte keys - 33.00 cycles/hash
-Small key speed test - 6-byte keys - 36.32 cycles/hash
+Small key speed test - 4-byte keys - 28.41 cycles/hash
+Small key speed test - 5-byte keys - 32.90 cycles/hash
+Small key speed test - 6-byte keys - 36.00 cycles/hash
Small key speed test - 7-byte keys - 40.00 cycles/hash
Small key speed test - 8-byte keys - 44.00 cycles/hash
-Small key speed test - 9-byte keys - 47.82 cycles/hash
-Small key speed test - 10-byte keys - 51.83 cycles/hash
+Small key speed test - 9-byte keys - 47.81 cycles/hash
+Small key speed test - 10-byte keys - 51.22 cycles/hash
Small key speed test - 11-byte keys - 55.00 cycles/hash
-Small key speed test - 12-byte keys - 59.00 cycles/hash
+Small key speed test - 12-byte keys - 59.14 cycles/hash
Small key speed test - 13-byte keys - 63.00 cycles/hash
Small key speed test - 14-byte keys - 66.00 cycles/hash
Small key speed test - 15-byte keys - 70.00 cycles/hash
-Small key speed test - 16-byte keys - 73.77 cycles/hash
-Small key speed test - 17-byte keys - 77.96 cycles/hash
-Small key speed test - 18-byte keys - 81.67 cycles/hash
+Small key speed test - 16-byte keys - 73.52 cycles/hash
+Small key speed test - 17-byte keys - 77.43 cycles/hash
+Small key speed test - 18-byte keys - 81.30 cycles/hash
Small key speed test - 19-byte keys - 85.00 cycles/hash
-Small key speed test - 20-byte keys - 89.00 cycles/hash
-Small key speed test - 21-byte keys - 92.65 cycles/hash
-Small key speed test - 22-byte keys - 96.77 cycles/hash
+Small key speed test - 20-byte keys - 88.71 cycles/hash
+Small key speed test - 21-byte keys - 92.20 cycles/hash
+Small key speed test - 22-byte keys - 96.26 cycles/hash
Small key speed test - 23-byte keys - 100.00 cycles/hash
-Small key speed test - 24-byte keys - 103.94 cycles/hash
-Small key speed test - 25-byte keys - 107.79 cycles/hash
-Small key speed test - 26-byte keys - 111.70 cycles/hash
-Small key speed test - 27-byte keys - 115.61 cycles/hash
-Small key speed test - 28-byte keys - 119.76 cycles/hash
-Small key speed test - 29-byte keys - 123.48 cycles/hash
-Small key speed test - 30-byte keys - 126.71 cycles/hash
-Small key speed test - 31-byte keys - 130.49 cycles/hash
-Average 74.033 cycles/hash
+Small key speed test - 24-byte keys - 103.77 cycles/hash
+Small key speed test - 25-byte keys - 107.23 cycles/hash
+Small key speed test - 26-byte keys - 111.12 cycles/hash
+Small key speed test - 27-byte keys - 115.00 cycles/hash
+Small key speed test - 28-byte keys - 118.90 cycles/hash
+Small key speed test - 29-byte keys - 122.84 cycles/hash
+Small key speed test - 30-byte keys - 126.00 cycles/hash
+Small key speed test - 31-byte keys - 129.95 cycles/hash
+Small key speed test - 32-byte keys - 133.00 cycles/hash
+Average 75.614 cycles/hash
+Average, weighted by key length freq. 75.440 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 60.317 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 443.377 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 366.152 cycles/op (6.9 stdv)
+Init std HashMapTest: 431.556 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 330.488 cycles/op (3.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 309.831 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 240.126 cycles/op (5.7 stdv) ....... PASS
+Init fast HashMapTest: 282.009 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 225.813 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 23.401711 seconds
+Verification value is 0x00000001 - Testing took 23.888006 seconds
--- Testing libiberty "libiberty htab_hash_string" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x14bb90999c90 - 0x14bb90999c48). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.213 bytes/cycle - 608.81 MiB/sec @ 3 ghz
-Alignment 6 - 0.213 bytes/cycle - 610.39 MiB/sec @ 3 ghz
-Alignment 5 - 0.213 bytes/cycle - 610.29 MiB/sec @ 3 ghz
-Alignment 4 - 0.213 bytes/cycle - 610.52 MiB/sec @ 3 ghz
-Alignment 3 - 0.213 bytes/cycle - 609.29 MiB/sec @ 3 ghz
-Alignment 2 - 0.213 bytes/cycle - 610.59 MiB/sec @ 3 ghz
-Alignment 1 - 0.213 bytes/cycle - 610.47 MiB/sec @ 3 ghz
-Alignment 0 - 0.213 bytes/cycle - 610.37 MiB/sec @ 3 ghz
-Average - 0.213 bytes/cycle - 610.09 MiB/sec @ 3 ghz
+Alignment 7 - 0.216 bytes/cycle - 618.36 MiB/sec @ 3 ghz
+Alignment 6 - 0.216 bytes/cycle - 618.06 MiB/sec @ 3 ghz
+Alignment 5 - 0.216 bytes/cycle - 617.38 MiB/sec @ 3 ghz
+Alignment 4 - 0.216 bytes/cycle - 618.24 MiB/sec @ 3 ghz
+Alignment 3 - 0.216 bytes/cycle - 618.52 MiB/sec @ 3 ghz
+Alignment 2 - 0.216 bytes/cycle - 618.24 MiB/sec @ 3 ghz
+Alignment 1 - 0.216 bytes/cycle - 618.48 MiB/sec @ 3 ghz
+Alignment 0 - 0.217 bytes/cycle - 619.87 MiB/sec @ 3 ghz
+Average - 0.216 bytes/cycle - 618.39 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 15.00 cycles/hash
-Small key speed test - 2-byte keys - 20.00 cycles/hash
-Small key speed test - 3-byte keys - 25.00 cycles/hash
-Small key speed test - 4-byte keys - 29.24 cycles/hash
-Small key speed test - 5-byte keys - 34.00 cycles/hash
-Small key speed test - 6-byte keys - 38.91 cycles/hash
-Small key speed test - 7-byte keys - 43.00 cycles/hash
-Small key speed test - 8-byte keys - 48.00 cycles/hash
-Small key speed test - 9-byte keys - 52.49 cycles/hash
-Small key speed test - 10-byte keys - 57.00 cycles/hash
-Small key speed test - 11-byte keys - 62.00 cycles/hash
-Small key speed test - 12-byte keys - 67.00 cycles/hash
-Small key speed test - 13-byte keys - 71.00 cycles/hash
-Small key speed test - 14-byte keys - 76.00 cycles/hash
-Small key speed test - 15-byte keys - 81.00 cycles/hash
-Small key speed test - 16-byte keys - 85.00 cycles/hash
-Small key speed test - 17-byte keys - 89.91 cycles/hash
-Small key speed test - 18-byte keys - 94.90 cycles/hash
-Small key speed test - 19-byte keys - 99.00 cycles/hash
-Small key speed test - 20-byte keys - 104.43 cycles/hash
-Small key speed test - 21-byte keys - 109.00 cycles/hash
-Small key speed test - 22-byte keys - 113.26 cycles/hash
-Small key speed test - 23-byte keys - 117.99 cycles/hash
-Small key speed test - 24-byte keys - 122.96 cycles/hash
-Small key speed test - 25-byte keys - 127.00 cycles/hash
-Small key speed test - 26-byte keys - 132.41 cycles/hash
-Small key speed test - 27-byte keys - 136.55 cycles/hash
-Small key speed test - 28-byte keys - 141.59 cycles/hash
-Small key speed test - 29-byte keys - 146.11 cycles/hash
-Small key speed test - 30-byte keys - 151.00 cycles/hash
-Small key speed test - 31-byte keys - 155.00 cycles/hash
-Average 85.347 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 443.884 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 360.271 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 307.647 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 242.933 cycles/op (4.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 27.211422 seconds
+Small key speed test - 2-byte keys - 19.80 cycles/hash
+Small key speed test - 3-byte keys - 24.00 cycles/hash
+Small key speed test - 4-byte keys - 29.00 cycles/hash
+Small key speed test - 5-byte keys - 33.77 cycles/hash
+Small key speed test - 6-byte keys - 38.00 cycles/hash
+Small key speed test - 7-byte keys - 42.61 cycles/hash
+Small key speed test - 8-byte keys - 47.00 cycles/hash
+Small key speed test - 9-byte keys - 52.00 cycles/hash
+Small key speed test - 10-byte keys - 56.00 cycles/hash
+Small key speed test - 11-byte keys - 61.00 cycles/hash
+Small key speed test - 12-byte keys - 66.00 cycles/hash
+Small key speed test - 13-byte keys - 70.00 cycles/hash
+Small key speed test - 14-byte keys - 75.00 cycles/hash
+Small key speed test - 15-byte keys - 79.75 cycles/hash
+Small key speed test - 16-byte keys - 84.90 cycles/hash
+Small key speed test - 17-byte keys - 89.00 cycles/hash
+Small key speed test - 18-byte keys - 93.00 cycles/hash
+Small key speed test - 19-byte keys - 98.30 cycles/hash
+Small key speed test - 20-byte keys - 102.76 cycles/hash
+Small key speed test - 21-byte keys - 107.32 cycles/hash
+Small key speed test - 22-byte keys - 112.33 cycles/hash
+Small key speed test - 23-byte keys - 116.73 cycles/hash
+Small key speed test - 24-byte keys - 121.00 cycles/hash
+Small key speed test - 25-byte keys - 126.13 cycles/hash
+Small key speed test - 26-byte keys - 130.32 cycles/hash
+Small key speed test - 27-byte keys - 134.86 cycles/hash
+Small key speed test - 28-byte keys - 139.69 cycles/hash
+Small key speed test - 29-byte keys - 144.60 cycles/hash
+Small key speed test - 30-byte keys - 149.32 cycles/hash
+Small key speed test - 31-byte keys - 153.30 cycles/hash
+Small key speed test - 32-byte keys - 158.00 cycles/hash
+Average 86.578 cycles/hash
+Average, weighted by key length freq. 86.310 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 67.907 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 400.342 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 326.240 cycles/op (3.7 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 286.039 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 220.948 cycles/op (2.2 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 27.568163 seconds
--- Testing gcc "gcc libcpp" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x14d2ab3cdbf4 - 0x14d2ab3cdbac). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.215 bytes/cycle - 616.38 MiB/sec @ 3 ghz
-Alignment 6 - 0.215 bytes/cycle - 616.19 MiB/sec @ 3 ghz
-Alignment 5 - 0.215 bytes/cycle - 616.15 MiB/sec @ 3 ghz
-Alignment 4 - 0.216 bytes/cycle - 617.12 MiB/sec @ 3 ghz
-Alignment 3 - 0.215 bytes/cycle - 616.46 MiB/sec @ 3 ghz
-Alignment 2 - 0.216 bytes/cycle - 616.57 MiB/sec @ 3 ghz
-Alignment 1 - 0.215 bytes/cycle - 616.11 MiB/sec @ 3 ghz
-Alignment 0 - 0.216 bytes/cycle - 616.93 MiB/sec @ 3 ghz
-Average - 0.215 bytes/cycle - 616.49 MiB/sec @ 3 ghz
+Alignment 7 - 0.214 bytes/cycle - 611.94 MiB/sec @ 3 ghz
+Alignment 6 - 0.214 bytes/cycle - 612.00 MiB/sec @ 3 ghz
+Alignment 5 - 0.214 bytes/cycle - 612.21 MiB/sec @ 3 ghz
+Alignment 4 - 0.214 bytes/cycle - 612.43 MiB/sec @ 3 ghz
+Alignment 3 - 0.214 bytes/cycle - 611.96 MiB/sec @ 3 ghz
+Alignment 2 - 0.214 bytes/cycle - 611.53 MiB/sec @ 3 ghz
+Alignment 1 - 0.214 bytes/cycle - 612.43 MiB/sec @ 3 ghz
+Alignment 0 - 0.214 bytes/cycle - 612.30 MiB/sec @ 3 ghz
+Average - 0.214 bytes/cycle - 612.10 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 16.00 cycles/hash
-Small key speed test - 2-byte keys - 20.64 cycles/hash
+Small key speed test - 2-byte keys - 20.89 cycles/hash
Small key speed test - 3-byte keys - 25.00 cycles/hash
-Small key speed test - 4-byte keys - 29.95 cycles/hash
-Small key speed test - 5-byte keys - 34.98 cycles/hash
+Small key speed test - 4-byte keys - 30.00 cycles/hash
+Small key speed test - 5-byte keys - 35.00 cycles/hash
Small key speed test - 6-byte keys - 39.00 cycles/hash
Small key speed test - 7-byte keys - 44.00 cycles/hash
-Small key speed test - 8-byte keys - 48.25 cycles/hash
-Small key speed test - 9-byte keys - 53.00 cycles/hash
-Small key speed test - 10-byte keys - 57.98 cycles/hash
-Small key speed test - 11-byte keys - 62.95 cycles/hash
-Small key speed test - 12-byte keys - 67.50 cycles/hash
-Small key speed test - 13-byte keys - 71.88 cycles/hash
-Small key speed test - 14-byte keys - 76.00 cycles/hash
-Small key speed test - 15-byte keys - 81.00 cycles/hash
-Small key speed test - 16-byte keys - 85.92 cycles/hash
-Small key speed test - 17-byte keys - 90.00 cycles/hash
-Small key speed test - 18-byte keys - 94.95 cycles/hash
-Small key speed test - 19-byte keys - 99.93 cycles/hash
-Small key speed test - 20-byte keys - 104.00 cycles/hash
-Small key speed test - 21-byte keys - 108.92 cycles/hash
-Small key speed test - 22-byte keys - 113.74 cycles/hash
-Small key speed test - 23-byte keys - 117.96 cycles/hash
-Small key speed test - 24-byte keys - 122.78 cycles/hash
-Small key speed test - 25-byte keys - 127.32 cycles/hash
-Small key speed test - 26-byte keys - 131.87 cycles/hash
-Small key speed test - 27-byte keys - 136.09 cycles/hash
-Small key speed test - 28-byte keys - 141.18 cycles/hash
-Small key speed test - 29-byte keys - 145.59 cycles/hash
-Small key speed test - 30-byte keys - 150.72 cycles/hash
-Small key speed test - 31-byte keys - 155.14 cycles/hash
-Average 85.620 cycles/hash
+Small key speed test - 8-byte keys - 48.92 cycles/hash
+Small key speed test - 9-byte keys - 53.57 cycles/hash
+Small key speed test - 10-byte keys - 58.00 cycles/hash
+Small key speed test - 11-byte keys - 63.00 cycles/hash
+Small key speed test - 12-byte keys - 67.89 cycles/hash
+Small key speed test - 13-byte keys - 72.00 cycles/hash
+Small key speed test - 14-byte keys - 76.91 cycles/hash
+Small key speed test - 15-byte keys - 81.79 cycles/hash
+Small key speed test - 16-byte keys - 86.00 cycles/hash
+Small key speed test - 17-byte keys - 90.72 cycles/hash
+Small key speed test - 18-byte keys - 95.69 cycles/hash
+Small key speed test - 19-byte keys - 100.00 cycles/hash
+Small key speed test - 20-byte keys - 104.69 cycles/hash
+Small key speed test - 21-byte keys - 109.71 cycles/hash
+Small key speed test - 22-byte keys - 114.10 cycles/hash
+Small key speed test - 23-byte keys - 118.65 cycles/hash
+Small key speed test - 24-byte keys - 123.65 cycles/hash
+Small key speed test - 25-byte keys - 127.81 cycles/hash
+Small key speed test - 26-byte keys - 132.72 cycles/hash
+Small key speed test - 27-byte keys - 137.47 cycles/hash
+Small key speed test - 28-byte keys - 142.43 cycles/hash
+Small key speed test - 29-byte keys - 146.49 cycles/hash
+Small key speed test - 30-byte keys - 151.61 cycles/hash
+Small key speed test - 31-byte keys - 155.68 cycles/hash
+Small key speed test - 32-byte keys - 160.58 cycles/hash
+Average 88.437 cycles/hash
+Average, weighted by key length freq. 88.256 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 69.391 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 443.999 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 359.722 cycles/op (6.2 stdv)
+Init std HashMapTest: 422.076 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 330.087 cycles/op (3.8 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 321.042 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 242.068 cycles/op (4.8 stdv) ....... PASS
+Init fast HashMapTest: 290.163 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 224.623 cycles/op (2.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 27.089274 seconds
+Verification value is 0x00000001 - Testing took 28.015947 seconds
--- Testing JenkinsOOAT "Bob Jenkins' OOAT as in perl 5.18" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x14ea2602a59c - 0x14ea2602a530). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.217 bytes/cycle - 619.89 MiB/sec @ 3 ghz
-Alignment 6 - 0.217 bytes/cycle - 620.19 MiB/sec @ 3 ghz
-Alignment 5 - 0.217 bytes/cycle - 619.53 MiB/sec @ 3 ghz
-Alignment 4 - 0.217 bytes/cycle - 619.93 MiB/sec @ 3 ghz
-Alignment 3 - 0.217 bytes/cycle - 619.70 MiB/sec @ 3 ghz
-Alignment 2 - 0.217 bytes/cycle - 619.87 MiB/sec @ 3 ghz
-Alignment 1 - 0.216 bytes/cycle - 619.37 MiB/sec @ 3 ghz
-Alignment 0 - 0.217 bytes/cycle - 619.76 MiB/sec @ 3 ghz
-Average - 0.217 bytes/cycle - 619.78 MiB/sec @ 3 ghz
+Alignment 7 - 0.215 bytes/cycle - 615.59 MiB/sec @ 3 ghz
+Alignment 6 - 0.215 bytes/cycle - 615.60 MiB/sec @ 3 ghz
+Alignment 5 - 0.215 bytes/cycle - 615.62 MiB/sec @ 3 ghz
+Alignment 4 - 0.215 bytes/cycle - 615.56 MiB/sec @ 3 ghz
+Alignment 3 - 0.215 bytes/cycle - 615.59 MiB/sec @ 3 ghz
+Alignment 2 - 0.215 bytes/cycle - 615.65 MiB/sec @ 3 ghz
+Alignment 1 - 0.215 bytes/cycle - 615.59 MiB/sec @ 3 ghz
+Alignment 0 - 0.215 bytes/cycle - 615.58 MiB/sec @ 3 ghz
+Average - 0.215 bytes/cycle - 615.60 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 39.00 cycles/hash
-Small key speed test - 2-byte keys - 43.99 cycles/hash
-Small key speed test - 3-byte keys - 48.00 cycles/hash
-Small key speed test - 4-byte keys - 53.23 cycles/hash
-Small key speed test - 5-byte keys - 57.97 cycles/hash
-Small key speed test - 6-byte keys - 62.00 cycles/hash
-Small key speed test - 7-byte keys - 67.12 cycles/hash
-Small key speed test - 8-byte keys - 71.94 cycles/hash
-Small key speed test - 9-byte keys - 76.22 cycles/hash
+Small key speed test - 2-byte keys - 44.00 cycles/hash
+Small key speed test - 3-byte keys - 48.87 cycles/hash
+Small key speed test - 4-byte keys - 53.43 cycles/hash
+Small key speed test - 5-byte keys - 57.99 cycles/hash
+Small key speed test - 6-byte keys - 62.70 cycles/hash
+Small key speed test - 7-byte keys - 67.49 cycles/hash
+Small key speed test - 8-byte keys - 72.00 cycles/hash
+Small key speed test - 9-byte keys - 76.64 cycles/hash
Small key speed test - 10-byte keys - 81.00 cycles/hash
-Small key speed test - 11-byte keys - 85.42 cycles/hash
-Small key speed test - 12-byte keys - 89.99 cycles/hash
+Small key speed test - 11-byte keys - 85.70 cycles/hash
+Small key speed test - 12-byte keys - 90.57 cycles/hash
Small key speed test - 13-byte keys - 95.00 cycles/hash
-Small key speed test - 14-byte keys - 99.20 cycles/hash
-Small key speed test - 15-byte keys - 104.12 cycles/hash
-Small key speed test - 16-byte keys - 109.00 cycles/hash
-Small key speed test - 17-byte keys - 113.10 cycles/hash
-Small key speed test - 18-byte keys - 117.77 cycles/hash
-Small key speed test - 19-byte keys - 122.14 cycles/hash
-Small key speed test - 20-byte keys - 127.28 cycles/hash
-Small key speed test - 21-byte keys - 132.02 cycles/hash
-Small key speed test - 22-byte keys - 135.98 cycles/hash
-Small key speed test - 23-byte keys - 141.41 cycles/hash
-Small key speed test - 24-byte keys - 145.69 cycles/hash
-Small key speed test - 25-byte keys - 150.14 cycles/hash
-Small key speed test - 26-byte keys - 155.16 cycles/hash
-Small key speed test - 27-byte keys - 159.00 cycles/hash
-Small key speed test - 28-byte keys - 164.09 cycles/hash
-Small key speed test - 29-byte keys - 168.73 cycles/hash
-Small key speed test - 30-byte keys - 173.15 cycles/hash
-Small key speed test - 31-byte keys - 178.08 cycles/hash
-Average 108.611 cycles/hash
+Small key speed test - 14-byte keys - 99.61 cycles/hash
+Small key speed test - 15-byte keys - 104.00 cycles/hash
+Small key speed test - 16-byte keys - 108.92 cycles/hash
+Small key speed test - 17-byte keys - 113.57 cycles/hash
+Small key speed test - 18-byte keys - 117.91 cycles/hash
+Small key speed test - 19-byte keys - 122.57 cycles/hash
+Small key speed test - 20-byte keys - 128.12 cycles/hash
+Small key speed test - 21-byte keys - 132.01 cycles/hash
+Small key speed test - 22-byte keys - 136.61 cycles/hash
+Small key speed test - 23-byte keys - 141.61 cycles/hash
+Small key speed test - 24-byte keys - 145.63 cycles/hash
+Small key speed test - 25-byte keys - 150.63 cycles/hash
+Small key speed test - 26-byte keys - 155.59 cycles/hash
+Small key speed test - 27-byte keys - 159.60 cycles/hash
+Small key speed test - 28-byte keys - 164.45 cycles/hash
+Small key speed test - 29-byte keys - 168.99 cycles/hash
+Small key speed test - 30-byte keys - 173.59 cycles/hash
+Small key speed test - 31-byte keys - 178.60 cycles/hash
+Small key speed test - 32-byte keys - 182.94 cycles/hash
+Average 111.229 cycles/hash
+Average, weighted by key length freq. 110.967 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 92.343 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 472.925 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 401.880 cycles/op (9.0 stdv)
+Init std HashMapTest: 444.827 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 355.753 cycles/op (3.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 347.902 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 268.469 cycles/op (5.1 stdv) ....... PASS
+Init fast HashMapTest: 311.991 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 251.082 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 31.162624 seconds
+Verification value is 0x00000001 - Testing took 32.101922 seconds
--- Testing JenkinsOOAT_perl "Bob Jenkins' OOAT as in old perl5" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x15050d489b1c - 0x15050d489ab0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.215 bytes/cycle - 615.92 MiB/sec @ 3 ghz
-Alignment 6 - 0.215 bytes/cycle - 616.17 MiB/sec @ 3 ghz
-Alignment 5 - 0.215 bytes/cycle - 615.91 MiB/sec @ 3 ghz
-Alignment 4 - 0.215 bytes/cycle - 615.89 MiB/sec @ 3 ghz
-Alignment 3 - 0.215 bytes/cycle - 615.92 MiB/sec @ 3 ghz
-Alignment 2 - 0.215 bytes/cycle - 615.97 MiB/sec @ 3 ghz
-Alignment 1 - 0.215 bytes/cycle - 615.92 MiB/sec @ 3 ghz
-Alignment 0 - 0.215 bytes/cycle - 615.93 MiB/sec @ 3 ghz
-Average - 0.215 bytes/cycle - 615.95 MiB/sec @ 3 ghz
+Alignment 7 - 0.221 bytes/cycle - 631.79 MiB/sec @ 3 ghz
+Alignment 6 - 0.221 bytes/cycle - 631.79 MiB/sec @ 3 ghz
+Alignment 5 - 0.221 bytes/cycle - 631.78 MiB/sec @ 3 ghz
+Alignment 4 - 0.221 bytes/cycle - 631.79 MiB/sec @ 3 ghz
+Alignment 3 - 0.221 bytes/cycle - 631.78 MiB/sec @ 3 ghz
+Alignment 2 - 0.221 bytes/cycle - 631.78 MiB/sec @ 3 ghz
+Alignment 1 - 0.221 bytes/cycle - 631.79 MiB/sec @ 3 ghz
+Alignment 0 - 0.221 bytes/cycle - 631.78 MiB/sec @ 3 ghz
+Average - 0.221 bytes/cycle - 631.79 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 23.00 cycles/hash
-Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 32.72 cycles/hash
-Small key speed test - 4-byte keys - 37.00 cycles/hash
-Small key speed test - 5-byte keys - 41.99 cycles/hash
-Small key speed test - 6-byte keys - 46.63 cycles/hash
-Small key speed test - 7-byte keys - 51.31 cycles/hash
-Small key speed test - 8-byte keys - 56.00 cycles/hash
-Small key speed test - 9-byte keys - 60.49 cycles/hash
-Small key speed test - 10-byte keys - 65.00 cycles/hash
-Small key speed test - 11-byte keys - 69.93 cycles/hash
-Small key speed test - 12-byte keys - 74.00 cycles/hash
-Small key speed test - 13-byte keys - 79.58 cycles/hash
-Small key speed test - 14-byte keys - 83.92 cycles/hash
-Small key speed test - 15-byte keys - 88.00 cycles/hash
-Small key speed test - 16-byte keys - 93.00 cycles/hash
-Small key speed test - 17-byte keys - 97.95 cycles/hash
-Small key speed test - 18-byte keys - 102.00 cycles/hash
-Small key speed test - 19-byte keys - 106.95 cycles/hash
-Small key speed test - 20-byte keys - 111.51 cycles/hash
-Small key speed test - 21-byte keys - 115.98 cycles/hash
-Small key speed test - 22-byte keys - 120.81 cycles/hash
-Small key speed test - 23-byte keys - 125.78 cycles/hash
-Small key speed test - 24-byte keys - 129.91 cycles/hash
-Small key speed test - 25-byte keys - 135.04 cycles/hash
-Small key speed test - 26-byte keys - 139.19 cycles/hash
-Small key speed test - 27-byte keys - 144.14 cycles/hash
-Small key speed test - 28-byte keys - 149.10 cycles/hash
-Small key speed test - 29-byte keys - 153.99 cycles/hash
-Small key speed test - 30-byte keys - 157.95 cycles/hash
-Small key speed test - 31-byte keys - 162.98 cycles/hash
-Average 93.027 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 462.129 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.991 cycles/op (4.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 312.260 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 257.381 cycles/op (4.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 28.460104 seconds
+Small key speed test - 2-byte keys - 28.74 cycles/hash
+Small key speed test - 3-byte keys - 32.88 cycles/hash
+Small key speed test - 4-byte keys - 37.12 cycles/hash
+Small key speed test - 5-byte keys - 41.58 cycles/hash
+Small key speed test - 6-byte keys - 45.82 cycles/hash
+Small key speed test - 7-byte keys - 50.24 cycles/hash
+Small key speed test - 8-byte keys - 54.48 cycles/hash
+Small key speed test - 9-byte keys - 59.00 cycles/hash
+Small key speed test - 10-byte keys - 63.21 cycles/hash
+Small key speed test - 11-byte keys - 68.00 cycles/hash
+Small key speed test - 12-byte keys - 72.56 cycles/hash
+Small key speed test - 13-byte keys - 77.12 cycles/hash
+Small key speed test - 14-byte keys - 82.00 cycles/hash
+Small key speed test - 15-byte keys - 86.30 cycles/hash
+Small key speed test - 16-byte keys - 91.00 cycles/hash
+Small key speed test - 17-byte keys - 95.13 cycles/hash
+Small key speed test - 18-byte keys - 100.00 cycles/hash
+Small key speed test - 19-byte keys - 104.12 cycles/hash
+Small key speed test - 20-byte keys - 109.00 cycles/hash
+Small key speed test - 21-byte keys - 113.13 cycles/hash
+Small key speed test - 22-byte keys - 118.00 cycles/hash
+Small key speed test - 23-byte keys - 122.11 cycles/hash
+Small key speed test - 24-byte keys - 127.00 cycles/hash
+Small key speed test - 25-byte keys - 131.15 cycles/hash
+Small key speed test - 26-byte keys - 136.00 cycles/hash
+Small key speed test - 27-byte keys - 140.32 cycles/hash
+Small key speed test - 28-byte keys - 145.26 cycles/hash
+Small key speed test - 29-byte keys - 150.21 cycles/hash
+Small key speed test - 30-byte keys - 154.00 cycles/hash
+Small key speed test - 31-byte keys - 158.63 cycles/hash
+Small key speed test - 32-byte keys - 163.00 cycles/hash
+Average 93.128 cycles/hash
+Average, weighted by key length freq. 92.754 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 74.598 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 431.841 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 342.101 cycles/op (1.4 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 301.068 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 232.435 cycles/op (1.0 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 28.535818 seconds
--- Testing pearsonhash64 "Pearson hash, 64-bit SSSE3" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x151cf8143b74 - 0x151cf8143b08). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.152 bytes/cycle - 434.10 MiB/sec @ 3 ghz
-Alignment 6 - 0.152 bytes/cycle - 434.39 MiB/sec @ 3 ghz
-Alignment 5 - 0.152 bytes/cycle - 434.49 MiB/sec @ 3 ghz
-Alignment 4 - 0.152 bytes/cycle - 434.46 MiB/sec @ 3 ghz
-Alignment 3 - 0.152 bytes/cycle - 434.34 MiB/sec @ 3 ghz
-Alignment 2 - 0.152 bytes/cycle - 434.25 MiB/sec @ 3 ghz
-Alignment 1 - 0.152 bytes/cycle - 434.50 MiB/sec @ 3 ghz
-Alignment 0 - 0.152 bytes/cycle - 434.41 MiB/sec @ 3 ghz
-Average - 0.152 bytes/cycle - 434.37 MiB/sec @ 3 ghz
+Alignment 7 - 0.154 bytes/cycle - 439.86 MiB/sec @ 3 ghz
+Alignment 6 - 0.154 bytes/cycle - 439.91 MiB/sec @ 3 ghz
+Alignment 5 - 0.154 bytes/cycle - 439.88 MiB/sec @ 3 ghz
+Alignment 4 - 0.154 bytes/cycle - 439.90 MiB/sec @ 3 ghz
+Alignment 3 - 0.154 bytes/cycle - 439.86 MiB/sec @ 3 ghz
+Alignment 2 - 0.154 bytes/cycle - 439.88 MiB/sec @ 3 ghz
+Alignment 1 - 0.154 bytes/cycle - 439.91 MiB/sec @ 3 ghz
+Alignment 0 - 0.154 bytes/cycle - 439.64 MiB/sec @ 3 ghz
+Average - 0.154 bytes/cycle - 439.85 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 23.00 cycles/hash
Small key speed test - 2-byte keys - 30.00 cycles/hash
-Small key speed test - 3-byte keys - 37.00 cycles/hash
-Small key speed test - 4-byte keys - 43.00 cycles/hash
-Small key speed test - 5-byte keys - 50.00 cycles/hash
-Small key speed test - 6-byte keys - 56.00 cycles/hash
-Small key speed test - 7-byte keys - 63.00 cycles/hash
-Small key speed test - 8-byte keys - 70.00 cycles/hash
-Small key speed test - 9-byte keys - 76.00 cycles/hash
-Small key speed test - 10-byte keys - 83.00 cycles/hash
-Small key speed test - 11-byte keys - 89.24 cycles/hash
-Small key speed test - 12-byte keys - 96.13 cycles/hash
-Small key speed test - 13-byte keys - 103.00 cycles/hash
-Small key speed test - 14-byte keys - 109.20 cycles/hash
-Small key speed test - 15-byte keys - 115.99 cycles/hash
-Small key speed test - 16-byte keys - 122.99 cycles/hash
-Small key speed test - 17-byte keys - 129.00 cycles/hash
-Small key speed test - 18-byte keys - 136.03 cycles/hash
-Small key speed test - 19-byte keys - 141.99 cycles/hash
-Small key speed test - 20-byte keys - 148.89 cycles/hash
-Small key speed test - 21-byte keys - 154.94 cycles/hash
-Small key speed test - 22-byte keys - 161.82 cycles/hash
-Small key speed test - 23-byte keys - 168.88 cycles/hash
-Small key speed test - 24-byte keys - 178.34 cycles/hash
-Small key speed test - 25-byte keys - 186.91 cycles/hash
-Small key speed test - 26-byte keys - 198.34 cycles/hash
-Small key speed test - 27-byte keys - 194.78 cycles/hash
-Small key speed test - 28-byte keys - 201.00 cycles/hash
-Small key speed test - 29-byte keys - 214.00 cycles/hash
-Small key speed test - 30-byte keys - 218.42 cycles/hash
-Small key speed test - 31-byte keys - 221.33 cycles/hash
-Average 123.298 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 472.381 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 387.023 cycles/op (7.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 323.003 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 229.719 cycles/op (5.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 37.530155 seconds
+Small key speed test - 3-byte keys - 36.00 cycles/hash
+Small key speed test - 4-byte keys - 42.94 cycles/hash
+Small key speed test - 5-byte keys - 49.20 cycles/hash
+Small key speed test - 6-byte keys - 55.87 cycles/hash
+Small key speed test - 7-byte keys - 62.00 cycles/hash
+Small key speed test - 8-byte keys - 69.00 cycles/hash
+Small key speed test - 9-byte keys - 74.90 cycles/hash
+Small key speed test - 10-byte keys - 81.93 cycles/hash
+Small key speed test - 11-byte keys - 87.89 cycles/hash
+Small key speed test - 12-byte keys - 94.88 cycles/hash
+Small key speed test - 13-byte keys - 101.87 cycles/hash
+Small key speed test - 14-byte keys - 107.90 cycles/hash
+Small key speed test - 15-byte keys - 114.81 cycles/hash
+Small key speed test - 16-byte keys - 118.90 cycles/hash
+Small key speed test - 17-byte keys - 124.55 cycles/hash
+Small key speed test - 18-byte keys - 131.54 cycles/hash
+Small key speed test - 19-byte keys - 136.88 cycles/hash
+Small key speed test - 20-byte keys - 143.50 cycles/hash
+Small key speed test - 21-byte keys - 149.53 cycles/hash
+Small key speed test - 22-byte keys - 156.58 cycles/hash
+Small key speed test - 23-byte keys - 163.52 cycles/hash
+Small key speed test - 24-byte keys - 172.47 cycles/hash
+Small key speed test - 25-byte keys - 180.07 cycles/hash
+Small key speed test - 26-byte keys - 189.37 cycles/hash
+Small key speed test - 27-byte keys - 188.54 cycles/hash
+Small key speed test - 28-byte keys - 198.14 cycles/hash
+Small key speed test - 29-byte keys - 206.55 cycles/hash
+Small key speed test - 30-byte keys - 210.99 cycles/hash
+Small key speed test - 31-byte keys - 214.48 cycles/hash
+Small key speed test - 32-byte keys - 220.41 cycles/hash
+Average 123.069 cycles/hash
+Average, weighted by key length freq. 122.625 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 96.638 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 435.401 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 349.232 cycles/op (1.4 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 290.610 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 213.677 cycles/op (1.2 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 37.802741 seconds
--- Testing pearsonhash128 "Pearson hash, 128-bit SSSE3, low 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x153ca660737c - 0x153ca6607310). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.154 bytes/cycle - 440.73 MiB/sec @ 3 ghz
-Alignment 6 - 0.155 bytes/cycle - 442.80 MiB/sec @ 3 ghz
-Alignment 5 - 0.154 bytes/cycle - 440.96 MiB/sec @ 3 ghz
-Alignment 4 - 0.154 bytes/cycle - 440.72 MiB/sec @ 3 ghz
-Alignment 3 - 0.155 bytes/cycle - 442.22 MiB/sec @ 3 ghz
-Alignment 2 - 0.154 bytes/cycle - 441.21 MiB/sec @ 3 ghz
-Alignment 1 - 0.155 bytes/cycle - 442.82 MiB/sec @ 3 ghz
-Alignment 0 - 0.154 bytes/cycle - 440.79 MiB/sec @ 3 ghz
-Average - 0.154 bytes/cycle - 441.53 MiB/sec @ 3 ghz
+Alignment 7 - 0.154 bytes/cycle - 439.86 MiB/sec @ 3 ghz
+Alignment 6 - 0.154 bytes/cycle - 439.77 MiB/sec @ 3 ghz
+Alignment 5 - 0.154 bytes/cycle - 439.92 MiB/sec @ 3 ghz
+Alignment 4 - 0.154 bytes/cycle - 439.82 MiB/sec @ 3 ghz
+Alignment 3 - 0.153 bytes/cycle - 438.45 MiB/sec @ 3 ghz
+Alignment 2 - 0.152 bytes/cycle - 435.89 MiB/sec @ 3 ghz
+Alignment 1 - 0.153 bytes/cycle - 437.09 MiB/sec @ 3 ghz
+Alignment 0 - 0.153 bytes/cycle - 437.09 MiB/sec @ 3 ghz
+Average - 0.153 bytes/cycle - 438.49 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 19.00 cycles/hash
-Small key speed test - 2-byte keys - 26.89 cycles/hash
-Small key speed test - 3-byte keys - 32.00 cycles/hash
-Small key speed test - 4-byte keys - 39.00 cycles/hash
-Small key speed test - 5-byte keys - 45.00 cycles/hash
-Small key speed test - 6-byte keys - 52.00 cycles/hash
-Small key speed test - 7-byte keys - 58.00 cycles/hash
-Small key speed test - 8-byte keys - 64.91 cycles/hash
-Small key speed test - 9-byte keys - 71.82 cycles/hash
-Small key speed test - 10-byte keys - 77.84 cycles/hash
-Small key speed test - 11-byte keys - 84.22 cycles/hash
-Small key speed test - 12-byte keys - 90.81 cycles/hash
-Small key speed test - 13-byte keys - 97.80 cycles/hash
-Small key speed test - 14-byte keys - 104.80 cycles/hash
-Small key speed test - 15-byte keys - 110.17 cycles/hash
-Small key speed test - 16-byte keys - 116.33 cycles/hash
-Small key speed test - 17-byte keys - 122.29 cycles/hash
-Small key speed test - 18-byte keys - 129.75 cycles/hash
-Small key speed test - 19-byte keys - 136.17 cycles/hash
-Small key speed test - 20-byte keys - 142.00 cycles/hash
-Small key speed test - 21-byte keys - 149.00 cycles/hash
-Small key speed test - 22-byte keys - 156.00 cycles/hash
-Small key speed test - 23-byte keys - 162.65 cycles/hash
-Small key speed test - 24-byte keys - 169.49 cycles/hash
-Small key speed test - 25-byte keys - 182.79 cycles/hash
-Small key speed test - 26-byte keys - 198.59 cycles/hash
-Small key speed test - 27-byte keys - 210.19 cycles/hash
-Small key speed test - 28-byte keys - 198.19 cycles/hash
-Small key speed test - 29-byte keys - 200.89 cycles/hash
-Small key speed test - 30-byte keys - 213.94 cycles/hash
-Small key speed test - 31-byte keys - 228.17 cycles/hash
-Average 119.055 cycles/hash
+Small key speed test - 1-byte keys - 19.77 cycles/hash
+Small key speed test - 2-byte keys - 26.76 cycles/hash
+Small key speed test - 3-byte keys - 32.86 cycles/hash
+Small key speed test - 4-byte keys - 39.47 cycles/hash
+Small key speed test - 5-byte keys - 46.00 cycles/hash
+Small key speed test - 6-byte keys - 52.55 cycles/hash
+Small key speed test - 7-byte keys - 59.00 cycles/hash
+Small key speed test - 8-byte keys - 65.64 cycles/hash
+Small key speed test - 9-byte keys - 72.15 cycles/hash
+Small key speed test - 10-byte keys - 79.00 cycles/hash
+Small key speed test - 11-byte keys - 85.49 cycles/hash
+Small key speed test - 12-byte keys - 91.54 cycles/hash
+Small key speed test - 13-byte keys - 98.47 cycles/hash
+Small key speed test - 14-byte keys - 105.57 cycles/hash
+Small key speed test - 15-byte keys - 111.47 cycles/hash
+Small key speed test - 16-byte keys - 118.19 cycles/hash
+Small key speed test - 17-byte keys - 124.47 cycles/hash
+Small key speed test - 18-byte keys - 131.00 cycles/hash
+Small key speed test - 19-byte keys - 137.60 cycles/hash
+Small key speed test - 20-byte keys - 144.00 cycles/hash
+Small key speed test - 21-byte keys - 151.10 cycles/hash
+Small key speed test - 22-byte keys - 158.44 cycles/hash
+Small key speed test - 23-byte keys - 164.40 cycles/hash
+Small key speed test - 24-byte keys - 171.00 cycles/hash
+Small key speed test - 25-byte keys - 184.54 cycles/hash
+Small key speed test - 26-byte keys - 201.16 cycles/hash
+Small key speed test - 27-byte keys - 190.66 cycles/hash
+Small key speed test - 28-byte keys - 197.25 cycles/hash
+Small key speed test - 29-byte keys - 204.28 cycles/hash
+Small key speed test - 30-byte keys - 226.92 cycles/hash
+Small key speed test - 31-byte keys - 231.22 cycles/hash
+Small key speed test - 32-byte keys - 240.05 cycles/hash
+Average 123.812 cycles/hash
+Average, weighted by key length freq. 121.999 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 94.698 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 473.215 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.310 cycles/op (8.5 stdv)
+Init std HashMapTest: 438.584 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 349.476 cycles/op (2.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 314.488 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 238.704 cycles/op (4.7 stdv) ....... PASS
+Init fast HashMapTest: 291.357 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 212.887 cycles/op (1.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 36.537528 seconds
+Verification value is 0x00000001 - Testing took 37.983614 seconds
--- Testing pearsonhash256 "Pearson hash, 256-bit SSSE3, low 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x155c7b634690 - 0x155c7b634648). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.150 bytes/cycle - 430.56 MiB/sec @ 3 ghz
-Alignment 6 - 0.150 bytes/cycle - 430.33 MiB/sec @ 3 ghz
-Alignment 5 - 0.150 bytes/cycle - 430.48 MiB/sec @ 3 ghz
-Alignment 4 - 0.151 bytes/cycle - 430.66 MiB/sec @ 3 ghz
-Alignment 3 - 0.150 bytes/cycle - 430.43 MiB/sec @ 3 ghz
-Alignment 2 - 0.150 bytes/cycle - 430.50 MiB/sec @ 3 ghz
-Alignment 1 - 0.151 bytes/cycle - 430.59 MiB/sec @ 3 ghz
-Alignment 0 - 0.150 bytes/cycle - 430.12 MiB/sec @ 3 ghz
-Average - 0.150 bytes/cycle - 430.46 MiB/sec @ 3 ghz
+Alignment 7 - 0.154 bytes/cycle - 441.28 MiB/sec @ 3 ghz
+Alignment 6 - 0.154 bytes/cycle - 440.60 MiB/sec @ 3 ghz
+Alignment 5 - 0.154 bytes/cycle - 439.99 MiB/sec @ 3 ghz
+Alignment 4 - 0.154 bytes/cycle - 440.66 MiB/sec @ 3 ghz
+Alignment 3 - 0.154 bytes/cycle - 440.59 MiB/sec @ 3 ghz
+Alignment 2 - 0.154 bytes/cycle - 440.78 MiB/sec @ 3 ghz
+Alignment 1 - 0.154 bytes/cycle - 440.50 MiB/sec @ 3 ghz
+Alignment 0 - 0.154 bytes/cycle - 440.64 MiB/sec @ 3 ghz
+Average - 0.154 bytes/cycle - 440.63 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 20.00 cycles/hash
-Small key speed test - 2-byte keys - 27.29 cycles/hash
-Small key speed test - 3-byte keys - 34.00 cycles/hash
-Small key speed test - 4-byte keys - 40.00 cycles/hash
-Small key speed test - 5-byte keys - 46.84 cycles/hash
-Small key speed test - 6-byte keys - 53.78 cycles/hash
-Small key speed test - 7-byte keys - 60.00 cycles/hash
-Small key speed test - 8-byte keys - 65.25 cycles/hash
-Small key speed test - 9-byte keys - 72.16 cycles/hash
-Small key speed test - 10-byte keys - 78.99 cycles/hash
-Small key speed test - 11-byte keys - 86.54 cycles/hash
-Small key speed test - 12-byte keys - 93.04 cycles/hash
-Small key speed test - 13-byte keys - 98.10 cycles/hash
-Small key speed test - 14-byte keys - 105.06 cycles/hash
-Small key speed test - 15-byte keys - 110.99 cycles/hash
-Small key speed test - 16-byte keys - 117.76 cycles/hash
-Small key speed test - 17-byte keys - 123.97 cycles/hash
-Small key speed test - 18-byte keys - 130.98 cycles/hash
-Small key speed test - 19-byte keys - 137.11 cycles/hash
-Small key speed test - 20-byte keys - 144.00 cycles/hash
-Small key speed test - 21-byte keys - 150.26 cycles/hash
-Small key speed test - 22-byte keys - 157.55 cycles/hash
-Small key speed test - 23-byte keys - 162.95 cycles/hash
-Small key speed test - 24-byte keys - 169.95 cycles/hash
-Small key speed test - 25-byte keys - 177.19 cycles/hash
-Small key speed test - 26-byte keys - 183.00 cycles/hash
-Small key speed test - 27-byte keys - 190.06 cycles/hash
-Small key speed test - 28-byte keys - 196.62 cycles/hash
-Small key speed test - 29-byte keys - 203.42 cycles/hash
-Small key speed test - 30-byte keys - 210.04 cycles/hash
-Small key speed test - 31-byte keys - 216.14 cycles/hash
-Average 118.163 cycles/hash
+Small key speed test - 2-byte keys - 26.19 cycles/hash
+Small key speed test - 3-byte keys - 33.46 cycles/hash
+Small key speed test - 4-byte keys - 40.42 cycles/hash
+Small key speed test - 5-byte keys - 45.75 cycles/hash
+Small key speed test - 6-byte keys - 53.48 cycles/hash
+Small key speed test - 7-byte keys - 59.62 cycles/hash
+Small key speed test - 8-byte keys - 65.23 cycles/hash
+Small key speed test - 9-byte keys - 71.98 cycles/hash
+Small key speed test - 10-byte keys - 78.00 cycles/hash
+Small key speed test - 11-byte keys - 86.42 cycles/hash
+Small key speed test - 12-byte keys - 91.37 cycles/hash
+Small key speed test - 13-byte keys - 97.56 cycles/hash
+Small key speed test - 14-byte keys - 103.99 cycles/hash
+Small key speed test - 15-byte keys - 111.76 cycles/hash
+Small key speed test - 16-byte keys - 116.89 cycles/hash
+Small key speed test - 17-byte keys - 123.80 cycles/hash
+Small key speed test - 18-byte keys - 129.73 cycles/hash
+Small key speed test - 19-byte keys - 136.79 cycles/hash
+Small key speed test - 20-byte keys - 143.53 cycles/hash
+Small key speed test - 21-byte keys - 149.53 cycles/hash
+Small key speed test - 22-byte keys - 155.75 cycles/hash
+Small key speed test - 23-byte keys - 162.77 cycles/hash
+Small key speed test - 24-byte keys - 169.69 cycles/hash
+Small key speed test - 25-byte keys - 175.49 cycles/hash
+Small key speed test - 26-byte keys - 181.70 cycles/hash
+Small key speed test - 27-byte keys - 188.43 cycles/hash
+Small key speed test - 28-byte keys - 195.09 cycles/hash
+Small key speed test - 29-byte keys - 200.84 cycles/hash
+Small key speed test - 30-byte keys - 207.90 cycles/hash
+Small key speed test - 31-byte keys - 215.92 cycles/hash
+Small key speed test - 32-byte keys - 224.15 cycles/hash
+Average 120.725 cycles/hash
+Average, weighted by key length freq. 120.263 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 94.024 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 471.867 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 389.604 cycles/op (3.9 stdv)
+Init std HashMapTest: 442.671 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 358.806 cycles/op (2.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 317.373 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 248.711 cycles/op (5.7 stdv) ....... PASS
+Init fast HashMapTest: 293.414 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 224.633 cycles/op (1.5 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 36.685325 seconds
+Verification value is 0x00000001 - Testing took 37.380897 seconds
--- Testing pearsonbhash64 "Pearson block hash, 64-bit" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x157bcf39861c - 0x157bcf3985d4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.608 bytes/cycle - 1740.54 MiB/sec @ 3 ghz
-Alignment 6 - 0.608 bytes/cycle - 1740.79 MiB/sec @ 3 ghz
-Alignment 5 - 0.609 bytes/cycle - 1741.24 MiB/sec @ 3 ghz
-Alignment 4 - 0.611 bytes/cycle - 1748.08 MiB/sec @ 3 ghz
-Alignment 3 - 0.610 bytes/cycle - 1743.84 MiB/sec @ 3 ghz
-Alignment 2 - 0.609 bytes/cycle - 1743.32 MiB/sec @ 3 ghz
-Alignment 1 - 0.610 bytes/cycle - 1745.38 MiB/sec @ 3 ghz
-Alignment 0 - 0.609 bytes/cycle - 1743.20 MiB/sec @ 3 ghz
-Average - 0.609 bytes/cycle - 1743.30 MiB/sec @ 3 ghz
+Alignment 7 - 0.612 bytes/cycle - 1750.12 MiB/sec @ 3 ghz
+Alignment 6 - 0.612 bytes/cycle - 1749.92 MiB/sec @ 3 ghz
+Alignment 5 - 0.612 bytes/cycle - 1749.62 MiB/sec @ 3 ghz
+Alignment 4 - 0.612 bytes/cycle - 1750.27 MiB/sec @ 3 ghz
+Alignment 3 - 0.612 bytes/cycle - 1750.45 MiB/sec @ 3 ghz
+Alignment 2 - 0.611 bytes/cycle - 1749.18 MiB/sec @ 3 ghz
+Alignment 1 - 0.612 bytes/cycle - 1749.95 MiB/sec @ 3 ghz
+Alignment 0 - 0.612 bytes/cycle - 1750.35 MiB/sec @ 3 ghz
+Average - 0.612 bytes/cycle - 1749.98 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 46.00 cycles/hash
Small key speed test - 2-byte keys - 59.00 cycles/hash
-Small key speed test - 3-byte keys - 72.00 cycles/hash
-Small key speed test - 4-byte keys - 85.46 cycles/hash
-Small key speed test - 5-byte keys - 98.58 cycles/hash
-Small key speed test - 6-byte keys - 111.56 cycles/hash
-Small key speed test - 7-byte keys - 124.55 cycles/hash
-Small key speed test - 8-byte keys - 46.00 cycles/hash
+Small key speed test - 3-byte keys - 71.84 cycles/hash
+Small key speed test - 4-byte keys - 85.00 cycles/hash
+Small key speed test - 5-byte keys - 98.00 cycles/hash
+Small key speed test - 6-byte keys - 111.25 cycles/hash
+Small key speed test - 7-byte keys - 124.00 cycles/hash
+Small key speed test - 8-byte keys - 45.98 cycles/hash
Small key speed test - 9-byte keys - 59.00 cycles/hash
-Small key speed test - 10-byte keys - 72.65 cycles/hash
-Small key speed test - 11-byte keys - 85.53 cycles/hash
-Small key speed test - 12-byte keys - 98.67 cycles/hash
-Small key speed test - 13-byte keys - 111.73 cycles/hash
-Small key speed test - 14-byte keys - 125.00 cycles/hash
-Small key speed test - 15-byte keys - 138.24 cycles/hash
-Small key speed test - 16-byte keys - 59.64 cycles/hash
-Small key speed test - 17-byte keys - 73.00 cycles/hash
+Small key speed test - 10-byte keys - 72.00 cycles/hash
+Small key speed test - 11-byte keys - 85.00 cycles/hash
+Small key speed test - 12-byte keys - 98.20 cycles/hash
+Small key speed test - 13-byte keys - 111.00 cycles/hash
+Small key speed test - 14-byte keys - 124.75 cycles/hash
+Small key speed test - 15-byte keys - 137.71 cycles/hash
+Small key speed test - 16-byte keys - 59.00 cycles/hash
+Small key speed test - 17-byte keys - 72.80 cycles/hash
Small key speed test - 18-byte keys - 85.00 cycles/hash
-Small key speed test - 19-byte keys - 98.70 cycles/hash
-Small key speed test - 20-byte keys - 111.20 cycles/hash
-Small key speed test - 21-byte keys - 124.50 cycles/hash
-Small key speed test - 22-byte keys - 137.99 cycles/hash
-Small key speed test - 23-byte keys - 151.14 cycles/hash
-Small key speed test - 24-byte keys - 72.23 cycles/hash
-Small key speed test - 25-byte keys - 85.18 cycles/hash
-Small key speed test - 26-byte keys - 98.19 cycles/hash
-Small key speed test - 27-byte keys - 111.19 cycles/hash
-Small key speed test - 28-byte keys - 124.15 cycles/hash
-Small key speed test - 29-byte keys - 137.98 cycles/hash
-Small key speed test - 30-byte keys - 151.48 cycles/hash
-Small key speed test - 31-byte keys - 163.99 cycles/hash
-Average 100.630 cycles/hash
+Small key speed test - 19-byte keys - 98.29 cycles/hash
+Small key speed test - 20-byte keys - 111.00 cycles/hash
+Small key speed test - 21-byte keys - 124.31 cycles/hash
+Small key speed test - 22-byte keys - 137.73 cycles/hash
+Small key speed test - 23-byte keys - 150.76 cycles/hash
+Small key speed test - 24-byte keys - 72.00 cycles/hash
+Small key speed test - 25-byte keys - 85.29 cycles/hash
+Small key speed test - 26-byte keys - 98.00 cycles/hash
+Small key speed test - 27-byte keys - 111.00 cycles/hash
+Small key speed test - 28-byte keys - 124.00 cycles/hash
+Small key speed test - 29-byte keys - 137.73 cycles/hash
+Small key speed test - 30-byte keys - 150.69 cycles/hash
+Small key speed test - 31-byte keys - 163.72 cycles/hash
+Small key speed test - 32-byte keys - 84.99 cycles/hash
+Average 99.845 cycles/hash
+Average, weighted by key length freq. 99.581 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 72.240 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 510.258 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 428.751 cycles/op (7.3 stdv)
+Init std HashMapTest: 468.730 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 381.339 cycles/op (2.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 350.226 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 280.972 cycles/op (5.8 stdv) ....... PASS
+Init fast HashMapTest: 324.772 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 257.113 cycles/op (2.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 23.973893 seconds
+Verification value is 0x00000001 - Testing took 24.217627 seconds
--- Testing pearsonbhash128 "Pearson block hash, 128-bit, low 64-bit" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.584 bytes/cycle - 1669.63 MiB/sec @ 3 ghz
-Alignment 6 - 0.584 bytes/cycle - 1669.60 MiB/sec @ 3 ghz
-Alignment 5 - 0.583 bytes/cycle - 1669.35 MiB/sec @ 3 ghz
-Alignment 4 - 0.583 bytes/cycle - 1669.31 MiB/sec @ 3 ghz
-Alignment 3 - 0.583 bytes/cycle - 1669.14 MiB/sec @ 3 ghz
-Alignment 2 - 0.583 bytes/cycle - 1667.65 MiB/sec @ 3 ghz
-Alignment 1 - 0.583 bytes/cycle - 1667.05 MiB/sec @ 3 ghz
-Alignment 0 - 0.584 bytes/cycle - 1669.75 MiB/sec @ 3 ghz
-Average - 0.583 bytes/cycle - 1668.94 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 48.00 cycles/hash
-Small key speed test - 2-byte keys - 62.00 cycles/hash
-Small key speed test - 3-byte keys - 76.60 cycles/hash
-Small key speed test - 4-byte keys - 90.90 cycles/hash
-Small key speed test - 5-byte keys - 104.02 cycles/hash
-Small key speed test - 6-byte keys - 117.96 cycles/hash
-Small key speed test - 7-byte keys - 132.00 cycles/hash
-Small key speed test - 8-byte keys - 48.95 cycles/hash
-Small key speed test - 9-byte keys - 61.95 cycles/hash
-Small key speed test - 10-byte keys - 75.78 cycles/hash
-Small key speed test - 11-byte keys - 89.96 cycles/hash
-Small key speed test - 12-byte keys - 103.93 cycles/hash
-Small key speed test - 13-byte keys - 117.90 cycles/hash
-Small key speed test - 14-byte keys - 130.88 cycles/hash
-Small key speed test - 15-byte keys - 145.62 cycles/hash
-Small key speed test - 16-byte keys - 62.00 cycles/hash
-Small key speed test - 17-byte keys - 75.78 cycles/hash
-Small key speed test - 18-byte keys - 89.28 cycles/hash
-Small key speed test - 19-byte keys - 103.91 cycles/hash
-Small key speed test - 20-byte keys - 117.20 cycles/hash
-Small key speed test - 21-byte keys - 131.05 cycles/hash
-Small key speed test - 22-byte keys - 145.08 cycles/hash
-Small key speed test - 23-byte keys - 159.21 cycles/hash
-Small key speed test - 24-byte keys - 75.98 cycles/hash
-Small key speed test - 25-byte keys - 89.97 cycles/hash
-Small key speed test - 26-byte keys - 103.96 cycles/hash
-Small key speed test - 27-byte keys - 117.23 cycles/hash
-Small key speed test - 28-byte keys - 131.22 cycles/hash
-Small key speed test - 29-byte keys - 144.78 cycles/hash
-Small key speed test - 30-byte keys - 158.74 cycles/hash
-Small key speed test - 31-byte keys - 172.70 cycles/hash
-Average 105.953 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 502.476 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 431.821 cycles/op (5.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 347.407 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 294.480 cycles/op (4.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 25.058306 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x15901b1ff290 - 0x15901b1ff224). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.581 bytes/cycle - 1662.74 MiB/sec @ 3 ghz
+Alignment 6 - 0.581 bytes/cycle - 1662.35 MiB/sec @ 3 ghz
+Alignment 5 - 0.581 bytes/cycle - 1662.23 MiB/sec @ 3 ghz
+Alignment 4 - 0.581 bytes/cycle - 1662.10 MiB/sec @ 3 ghz
+Alignment 3 - 0.581 bytes/cycle - 1662.45 MiB/sec @ 3 ghz
+Alignment 2 - 0.581 bytes/cycle - 1661.03 MiB/sec @ 3 ghz
+Alignment 1 - 0.573 bytes/cycle - 1638.23 MiB/sec @ 3 ghz
+Alignment 0 - 0.574 bytes/cycle - 1642.31 MiB/sec @ 3 ghz
+Average - 0.579 bytes/cycle - 1656.68 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 50.00 cycles/hash
+Small key speed test - 2-byte keys - 63.00 cycles/hash
+Small key speed test - 3-byte keys - 77.17 cycles/hash
+Small key speed test - 4-byte keys - 90.95 cycles/hash
+Small key speed test - 5-byte keys - 105.00 cycles/hash
+Small key speed test - 6-byte keys - 119.89 cycles/hash
+Small key speed test - 7-byte keys - 133.89 cycles/hash
+Small key speed test - 8-byte keys - 49.60 cycles/hash
+Small key speed test - 9-byte keys - 62.22 cycles/hash
+Small key speed test - 10-byte keys - 76.96 cycles/hash
+Small key speed test - 11-byte keys - 91.93 cycles/hash
+Small key speed test - 12-byte keys - 104.96 cycles/hash
+Small key speed test - 13-byte keys - 118.93 cycles/hash
+Small key speed test - 14-byte keys - 132.42 cycles/hash
+Small key speed test - 15-byte keys - 146.95 cycles/hash
+Small key speed test - 16-byte keys - 62.31 cycles/hash
+Small key speed test - 17-byte keys - 76.31 cycles/hash
+Small key speed test - 18-byte keys - 90.97 cycles/hash
+Small key speed test - 19-byte keys - 105.11 cycles/hash
+Small key speed test - 20-byte keys - 118.96 cycles/hash
+Small key speed test - 21-byte keys - 132.04 cycles/hash
+Small key speed test - 22-byte keys - 146.91 cycles/hash
+Small key speed test - 23-byte keys - 161.91 cycles/hash
+Small key speed test - 24-byte keys - 76.98 cycles/hash
+Small key speed test - 25-byte keys - 90.98 cycles/hash
+Small key speed test - 26-byte keys - 104.95 cycles/hash
+Small key speed test - 27-byte keys - 118.95 cycles/hash
+Small key speed test - 28-byte keys - 132.94 cycles/hash
+Small key speed test - 29-byte keys - 146.92 cycles/hash
+Small key speed test - 30-byte keys - 161.11 cycles/hash
+Small key speed test - 31-byte keys - 174.92 cycles/hash
+Small key speed test - 32-byte keys - 90.97 cycles/hash
+Average 106.784 cycles/hash
+Average, weighted by key length freq. 106.308 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 76.833 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 476.457 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 399.855 cycles/op (2.3 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 323.498 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 276.922 cycles/op (2.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 25.658583 seconds
--- Testing pearsonbhash256 "Pearson block hash, 256-bit, low 64-bit" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.495 bytes/cycle - 1415.65 MiB/sec @ 3 ghz
-Alignment 6 - 0.494 bytes/cycle - 1412.37 MiB/sec @ 3 ghz
-Alignment 5 - 0.494 bytes/cycle - 1412.52 MiB/sec @ 3 ghz
-Alignment 4 - 0.494 bytes/cycle - 1412.07 MiB/sec @ 3 ghz
-Alignment 3 - 0.495 bytes/cycle - 1414.90 MiB/sec @ 3 ghz
-Alignment 2 - 0.493 bytes/cycle - 1411.29 MiB/sec @ 3 ghz
-Alignment 1 - 0.494 bytes/cycle - 1411.95 MiB/sec @ 3 ghz
-Alignment 0 - 0.495 bytes/cycle - 1416.58 MiB/sec @ 3 ghz
-Average - 0.494 bytes/cycle - 1413.41 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 56.00 cycles/hash
-Small key speed test - 2-byte keys - 72.62 cycles/hash
-Small key speed test - 3-byte keys - 88.54 cycles/hash
-Small key speed test - 4-byte keys - 105.30 cycles/hash
-Small key speed test - 5-byte keys - 121.27 cycles/hash
-Small key speed test - 6-byte keys - 137.52 cycles/hash
-Small key speed test - 7-byte keys - 154.15 cycles/hash
-Small key speed test - 8-byte keys - 56.79 cycles/hash
-Small key speed test - 9-byte keys - 73.00 cycles/hash
-Small key speed test - 10-byte keys - 89.00 cycles/hash
-Small key speed test - 11-byte keys - 106.00 cycles/hash
-Small key speed test - 12-byte keys - 122.52 cycles/hash
-Small key speed test - 13-byte keys - 138.31 cycles/hash
-Small key speed test - 14-byte keys - 155.46 cycles/hash
-Small key speed test - 15-byte keys - 171.00 cycles/hash
-Small key speed test - 16-byte keys - 73.71 cycles/hash
-Small key speed test - 17-byte keys - 90.00 cycles/hash
-Small key speed test - 18-byte keys - 105.56 cycles/hash
-Small key speed test - 19-byte keys - 122.46 cycles/hash
-Small key speed test - 20-byte keys - 139.42 cycles/hash
-Small key speed test - 21-byte keys - 155.23 cycles/hash
-Small key speed test - 22-byte keys - 171.42 cycles/hash
-Small key speed test - 23-byte keys - 187.91 cycles/hash
-Small key speed test - 24-byte keys - 90.00 cycles/hash
-Small key speed test - 25-byte keys - 106.25 cycles/hash
-Small key speed test - 26-byte keys - 121.47 cycles/hash
-Small key speed test - 27-byte keys - 138.00 cycles/hash
-Small key speed test - 28-byte keys - 154.78 cycles/hash
-Small key speed test - 29-byte keys - 171.09 cycles/hash
-Small key speed test - 30-byte keys - 186.99 cycles/hash
-Small key speed test - 31-byte keys - 202.98 cycles/hash
-Average 124.669 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 531.879 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 448.198 cycles/op (8.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 373.956 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 321.994 cycles/op (5.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 28.957042 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x15a59c2d4d7c - 0x15a59c2d4d34). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.496 bytes/cycle - 1418.21 MiB/sec @ 3 ghz
+Alignment 6 - 0.496 bytes/cycle - 1418.48 MiB/sec @ 3 ghz
+Alignment 5 - 0.496 bytes/cycle - 1418.14 MiB/sec @ 3 ghz
+Alignment 4 - 0.496 bytes/cycle - 1418.47 MiB/sec @ 3 ghz
+Alignment 3 - 0.496 bytes/cycle - 1418.47 MiB/sec @ 3 ghz
+Alignment 2 - 0.496 bytes/cycle - 1418.39 MiB/sec @ 3 ghz
+Alignment 1 - 0.496 bytes/cycle - 1418.47 MiB/sec @ 3 ghz
+Alignment 0 - 0.496 bytes/cycle - 1420.28 MiB/sec @ 3 ghz
+Average - 0.496 bytes/cycle - 1418.61 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 55.93 cycles/hash
+Small key speed test - 2-byte keys - 72.16 cycles/hash
+Small key speed test - 3-byte keys - 88.00 cycles/hash
+Small key speed test - 4-byte keys - 104.81 cycles/hash
+Small key speed test - 5-byte keys - 120.82 cycles/hash
+Small key speed test - 6-byte keys - 137.00 cycles/hash
+Small key speed test - 7-byte keys - 153.90 cycles/hash
+Small key speed test - 8-byte keys - 56.58 cycles/hash
+Small key speed test - 9-byte keys - 72.95 cycles/hash
+Small key speed test - 10-byte keys - 88.94 cycles/hash
+Small key speed test - 11-byte keys - 105.83 cycles/hash
+Small key speed test - 12-byte keys - 121.84 cycles/hash
+Small key speed test - 13-byte keys - 137.89 cycles/hash
+Small key speed test - 14-byte keys - 154.38 cycles/hash
+Small key speed test - 15-byte keys - 170.81 cycles/hash
+Small key speed test - 16-byte keys - 73.41 cycles/hash
+Small key speed test - 17-byte keys - 89.82 cycles/hash
+Small key speed test - 18-byte keys - 104.95 cycles/hash
+Small key speed test - 19-byte keys - 121.87 cycles/hash
+Small key speed test - 20-byte keys - 138.62 cycles/hash
+Small key speed test - 21-byte keys - 154.84 cycles/hash
+Small key speed test - 22-byte keys - 170.87 cycles/hash
+Small key speed test - 23-byte keys - 186.95 cycles/hash
+Small key speed test - 24-byte keys - 89.86 cycles/hash
+Small key speed test - 25-byte keys - 105.89 cycles/hash
+Small key speed test - 26-byte keys - 120.81 cycles/hash
+Small key speed test - 27-byte keys - 137.86 cycles/hash
+Small key speed test - 28-byte keys - 153.88 cycles/hash
+Small key speed test - 29-byte keys - 170.62 cycles/hash
+Small key speed test - 30-byte keys - 186.80 cycles/hash
+Small key speed test - 31-byte keys - 202.93 cycles/hash
+Small key speed test - 32-byte keys - 105.86 cycles/hash
+Average 123.678 cycles/hash
+Average, weighted by key length freq. 123.514 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 89.588 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 493.716 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 417.275 cycles/op (2.7 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 339.281 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 301.260 cycles/op (2.6 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 29.296875 seconds
--- Testing VHASH_32 "VHASH_32 by Ted Krovetz and Wei Dai" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x15be29ad0aa8 - 0x15be29ad0a60). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 4.557 bytes/cycle - 13037.27 MiB/sec @ 3 ghz
+Alignment 6 - 4.572 bytes/cycle - 13080.27 MiB/sec @ 3 ghz
+Alignment 5 - 4.571 bytes/cycle - 13076.90 MiB/sec @ 3 ghz
+Alignment 4 - 4.569 bytes/cycle - 13073.44 MiB/sec @ 3 ghz
+Alignment 3 - 4.573 bytes/cycle - 13082.96 MiB/sec @ 3 ghz
+Alignment 2 - 4.573 bytes/cycle - 13082.35 MiB/sec @ 3 ghz
+Alignment 1 - 4.572 bytes/cycle - 13081.40 MiB/sec @ 3 ghz
+Alignment 0 - 4.600 bytes/cycle - 13160.40 MiB/sec @ 3 ghz
+Average - 4.573 bytes/cycle - 13084.37 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 64.83 cycles/hash
+Small key speed test - 2-byte keys - 64.79 cycles/hash
+Small key speed test - 3-byte keys - 64.78 cycles/hash
+Small key speed test - 4-byte keys - 64.79 cycles/hash
+Small key speed test - 5-byte keys - 64.81 cycles/hash
+Small key speed test - 6-byte keys - 64.82 cycles/hash
+Small key speed test - 7-byte keys - 64.77 cycles/hash
+Small key speed test - 8-byte keys - 64.78 cycles/hash
+Small key speed test - 9-byte keys - 64.78 cycles/hash
+Small key speed test - 10-byte keys - 64.79 cycles/hash
+Small key speed test - 11-byte keys - 64.77 cycles/hash
+Small key speed test - 12-byte keys - 64.80 cycles/hash
+Small key speed test - 13-byte keys - 64.80 cycles/hash
+Small key speed test - 14-byte keys - 64.80 cycles/hash
+Small key speed test - 15-byte keys - 64.81 cycles/hash
+Small key speed test - 16-byte keys - 64.81 cycles/hash
+Small key speed test - 17-byte keys - 66.11 cycles/hash
+Small key speed test - 18-byte keys - 66.11 cycles/hash
+Small key speed test - 19-byte keys - 66.10 cycles/hash
+Small key speed test - 20-byte keys - 66.11 cycles/hash
+Small key speed test - 21-byte keys - 66.30 cycles/hash
+Small key speed test - 22-byte keys - 66.51 cycles/hash
+Small key speed test - 23-byte keys - 66.14 cycles/hash
+Small key speed test - 24-byte keys - 66.15 cycles/hash
+Small key speed test - 25-byte keys - 66.11 cycles/hash
+Small key speed test - 26-byte keys - 66.12 cycles/hash
+Small key speed test - 27-byte keys - 66.00 cycles/hash
+Small key speed test - 28-byte keys - 66.12 cycles/hash
+Small key speed test - 29-byte keys - 65.00 cycles/hash
+Small key speed test - 30-byte keys - 66.55 cycles/hash
+Small key speed test - 31-byte keys - 66.20 cycles/hash
+Small key speed test - 32-byte keys - 66.12 cycles/hash
+Average 65.452 cycles/hash
+Average, weighted by key length freq. 65.384 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 64.810 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 442.692 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 377.522 cycles/op (3.7 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 331.267 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 280.144 cycles/op (2.1 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 15.372761 seconds
+--- Testing VHASH_64 "VHASH_64 by Ted Krovetz and Wei Dai" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x15cb0c0ef6e0 - 0x15cb0c0ef674). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.628 bytes/cycle - 13240.33 MiB/sec @ 3 ghz
-Alignment 6 - 4.650 bytes/cycle - 13303.50 MiB/sec @ 3 ghz
-Alignment 5 - 4.650 bytes/cycle - 13304.56 MiB/sec @ 3 ghz
-Alignment 4 - 4.650 bytes/cycle - 13304.27 MiB/sec @ 3 ghz
-Alignment 3 - 4.631 bytes/cycle - 13249.95 MiB/sec @ 3 ghz
-Alignment 2 - 4.630 bytes/cycle - 13247.10 MiB/sec @ 3 ghz
-Alignment 1 - 4.629 bytes/cycle - 13243.44 MiB/sec @ 3 ghz
-Alignment 0 - 4.675 bytes/cycle - 13375.14 MiB/sec @ 3 ghz
-Average - 4.643 bytes/cycle - 13283.54 MiB/sec @ 3 ghz
+Alignment 7 - 4.615 bytes/cycle - 13203.33 MiB/sec @ 3 ghz
+Alignment 6 - 4.617 bytes/cycle - 13209.14 MiB/sec @ 3 ghz
+Alignment 5 - 4.617 bytes/cycle - 13208.11 MiB/sec @ 3 ghz
+Alignment 4 - 4.618 bytes/cycle - 13210.81 MiB/sec @ 3 ghz
+Alignment 3 - 4.617 bytes/cycle - 13208.48 MiB/sec @ 3 ghz
+Alignment 2 - 4.616 bytes/cycle - 13207.42 MiB/sec @ 3 ghz
+Alignment 1 - 4.616 bytes/cycle - 13205.96 MiB/sec @ 3 ghz
+Alignment 0 - 4.644 bytes/cycle - 13287.84 MiB/sec @ 3 ghz
+Average - 4.620 bytes/cycle - 13217.64 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 64.00 cycles/hash
Small key speed test - 2-byte keys - 64.00 cycles/hash
@@ -4682,1411 +5511,1438 @@ Small key speed test - 11-byte keys - 64.00 cycles/hash
Small key speed test - 12-byte keys - 64.00 cycles/hash
Small key speed test - 13-byte keys - 64.00 cycles/hash
Small key speed test - 14-byte keys - 64.00 cycles/hash
-Small key speed test - 15-byte keys - 64.10 cycles/hash
+Small key speed test - 15-byte keys - 64.00 cycles/hash
Small key speed test - 16-byte keys - 64.00 cycles/hash
-Small key speed test - 17-byte keys - 65.00 cycles/hash
-Small key speed test - 18-byte keys - 65.42 cycles/hash
-Small key speed test - 19-byte keys - 65.00 cycles/hash
-Small key speed test - 20-byte keys - 65.00 cycles/hash
-Small key speed test - 21-byte keys - 66.03 cycles/hash
-Small key speed test - 22-byte keys - 66.06 cycles/hash
-Small key speed test - 23-byte keys - 65.99 cycles/hash
-Small key speed test - 24-byte keys - 66.13 cycles/hash
-Small key speed test - 25-byte keys - 66.09 cycles/hash
-Small key speed test - 26-byte keys - 66.42 cycles/hash
-Small key speed test - 27-byte keys - 66.17 cycles/hash
-Small key speed test - 28-byte keys - 66.01 cycles/hash
-Small key speed test - 29-byte keys - 65.99 cycles/hash
-Small key speed test - 30-byte keys - 66.40 cycles/hash
-Small key speed test - 31-byte keys - 66.50 cycles/hash
-Average 64.913 cycles/hash
+Small key speed test - 17-byte keys - 65.81 cycles/hash
+Small key speed test - 18-byte keys - 65.76 cycles/hash
+Small key speed test - 19-byte keys - 65.81 cycles/hash
+Small key speed test - 20-byte keys - 65.76 cycles/hash
+Small key speed test - 21-byte keys - 65.77 cycles/hash
+Small key speed test - 22-byte keys - 65.82 cycles/hash
+Small key speed test - 23-byte keys - 65.79 cycles/hash
+Small key speed test - 24-byte keys - 65.88 cycles/hash
+Small key speed test - 25-byte keys - 65.85 cycles/hash
+Small key speed test - 26-byte keys - 65.82 cycles/hash
+Small key speed test - 27-byte keys - 65.84 cycles/hash
+Small key speed test - 28-byte keys - 65.86 cycles/hash
+Small key speed test - 29-byte keys - 65.80 cycles/hash
+Small key speed test - 30-byte keys - 65.77 cycles/hash
+Small key speed test - 31-byte keys - 65.77 cycles/hash
+Small key speed test - 32-byte keys - 65.80 cycles/hash
+Average 64.904 cycles/hash
+Average, weighted by key length freq. 64.789 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 64.024 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 479.898 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 405.541 cycles/op (6.5 stdv)
+Init std HashMapTest: 459.199 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 383.205 cycles/op (2.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 356.001 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 295.635 cycles/op (4.6 stdv) ....... PASS
+Init fast HashMapTest: 319.853 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 270.040 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 15.034598 seconds
---- Testing VHASH_64 "VHASH_64 by Ted Krovetz and Wei Dai" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.546 bytes/cycle - 13006.64 MiB/sec @ 3 ghz
-Alignment 6 - 4.565 bytes/cycle - 13059.61 MiB/sec @ 3 ghz
-Alignment 5 - 4.569 bytes/cycle - 13070.81 MiB/sec @ 3 ghz
-Alignment 4 - 4.568 bytes/cycle - 13068.12 MiB/sec @ 3 ghz
-Alignment 3 - 4.560 bytes/cycle - 13046.53 MiB/sec @ 3 ghz
-Alignment 2 - 4.559 bytes/cycle - 13043.18 MiB/sec @ 3 ghz
-Alignment 1 - 4.567 bytes/cycle - 13066.97 MiB/sec @ 3 ghz
-Alignment 0 - 4.579 bytes/cycle - 13099.90 MiB/sec @ 3 ghz
-Average - 4.564 bytes/cycle - 13057.72 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 65.15 cycles/hash
-Small key speed test - 2-byte keys - 65.00 cycles/hash
-Small key speed test - 3-byte keys - 65.25 cycles/hash
-Small key speed test - 4-byte keys - 65.11 cycles/hash
-Small key speed test - 5-byte keys - 64.98 cycles/hash
-Small key speed test - 6-byte keys - 65.15 cycles/hash
-Small key speed test - 7-byte keys - 64.99 cycles/hash
-Small key speed test - 8-byte keys - 65.15 cycles/hash
-Small key speed test - 9-byte keys - 65.22 cycles/hash
-Small key speed test - 10-byte keys - 64.99 cycles/hash
-Small key speed test - 11-byte keys - 65.26 cycles/hash
-Small key speed test - 12-byte keys - 65.15 cycles/hash
-Small key speed test - 13-byte keys - 65.00 cycles/hash
-Small key speed test - 14-byte keys - 65.25 cycles/hash
-Small key speed test - 15-byte keys - 65.18 cycles/hash
-Small key speed test - 16-byte keys - 65.19 cycles/hash
-Small key speed test - 17-byte keys - 66.60 cycles/hash
-Small key speed test - 18-byte keys - 66.26 cycles/hash
-Small key speed test - 19-byte keys - 66.42 cycles/hash
-Small key speed test - 20-byte keys - 66.28 cycles/hash
-Small key speed test - 21-byte keys - 67.15 cycles/hash
-Small key speed test - 22-byte keys - 67.10 cycles/hash
-Small key speed test - 23-byte keys - 66.99 cycles/hash
-Small key speed test - 24-byte keys - 67.24 cycles/hash
-Small key speed test - 25-byte keys - 67.00 cycles/hash
-Small key speed test - 26-byte keys - 67.21 cycles/hash
-Small key speed test - 27-byte keys - 67.02 cycles/hash
-Small key speed test - 28-byte keys - 66.99 cycles/hash
-Small key speed test - 29-byte keys - 67.03 cycles/hash
-Small key speed test - 30-byte keys - 67.34 cycles/hash
-Small key speed test - 31-byte keys - 67.33 cycles/hash
-Average 66.000 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 494.778 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 420.380 cycles/op (6.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 357.409 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 291.310 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 15.225033 seconds
+Verification value is 0x00000001 - Testing took 15.162217 seconds
--- Testing MicroOAAT "Small non-multiplicative OAAT (by funny-falcon)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x15d7c15b5d44 - 0x15d7c15b5cd8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.259 bytes/cycle - 739.85 MiB/sec @ 3 ghz
-Alignment 6 - 0.258 bytes/cycle - 739.56 MiB/sec @ 3 ghz
-Alignment 5 - 0.258 bytes/cycle - 739.49 MiB/sec @ 3 ghz
-Alignment 4 - 0.259 bytes/cycle - 739.83 MiB/sec @ 3 ghz
-Alignment 3 - 0.259 bytes/cycle - 739.83 MiB/sec @ 3 ghz
-Alignment 2 - 0.259 bytes/cycle - 739.65 MiB/sec @ 3 ghz
-Alignment 1 - 0.259 bytes/cycle - 739.87 MiB/sec @ 3 ghz
-Alignment 0 - 0.259 bytes/cycle - 739.84 MiB/sec @ 3 ghz
-Average - 0.259 bytes/cycle - 739.74 MiB/sec @ 3 ghz
+Alignment 7 - 0.255 bytes/cycle - 730.92 MiB/sec @ 3 ghz
+Alignment 6 - 0.255 bytes/cycle - 730.87 MiB/sec @ 3 ghz
+Alignment 5 - 0.255 bytes/cycle - 730.82 MiB/sec @ 3 ghz
+Alignment 4 - 0.255 bytes/cycle - 730.83 MiB/sec @ 3 ghz
+Alignment 3 - 0.255 bytes/cycle - 730.90 MiB/sec @ 3 ghz
+Alignment 2 - 0.255 bytes/cycle - 730.91 MiB/sec @ 3 ghz
+Alignment 1 - 0.255 bytes/cycle - 730.93 MiB/sec @ 3 ghz
+Alignment 0 - 0.255 bytes/cycle - 730.91 MiB/sec @ 3 ghz
+Average - 0.255 bytes/cycle - 730.89 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 18.00 cycles/hash
-Small key speed test - 2-byte keys - 21.00 cycles/hash
-Small key speed test - 3-byte keys - 25.00 cycles/hash
-Small key speed test - 4-byte keys - 29.99 cycles/hash
-Small key speed test - 5-byte keys - 33.16 cycles/hash
-Small key speed test - 6-byte keys - 37.00 cycles/hash
-Small key speed test - 7-byte keys - 41.00 cycles/hash
-Small key speed test - 8-byte keys - 44.95 cycles/hash
-Small key speed test - 9-byte keys - 48.00 cycles/hash
-Small key speed test - 10-byte keys - 52.25 cycles/hash
-Small key speed test - 11-byte keys - 56.99 cycles/hash
-Small key speed test - 12-byte keys - 60.00 cycles/hash
-Small key speed test - 13-byte keys - 63.99 cycles/hash
-Small key speed test - 14-byte keys - 67.92 cycles/hash
-Small key speed test - 15-byte keys - 71.98 cycles/hash
-Small key speed test - 16-byte keys - 75.69 cycles/hash
-Small key speed test - 17-byte keys - 79.00 cycles/hash
-Small key speed test - 18-byte keys - 83.12 cycles/hash
-Small key speed test - 19-byte keys - 87.00 cycles/hash
-Small key speed test - 20-byte keys - 91.00 cycles/hash
-Small key speed test - 21-byte keys - 94.98 cycles/hash
-Small key speed test - 22-byte keys - 98.87 cycles/hash
-Small key speed test - 23-byte keys - 102.25 cycles/hash
-Small key speed test - 24-byte keys - 105.96 cycles/hash
-Small key speed test - 25-byte keys - 109.00 cycles/hash
-Small key speed test - 26-byte keys - 113.98 cycles/hash
-Small key speed test - 27-byte keys - 117.25 cycles/hash
-Small key speed test - 28-byte keys - 121.00 cycles/hash
-Small key speed test - 29-byte keys - 124.45 cycles/hash
-Small key speed test - 30-byte keys - 129.16 cycles/hash
-Small key speed test - 31-byte keys - 133.23 cycles/hash
-Average 75.393 cycles/hash
+Small key speed test - 2-byte keys - 22.00 cycles/hash
+Small key speed test - 3-byte keys - 25.99 cycles/hash
+Small key speed test - 4-byte keys - 30.00 cycles/hash
+Small key speed test - 5-byte keys - 34.00 cycles/hash
+Small key speed test - 6-byte keys - 37.88 cycles/hash
+Small key speed test - 7-byte keys - 41.69 cycles/hash
+Small key speed test - 8-byte keys - 45.00 cycles/hash
+Small key speed test - 9-byte keys - 49.00 cycles/hash
+Small key speed test - 10-byte keys - 53.00 cycles/hash
+Small key speed test - 11-byte keys - 57.76 cycles/hash
+Small key speed test - 12-byte keys - 61.00 cycles/hash
+Small key speed test - 13-byte keys - 64.34 cycles/hash
+Small key speed test - 14-byte keys - 69.00 cycles/hash
+Small key speed test - 15-byte keys - 72.00 cycles/hash
+Small key speed test - 16-byte keys - 76.98 cycles/hash
+Small key speed test - 17-byte keys - 80.56 cycles/hash
+Small key speed test - 18-byte keys - 84.00 cycles/hash
+Small key speed test - 19-byte keys - 88.00 cycles/hash
+Small key speed test - 20-byte keys - 92.00 cycles/hash
+Small key speed test - 21-byte keys - 96.00 cycles/hash
+Small key speed test - 22-byte keys - 99.49 cycles/hash
+Small key speed test - 23-byte keys - 103.28 cycles/hash
+Small key speed test - 24-byte keys - 106.99 cycles/hash
+Small key speed test - 25-byte keys - 110.98 cycles/hash
+Small key speed test - 26-byte keys - 115.00 cycles/hash
+Small key speed test - 27-byte keys - 118.94 cycles/hash
+Small key speed test - 28-byte keys - 122.00 cycles/hash
+Small key speed test - 29-byte keys - 126.30 cycles/hash
+Small key speed test - 30-byte keys - 130.99 cycles/hash
+Small key speed test - 31-byte keys - 133.98 cycles/hash
+Small key speed test - 32-byte keys - 137.98 cycles/hash
+Average 78.254 cycles/hash
+Average, weighted by key length freq. 78.121 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 62.675 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 443.945 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 372.771 cycles/op (6.7 stdv)
+Init std HashMapTest: 402.302 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 339.877 cycles/op (0.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 307.115 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.147 cycles/op (4.6 stdv) ....... PASS
+Init fast HashMapTest: 284.291 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 236.066 cycles/op (2.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 23.835318 seconds
+Verification value is 0x00000001 - Testing took 24.725957 seconds
--- Testing farsh32 "FARSH 32bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x15ec7a2aec18 - 0x15ec7a2aebd0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 9.419 bytes/cycle - 26949.08 MiB/sec @ 3 ghz
-Alignment 6 - 9.439 bytes/cycle - 27006.38 MiB/sec @ 3 ghz
-Alignment 5 - 9.456 bytes/cycle - 27052.98 MiB/sec @ 3 ghz
-Alignment 4 - 9.432 bytes/cycle - 26986.48 MiB/sec @ 3 ghz
-Alignment 3 - 9.453 bytes/cycle - 27044.06 MiB/sec @ 3 ghz
-Alignment 2 - 9.433 bytes/cycle - 26988.29 MiB/sec @ 3 ghz
-Alignment 1 - 9.388 bytes/cycle - 26860.03 MiB/sec @ 3 ghz
-Alignment 0 - 9.683 bytes/cycle - 27703.60 MiB/sec @ 3 ghz
-Average - 9.463 bytes/cycle - 27073.86 MiB/sec @ 3 ghz
+Alignment 7 - 9.526 bytes/cycle - 27254.50 MiB/sec @ 3 ghz
+Alignment 6 - 9.602 bytes/cycle - 27472.40 MiB/sec @ 3 ghz
+Alignment 5 - 9.614 bytes/cycle - 27505.64 MiB/sec @ 3 ghz
+Alignment 4 - 9.610 bytes/cycle - 27495.79 MiB/sec @ 3 ghz
+Alignment 3 - 9.618 bytes/cycle - 27518.27 MiB/sec @ 3 ghz
+Alignment 2 - 9.599 bytes/cycle - 27462.08 MiB/sec @ 3 ghz
+Alignment 1 - 9.615 bytes/cycle - 27509.39 MiB/sec @ 3 ghz
+Alignment 0 - 9.945 bytes/cycle - 28453.03 MiB/sec @ 3 ghz
+Average - 9.641 bytes/cycle - 27583.89 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 71.13 cycles/hash
-Small key speed test - 2-byte keys - 71.00 cycles/hash
-Small key speed test - 3-byte keys - 71.00 cycles/hash
-Small key speed test - 4-byte keys - 52.00 cycles/hash
-Small key speed test - 5-byte keys - 71.14 cycles/hash
-Small key speed test - 6-byte keys - 71.11 cycles/hash
-Small key speed test - 7-byte keys - 71.12 cycles/hash
-Small key speed test - 8-byte keys - 47.26 cycles/hash
-Small key speed test - 9-byte keys - 72.00 cycles/hash
-Small key speed test - 10-byte keys - 72.00 cycles/hash
-Small key speed test - 11-byte keys - 72.00 cycles/hash
-Small key speed test - 12-byte keys - 52.98 cycles/hash
-Small key speed test - 13-byte keys - 72.20 cycles/hash
-Small key speed test - 14-byte keys - 72.00 cycles/hash
-Small key speed test - 15-byte keys - 72.24 cycles/hash
-Small key speed test - 16-byte keys - 48.00 cycles/hash
-Small key speed test - 17-byte keys - 71.41 cycles/hash
-Small key speed test - 18-byte keys - 71.25 cycles/hash
-Small key speed test - 19-byte keys - 71.00 cycles/hash
-Small key speed test - 20-byte keys - 54.00 cycles/hash
-Small key speed test - 21-byte keys - 71.73 cycles/hash
-Small key speed test - 22-byte keys - 71.25 cycles/hash
-Small key speed test - 23-byte keys - 71.54 cycles/hash
-Small key speed test - 24-byte keys - 50.00 cycles/hash
-Small key speed test - 25-byte keys - 71.00 cycles/hash
-Small key speed test - 26-byte keys - 71.13 cycles/hash
-Small key speed test - 27-byte keys - 71.16 cycles/hash
-Small key speed test - 28-byte keys - 54.00 cycles/hash
-Small key speed test - 29-byte keys - 71.18 cycles/hash
-Small key speed test - 30-byte keys - 71.25 cycles/hash
-Small key speed test - 31-byte keys - 71.21 cycles/hash
-Average 66.848 cycles/hash
+Small key speed test - 1-byte keys - 70.79 cycles/hash
+Small key speed test - 2-byte keys - 70.00 cycles/hash
+Small key speed test - 3-byte keys - 70.00 cycles/hash
+Small key speed test - 4-byte keys - 52.82 cycles/hash
+Small key speed test - 5-byte keys - 71.00 cycles/hash
+Small key speed test - 6-byte keys - 70.99 cycles/hash
+Small key speed test - 7-byte keys - 70.80 cycles/hash
+Small key speed test - 8-byte keys - 46.00 cycles/hash
+Small key speed test - 9-byte keys - 70.99 cycles/hash
+Small key speed test - 10-byte keys - 70.98 cycles/hash
+Small key speed test - 11-byte keys - 70.98 cycles/hash
+Small key speed test - 12-byte keys - 51.98 cycles/hash
+Small key speed test - 13-byte keys - 71.00 cycles/hash
+Small key speed test - 14-byte keys - 71.00 cycles/hash
+Small key speed test - 15-byte keys - 71.00 cycles/hash
+Small key speed test - 16-byte keys - 47.91 cycles/hash
+Small key speed test - 17-byte keys - 70.29 cycles/hash
+Small key speed test - 18-byte keys - 70.00 cycles/hash
+Small key speed test - 19-byte keys - 70.00 cycles/hash
+Small key speed test - 20-byte keys - 53.00 cycles/hash
+Small key speed test - 21-byte keys - 70.00 cycles/hash
+Small key speed test - 22-byte keys - 70.00 cycles/hash
+Small key speed test - 23-byte keys - 70.00 cycles/hash
+Small key speed test - 24-byte keys - 49.26 cycles/hash
+Small key speed test - 25-byte keys - 69.93 cycles/hash
+Small key speed test - 26-byte keys - 70.00 cycles/hash
+Small key speed test - 27-byte keys - 70.00 cycles/hash
+Small key speed test - 28-byte keys - 53.00 cycles/hash
+Small key speed test - 29-byte keys - 70.00 cycles/hash
+Small key speed test - 30-byte keys - 70.00 cycles/hash
+Small key speed test - 31-byte keys - 70.00 cycles/hash
+Small key speed test - 32-byte keys - 57.00 cycles/hash
+Average 65.647 cycles/hash
+Average, weighted by key length freq. 65.522 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 60.163 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 475.174 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 422.670 cycles/op (5.9 stdv)
+Init std HashMapTest: 435.788 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 370.707 cycles/op (3.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 351.774 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 291.090 cycles/op (4.8 stdv) ....... PASS
+Init fast HashMapTest: 315.840 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 266.638 cycles/op (2.5 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 15.105845 seconds
+Verification value is 0x00000001 - Testing took 15.071245 seconds
--- Testing farsh64 "FARSH 64bit" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.780 bytes/cycle - 13675.33 MiB/sec @ 3 ghz
-Alignment 6 - 4.784 bytes/cycle - 13686.57 MiB/sec @ 3 ghz
-Alignment 5 - 4.789 bytes/cycle - 13700.82 MiB/sec @ 3 ghz
-Alignment 4 - 4.792 bytes/cycle - 13711.29 MiB/sec @ 3 ghz
-Alignment 3 - 4.779 bytes/cycle - 13673.09 MiB/sec @ 3 ghz
-Alignment 2 - 4.781 bytes/cycle - 13679.62 MiB/sec @ 3 ghz
-Alignment 1 - 4.801 bytes/cycle - 13737.09 MiB/sec @ 3 ghz
-Alignment 0 - 4.920 bytes/cycle - 14077.59 MiB/sec @ 3 ghz
-Average - 4.803 bytes/cycle - 13742.68 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 127.27 cycles/hash
-Small key speed test - 2-byte keys - 126.95 cycles/hash
-Small key speed test - 3-byte keys - 126.95 cycles/hash
-Small key speed test - 4-byte keys - 57.92 cycles/hash
-Small key speed test - 5-byte keys - 126.95 cycles/hash
-Small key speed test - 6-byte keys - 127.09 cycles/hash
-Small key speed test - 7-byte keys - 127.04 cycles/hash
-Small key speed test - 8-byte keys - 67.00 cycles/hash
-Small key speed test - 9-byte keys - 127.27 cycles/hash
-Small key speed test - 10-byte keys - 127.43 cycles/hash
-Small key speed test - 11-byte keys - 127.44 cycles/hash
-Small key speed test - 12-byte keys - 71.94 cycles/hash
-Small key speed test - 13-byte keys - 127.63 cycles/hash
-Small key speed test - 14-byte keys - 127.85 cycles/hash
-Small key speed test - 15-byte keys - 127.66 cycles/hash
-Small key speed test - 16-byte keys - 72.76 cycles/hash
-Small key speed test - 17-byte keys - 126.64 cycles/hash
-Small key speed test - 18-byte keys - 127.16 cycles/hash
-Small key speed test - 19-byte keys - 127.63 cycles/hash
-Small key speed test - 20-byte keys - 69.80 cycles/hash
-Small key speed test - 21-byte keys - 126.77 cycles/hash
-Small key speed test - 22-byte keys - 126.65 cycles/hash
-Small key speed test - 23-byte keys - 126.73 cycles/hash
-Small key speed test - 24-byte keys - 69.95 cycles/hash
-Small key speed test - 25-byte keys - 126.70 cycles/hash
-Small key speed test - 26-byte keys - 127.83 cycles/hash
-Small key speed test - 27-byte keys - 127.70 cycles/hash
-Small key speed test - 28-byte keys - 72.94 cycles/hash
-Small key speed test - 29-byte keys - 127.96 cycles/hash
-Small key speed test - 30-byte keys - 127.97 cycles/hash
-Small key speed test - 31-byte keys - 128.54 cycles/hash
-Average 114.132 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 555.408 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 484.601 cycles/op (5.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 392.974 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 331.153 cycles/op (4.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 23.671825 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x15f91bde23a0 - 0x15f91bde2334). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 4.712 bytes/cycle - 13482.00 MiB/sec @ 3 ghz
+Alignment 6 - 4.700 bytes/cycle - 13446.03 MiB/sec @ 3 ghz
+Alignment 5 - 4.733 bytes/cycle - 13540.01 MiB/sec @ 3 ghz
+Alignment 4 - 4.725 bytes/cycle - 13518.51 MiB/sec @ 3 ghz
+Alignment 3 - 4.730 bytes/cycle - 13533.23 MiB/sec @ 3 ghz
+Alignment 2 - 4.726 bytes/cycle - 13522.19 MiB/sec @ 3 ghz
+Alignment 1 - 4.726 bytes/cycle - 13521.72 MiB/sec @ 3 ghz
+Alignment 0 - 4.860 bytes/cycle - 13905.80 MiB/sec @ 3 ghz
+Average - 4.739 bytes/cycle - 13558.69 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 127.77 cycles/hash
+Small key speed test - 2-byte keys - 127.27 cycles/hash
+Small key speed test - 3-byte keys - 127.27 cycles/hash
+Small key speed test - 4-byte keys - 58.00 cycles/hash
+Small key speed test - 5-byte keys - 128.00 cycles/hash
+Small key speed test - 6-byte keys - 128.69 cycles/hash
+Small key speed test - 7-byte keys - 128.49 cycles/hash
+Small key speed test - 8-byte keys - 72.00 cycles/hash
+Small key speed test - 9-byte keys - 127.53 cycles/hash
+Small key speed test - 10-byte keys - 128.66 cycles/hash
+Small key speed test - 11-byte keys - 128.65 cycles/hash
+Small key speed test - 12-byte keys - 68.19 cycles/hash
+Small key speed test - 13-byte keys - 128.66 cycles/hash
+Small key speed test - 14-byte keys - 128.66 cycles/hash
+Small key speed test - 15-byte keys - 128.60 cycles/hash
+Small key speed test - 16-byte keys - 77.86 cycles/hash
+Small key speed test - 17-byte keys - 127.65 cycles/hash
+Small key speed test - 18-byte keys - 128.47 cycles/hash
+Small key speed test - 19-byte keys - 128.17 cycles/hash
+Small key speed test - 20-byte keys - 70.00 cycles/hash
+Small key speed test - 21-byte keys - 127.70 cycles/hash
+Small key speed test - 22-byte keys - 127.64 cycles/hash
+Small key speed test - 23-byte keys - 127.69 cycles/hash
+Small key speed test - 24-byte keys - 72.78 cycles/hash
+Small key speed test - 25-byte keys - 127.65 cycles/hash
+Small key speed test - 26-byte keys - 128.64 cycles/hash
+Small key speed test - 27-byte keys - 128.69 cycles/hash
+Small key speed test - 28-byte keys - 73.00 cycles/hash
+Small key speed test - 29-byte keys - 128.77 cycles/hash
+Small key speed test - 30-byte keys - 128.71 cycles/hash
+Small key speed test - 31-byte keys - 128.69 cycles/hash
+Small key speed test - 32-byte keys - 71.26 cycles/hash
+Average 113.744 cycles/hash
+Average, weighted by key length freq. 114.299 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 103.639 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 541.481 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 454.931 cycles/op (3.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 377.446 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 327.262 cycles/op (3.2 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 24.121028 seconds
--- Testing farsh128 "FARSH 128bit" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.417 bytes/cycle - 6914.49 MiB/sec @ 3 ghz
-Alignment 6 - 2.417 bytes/cycle - 6914.82 MiB/sec @ 3 ghz
-Alignment 5 - 2.416 bytes/cycle - 6911.04 MiB/sec @ 3 ghz
-Alignment 4 - 2.408 bytes/cycle - 6888.53 MiB/sec @ 3 ghz
-Alignment 3 - 2.408 bytes/cycle - 6888.02 MiB/sec @ 3 ghz
-Alignment 2 - 2.407 bytes/cycle - 6887.35 MiB/sec @ 3 ghz
-Alignment 1 - 2.411 bytes/cycle - 6899.01 MiB/sec @ 3 ghz
-Alignment 0 - 2.454 bytes/cycle - 7020.04 MiB/sec @ 3 ghz
-Average - 2.417 bytes/cycle - 6915.41 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 250.85 cycles/hash
-Small key speed test - 2-byte keys - 250.57 cycles/hash
-Small key speed test - 3-byte keys - 250.60 cycles/hash
-Small key speed test - 4-byte keys - 157.93 cycles/hash
-Small key speed test - 5-byte keys - 250.39 cycles/hash
-Small key speed test - 6-byte keys - 250.20 cycles/hash
-Small key speed test - 7-byte keys - 251.08 cycles/hash
-Small key speed test - 8-byte keys - 176.27 cycles/hash
-Small key speed test - 9-byte keys - 252.11 cycles/hash
-Small key speed test - 10-byte keys - 251.60 cycles/hash
-Small key speed test - 11-byte keys - 251.58 cycles/hash
-Small key speed test - 12-byte keys - 174.88 cycles/hash
-Small key speed test - 13-byte keys - 252.41 cycles/hash
-Small key speed test - 14-byte keys - 252.59 cycles/hash
-Small key speed test - 15-byte keys - 252.70 cycles/hash
-Small key speed test - 16-byte keys - 178.89 cycles/hash
-Small key speed test - 17-byte keys - 252.49 cycles/hash
-Small key speed test - 18-byte keys - 252.10 cycles/hash
-Small key speed test - 19-byte keys - 251.89 cycles/hash
-Small key speed test - 20-byte keys - 179.34 cycles/hash
-Small key speed test - 21-byte keys - 252.85 cycles/hash
-Small key speed test - 22-byte keys - 252.90 cycles/hash
-Small key speed test - 23-byte keys - 253.05 cycles/hash
-Small key speed test - 24-byte keys - 182.73 cycles/hash
-Small key speed test - 25-byte keys - 250.73 cycles/hash
-Small key speed test - 26-byte keys - 252.04 cycles/hash
-Small key speed test - 27-byte keys - 251.90 cycles/hash
-Small key speed test - 28-byte keys - 180.34 cycles/hash
-Small key speed test - 29-byte keys - 251.91 cycles/hash
-Small key speed test - 30-byte keys - 251.89 cycles/hash
-Small key speed test - 31-byte keys - 251.77 cycles/hash
-Average 234.600 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 643.669 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 542.327 cycles/op (2.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 479.371 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 401.766 cycles/op (4.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 45.141322 seconds
+WARNING: timer resolution is 108 (0x6c) ticks (0x160d52eba3e8 - 0x160d52eba37c). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 2.454 bytes/cycle - 7021.41 MiB/sec @ 3 ghz
+Alignment 6 - 2.455 bytes/cycle - 7022.40 MiB/sec @ 3 ghz
+Alignment 5 - 2.455 bytes/cycle - 7024.99 MiB/sec @ 3 ghz
+Alignment 4 - 2.453 bytes/cycle - 7017.58 MiB/sec @ 3 ghz
+Alignment 3 - 2.454 bytes/cycle - 7022.11 MiB/sec @ 3 ghz
+Alignment 2 - 2.457 bytes/cycle - 7029.53 MiB/sec @ 3 ghz
+Alignment 1 - 2.465 bytes/cycle - 7051.99 MiB/sec @ 3 ghz
+Alignment 0 - 2.535 bytes/cycle - 7253.13 MiB/sec @ 3 ghz
+Average - 2.466 bytes/cycle - 7055.39 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 245.88 cycles/hash
+Small key speed test - 2-byte keys - 245.55 cycles/hash
+Small key speed test - 3-byte keys - 245.60 cycles/hash
+Small key speed test - 4-byte keys - 151.87 cycles/hash
+Small key speed test - 5-byte keys - 245.53 cycles/hash
+Small key speed test - 6-byte keys - 245.42 cycles/hash
+Small key speed test - 7-byte keys - 245.54 cycles/hash
+Small key speed test - 8-byte keys - 168.33 cycles/hash
+Small key speed test - 9-byte keys - 250.90 cycles/hash
+Small key speed test - 10-byte keys - 248.87 cycles/hash
+Small key speed test - 11-byte keys - 250.08 cycles/hash
+Small key speed test - 12-byte keys - 176.86 cycles/hash
+Small key speed test - 13-byte keys - 251.07 cycles/hash
+Small key speed test - 14-byte keys - 250.94 cycles/hash
+Small key speed test - 15-byte keys - 251.22 cycles/hash
+Small key speed test - 16-byte keys - 162.10 cycles/hash
+Small key speed test - 17-byte keys - 250.97 cycles/hash
+Small key speed test - 18-byte keys - 250.87 cycles/hash
+Small key speed test - 19-byte keys - 250.83 cycles/hash
+Small key speed test - 20-byte keys - 176.79 cycles/hash
+Small key speed test - 21-byte keys - 251.75 cycles/hash
+Small key speed test - 22-byte keys - 251.68 cycles/hash
+Small key speed test - 23-byte keys - 251.73 cycles/hash
+Small key speed test - 24-byte keys - 163.95 cycles/hash
+Small key speed test - 25-byte keys - 249.64 cycles/hash
+Small key speed test - 26-byte keys - 250.66 cycles/hash
+Small key speed test - 27-byte keys - 251.71 cycles/hash
+Small key speed test - 28-byte keys - 181.58 cycles/hash
+Small key speed test - 29-byte keys - 249.94 cycles/hash
+Small key speed test - 30-byte keys - 250.46 cycles/hash
+Small key speed test - 31-byte keys - 249.99 cycles/hash
+Small key speed test - 32-byte keys - 173.20 cycles/hash
+Average 229.422 cycles/hash
+Average, weighted by key length freq. 230.685 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 209.190 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 611.297 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 499.347 cycles/op (2.8 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 432.314 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 375.571 cycles/op (4.3 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 45.258035 seconds
--- Testing farsh256 "FARSH 256bit" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.189 bytes/cycle - 3401.80 MiB/sec @ 3 ghz
-Alignment 6 - 1.188 bytes/cycle - 3400.24 MiB/sec @ 3 ghz
-Alignment 5 - 1.189 bytes/cycle - 3401.77 MiB/sec @ 3 ghz
-Alignment 4 - 1.190 bytes/cycle - 3404.96 MiB/sec @ 3 ghz
-Alignment 3 - 1.188 bytes/cycle - 3398.03 MiB/sec @ 3 ghz
-Alignment 2 - 1.188 bytes/cycle - 3397.89 MiB/sec @ 3 ghz
-Alignment 1 - 1.188 bytes/cycle - 3399.72 MiB/sec @ 3 ghz
-Alignment 0 - 1.218 bytes/cycle - 3485.25 MiB/sec @ 3 ghz
-Average - 1.192 bytes/cycle - 3411.21 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 503.09 cycles/hash
-Small key speed test - 2-byte keys - 499.51 cycles/hash
-Small key speed test - 3-byte keys - 499.48 cycles/hash
-Small key speed test - 4-byte keys - 244.45 cycles/hash
-Small key speed test - 5-byte keys - 501.19 cycles/hash
-Small key speed test - 6-byte keys - 501.29 cycles/hash
-Small key speed test - 7-byte keys - 501.43 cycles/hash
-Small key speed test - 8-byte keys - 288.06 cycles/hash
-Small key speed test - 9-byte keys - 500.19 cycles/hash
-Small key speed test - 10-byte keys - 497.74 cycles/hash
-Small key speed test - 11-byte keys - 497.66 cycles/hash
-Small key speed test - 12-byte keys - 272.07 cycles/hash
-Small key speed test - 13-byte keys - 502.22 cycles/hash
-Small key speed test - 14-byte keys - 502.19 cycles/hash
-Small key speed test - 15-byte keys - 502.25 cycles/hash
-Small key speed test - 16-byte keys - 301.56 cycles/hash
-Small key speed test - 17-byte keys - 499.87 cycles/hash
-Small key speed test - 18-byte keys - 499.75 cycles/hash
-Small key speed test - 19-byte keys - 499.98 cycles/hash
-Small key speed test - 20-byte keys - 290.46 cycles/hash
-Small key speed test - 21-byte keys - 500.03 cycles/hash
-Small key speed test - 22-byte keys - 500.82 cycles/hash
-Small key speed test - 23-byte keys - 501.31 cycles/hash
-Small key speed test - 24-byte keys - 296.70 cycles/hash
-Small key speed test - 25-byte keys - 496.95 cycles/hash
-Small key speed test - 26-byte keys - 501.47 cycles/hash
-Small key speed test - 27-byte keys - 501.44 cycles/hash
-Small key speed test - 28-byte keys - 303.57 cycles/hash
-Small key speed test - 29-byte keys - 501.68 cycles/hash
-Small key speed test - 30-byte keys - 500.90 cycles/hash
-Small key speed test - 31-byte keys - 501.70 cycles/hash
-Average 451.968 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 863.768 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 773.487 cycles/op (3.4 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 700.767 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 628.906 cycles/op (2.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 84.295558 seconds
---- Testing jodyhash32 "jodyhash, 32-bit (v5)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.615 bytes/cycle - 1760.06 MiB/sec @ 3 ghz
-Alignment 6 - 0.615 bytes/cycle - 1759.86 MiB/sec @ 3 ghz
-Alignment 5 - 0.614 bytes/cycle - 1757.21 MiB/sec @ 3 ghz
-Alignment 4 - 0.613 bytes/cycle - 1754.94 MiB/sec @ 3 ghz
-Alignment 3 - 0.615 bytes/cycle - 1759.81 MiB/sec @ 3 ghz
-Alignment 2 - 0.615 bytes/cycle - 1759.89 MiB/sec @ 3 ghz
-Alignment 1 - 0.615 bytes/cycle - 1759.65 MiB/sec @ 3 ghz
-Alignment 0 - 0.614 bytes/cycle - 1757.07 MiB/sec @ 3 ghz
-Average - 0.615 bytes/cycle - 1758.56 MiB/sec @ 3 ghz
+WARNING: timer resolution is 108 (0x6c) ticks (0x16334163d08c - 0x16334163d020). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 1.222 bytes/cycle - 3495.90 MiB/sec @ 3 ghz
+Alignment 6 - 1.225 bytes/cycle - 3504.78 MiB/sec @ 3 ghz
+Alignment 5 - 1.203 bytes/cycle - 3442.93 MiB/sec @ 3 ghz
+Alignment 4 - 1.201 bytes/cycle - 3435.55 MiB/sec @ 3 ghz
+Alignment 3 - 1.202 bytes/cycle - 3439.89 MiB/sec @ 3 ghz
+Alignment 2 - 1.205 bytes/cycle - 3448.45 MiB/sec @ 3 ghz
+Alignment 1 - 1.200 bytes/cycle - 3432.51 MiB/sec @ 3 ghz
+Alignment 0 - 1.234 bytes/cycle - 3530.04 MiB/sec @ 3 ghz
+Average - 1.212 bytes/cycle - 3466.26 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 501.35 cycles/hash
+Small key speed test - 2-byte keys - 493.43 cycles/hash
+Small key speed test - 3-byte keys - 493.42 cycles/hash
+Small key speed test - 4-byte keys - 252.12 cycles/hash
+Small key speed test - 5-byte keys - 494.10 cycles/hash
+Small key speed test - 6-byte keys - 493.81 cycles/hash
+Small key speed test - 7-byte keys - 493.82 cycles/hash
+Small key speed test - 8-byte keys - 303.45 cycles/hash
+Small key speed test - 9-byte keys - 492.68 cycles/hash
+Small key speed test - 10-byte keys - 491.77 cycles/hash
+Small key speed test - 11-byte keys - 491.75 cycles/hash
+Small key speed test - 12-byte keys - 271.40 cycles/hash
+Small key speed test - 13-byte keys - 493.81 cycles/hash
+Small key speed test - 14-byte keys - 493.76 cycles/hash
+Small key speed test - 15-byte keys - 493.76 cycles/hash
+Small key speed test - 16-byte keys - 320.59 cycles/hash
+Small key speed test - 17-byte keys - 494.60 cycles/hash
+Small key speed test - 18-byte keys - 491.45 cycles/hash
+Small key speed test - 19-byte keys - 491.42 cycles/hash
+Small key speed test - 20-byte keys - 302.87 cycles/hash
+Small key speed test - 21-byte keys - 494.92 cycles/hash
+Small key speed test - 22-byte keys - 494.91 cycles/hash
+Small key speed test - 23-byte keys - 495.01 cycles/hash
+Small key speed test - 24-byte keys - 303.04 cycles/hash
+Small key speed test - 25-byte keys - 495.05 cycles/hash
+Small key speed test - 26-byte keys - 500.26 cycles/hash
+Small key speed test - 27-byte keys - 500.26 cycles/hash
+Small key speed test - 28-byte keys - 303.50 cycles/hash
+Small key speed test - 29-byte keys - 499.39 cycles/hash
+Small key speed test - 30-byte keys - 499.43 cycles/hash
+Small key speed test - 31-byte keys - 499.44 cycles/hash
+Small key speed test - 32-byte keys - 291.16 cycles/hash
+Average 444.742 cycles/hash
+Average, weighted by key length freq. 445.013 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 408.589 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 817.281 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 735.130 cycles/op (4.4 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 654.733 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 610.226 cycles/op (4.2 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 85.143224 seconds
+--- Testing jodyhash32 "jodyhash, 32-bit (v6)" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 108 (0x6c) ticks (0x167a9b7acce0 - 0x167a9b7acc74). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.616 bytes/cycle - 1762.46 MiB/sec @ 3 ghz
+Alignment 6 - 0.616 bytes/cycle - 1762.34 MiB/sec @ 3 ghz
+Alignment 5 - 0.616 bytes/cycle - 1762.75 MiB/sec @ 3 ghz
+Alignment 4 - 0.616 bytes/cycle - 1762.34 MiB/sec @ 3 ghz
+Alignment 3 - 0.616 bytes/cycle - 1762.60 MiB/sec @ 3 ghz
+Alignment 2 - 0.616 bytes/cycle - 1762.26 MiB/sec @ 3 ghz
+Alignment 1 - 0.616 bytes/cycle - 1762.74 MiB/sec @ 3 ghz
+Alignment 0 - 0.616 bytes/cycle - 1762.16 MiB/sec @ 3 ghz
+Average - 0.616 bytes/cycle - 1762.46 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 19.00 cycles/hash
Small key speed test - 2-byte keys - 19.00 cycles/hash
Small key speed test - 3-byte keys - 19.00 cycles/hash
-Small key speed test - 4-byte keys - 20.00 cycles/hash
+Small key speed test - 4-byte keys - 19.96 cycles/hash
Small key speed test - 5-byte keys - 26.00 cycles/hash
-Small key speed test - 6-byte keys - 26.13 cycles/hash
-Small key speed test - 7-byte keys - 26.23 cycles/hash
+Small key speed test - 6-byte keys - 26.29 cycles/hash
+Small key speed test - 7-byte keys - 26.34 cycles/hash
Small key speed test - 8-byte keys - 26.00 cycles/hash
Small key speed test - 9-byte keys - 33.00 cycles/hash
Small key speed test - 10-byte keys - 33.00 cycles/hash
Small key speed test - 11-byte keys - 33.00 cycles/hash
Small key speed test - 12-byte keys - 33.00 cycles/hash
-Small key speed test - 13-byte keys - 39.62 cycles/hash
-Small key speed test - 14-byte keys - 39.71 cycles/hash
-Small key speed test - 15-byte keys - 39.98 cycles/hash
-Small key speed test - 16-byte keys - 39.00 cycles/hash
-Small key speed test - 17-byte keys - 45.92 cycles/hash
-Small key speed test - 18-byte keys - 45.94 cycles/hash
-Small key speed test - 19-byte keys - 45.96 cycles/hash
+Small key speed test - 13-byte keys - 39.93 cycles/hash
+Small key speed test - 14-byte keys - 39.91 cycles/hash
+Small key speed test - 15-byte keys - 39.86 cycles/hash
+Small key speed test - 16-byte keys - 39.97 cycles/hash
+Small key speed test - 17-byte keys - 46.00 cycles/hash
+Small key speed test - 18-byte keys - 46.00 cycles/hash
+Small key speed test - 19-byte keys - 46.00 cycles/hash
Small key speed test - 20-byte keys - 46.00 cycles/hash
-Small key speed test - 21-byte keys - 52.55 cycles/hash
-Small key speed test - 22-byte keys - 52.50 cycles/hash
-Small key speed test - 23-byte keys - 52.61 cycles/hash
-Small key speed test - 24-byte keys - 52.00 cycles/hash
+Small key speed test - 21-byte keys - 52.00 cycles/hash
+Small key speed test - 22-byte keys - 52.00 cycles/hash
+Small key speed test - 23-byte keys - 52.00 cycles/hash
+Small key speed test - 24-byte keys - 52.84 cycles/hash
Small key speed test - 25-byte keys - 59.00 cycles/hash
-Small key speed test - 26-byte keys - 59.42 cycles/hash
-Small key speed test - 27-byte keys - 59.25 cycles/hash
+Small key speed test - 26-byte keys - 59.00 cycles/hash
+Small key speed test - 27-byte keys - 59.00 cycles/hash
Small key speed test - 28-byte keys - 59.00 cycles/hash
-Small key speed test - 29-byte keys - 65.00 cycles/hash
-Small key speed test - 30-byte keys - 65.51 cycles/hash
-Small key speed test - 31-byte keys - 65.90 cycles/hash
-Average 41.878 cycles/hash
+Small key speed test - 29-byte keys - 65.82 cycles/hash
+Small key speed test - 30-byte keys - 65.80 cycles/hash
+Small key speed test - 31-byte keys - 65.80 cycles/hash
+Small key speed test - 32-byte keys - 65.62 cycles/hash
+Average 42.661 cycles/hash
+Average, weighted by key length freq. 42.727 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.847 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 426.718 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 358.780 cycles/op (7.9 stdv)
+Init std HashMapTest: 394.914 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 330.921 cycles/op (2.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 301.595 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 249.238 cycles/op (4.8 stdv) ....... PASS
+Init fast HashMapTest: 284.738 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 236.085 cycles/op (2.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.609370 seconds
---- Testing jodyhash64 "jodyhash, 64-bit (v5)" POOR
+Verification value is 0x00000001 - Testing took 13.856062 seconds
+--- Testing jodyhash64 "jodyhash, 64-bit (v7.1)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x16863896cba4 - 0x16863896cb38). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.218 bytes/cycle - 3484.50 MiB/sec @ 3 ghz
-Alignment 6 - 1.218 bytes/cycle - 3485.08 MiB/sec @ 3 ghz
-Alignment 5 - 1.219 bytes/cycle - 3486.17 MiB/sec @ 3 ghz
-Alignment 4 - 1.218 bytes/cycle - 3486.12 MiB/sec @ 3 ghz
-Alignment 3 - 1.216 bytes/cycle - 3479.28 MiB/sec @ 3 ghz
-Alignment 2 - 1.217 bytes/cycle - 3481.62 MiB/sec @ 3 ghz
-Alignment 1 - 1.215 bytes/cycle - 3477.38 MiB/sec @ 3 ghz
-Alignment 0 - 1.216 bytes/cycle - 3477.71 MiB/sec @ 3 ghz
-Average - 1.217 bytes/cycle - 3482.23 MiB/sec @ 3 ghz
+Alignment 7 - 1.658 bytes/cycle - 4743.44 MiB/sec @ 3 ghz
+Alignment 6 - 1.658 bytes/cycle - 4744.49 MiB/sec @ 3 ghz
+Alignment 5 - 1.658 bytes/cycle - 4744.30 MiB/sec @ 3 ghz
+Alignment 4 - 1.659 bytes/cycle - 4747.23 MiB/sec @ 3 ghz
+Alignment 3 - 1.658 bytes/cycle - 4742.80 MiB/sec @ 3 ghz
+Alignment 2 - 1.657 bytes/cycle - 4741.89 MiB/sec @ 3 ghz
+Alignment 1 - 1.658 bytes/cycle - 4742.48 MiB/sec @ 3 ghz
+Alignment 0 - 1.988 bytes/cycle - 5688.10 MiB/sec @ 3 ghz
+Average - 1.699 bytes/cycle - 4861.84 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 19.85 cycles/hash
-Small key speed test - 2-byte keys - 19.83 cycles/hash
-Small key speed test - 3-byte keys - 19.84 cycles/hash
-Small key speed test - 4-byte keys - 19.82 cycles/hash
-Small key speed test - 5-byte keys - 19.84 cycles/hash
-Small key speed test - 6-byte keys - 19.80 cycles/hash
-Small key speed test - 7-byte keys - 19.78 cycles/hash
-Small key speed test - 8-byte keys - 20.00 cycles/hash
-Small key speed test - 9-byte keys - 27.00 cycles/hash
-Small key speed test - 10-byte keys - 27.00 cycles/hash
-Small key speed test - 11-byte keys - 27.00 cycles/hash
-Small key speed test - 12-byte keys - 27.00 cycles/hash
-Small key speed test - 13-byte keys - 27.00 cycles/hash
-Small key speed test - 14-byte keys - 27.00 cycles/hash
-Small key speed test - 15-byte keys - 27.00 cycles/hash
-Small key speed test - 16-byte keys - 27.00 cycles/hash
-Small key speed test - 17-byte keys - 33.43 cycles/hash
-Small key speed test - 18-byte keys - 33.60 cycles/hash
-Small key speed test - 19-byte keys - 33.75 cycles/hash
-Small key speed test - 20-byte keys - 33.78 cycles/hash
-Small key speed test - 21-byte keys - 33.85 cycles/hash
-Small key speed test - 22-byte keys - 33.86 cycles/hash
-Small key speed test - 23-byte keys - 33.78 cycles/hash
-Small key speed test - 24-byte keys - 33.00 cycles/hash
-Small key speed test - 25-byte keys - 41.00 cycles/hash
-Small key speed test - 26-byte keys - 41.00 cycles/hash
-Small key speed test - 27-byte keys - 41.00 cycles/hash
-Small key speed test - 28-byte keys - 41.00 cycles/hash
-Small key speed test - 29-byte keys - 41.00 cycles/hash
-Small key speed test - 30-byte keys - 41.00 cycles/hash
-Small key speed test - 31-byte keys - 41.00 cycles/hash
-Average 30.026 cycles/hash
+Small key speed test - 1-byte keys - 34.59 cycles/hash
+Small key speed test - 2-byte keys - 34.50 cycles/hash
+Small key speed test - 3-byte keys - 34.84 cycles/hash
+Small key speed test - 4-byte keys - 34.73 cycles/hash
+Small key speed test - 5-byte keys - 34.65 cycles/hash
+Small key speed test - 6-byte keys - 34.47 cycles/hash
+Small key speed test - 7-byte keys - 34.70 cycles/hash
+Small key speed test - 8-byte keys - 34.91 cycles/hash
+Small key speed test - 9-byte keys - 39.00 cycles/hash
+Small key speed test - 10-byte keys - 39.00 cycles/hash
+Small key speed test - 11-byte keys - 39.00 cycles/hash
+Small key speed test - 12-byte keys - 39.00 cycles/hash
+Small key speed test - 13-byte keys - 39.00 cycles/hash
+Small key speed test - 14-byte keys - 39.00 cycles/hash
+Small key speed test - 15-byte keys - 39.00 cycles/hash
+Small key speed test - 16-byte keys - 39.00 cycles/hash
+Small key speed test - 17-byte keys - 43.96 cycles/hash
+Small key speed test - 18-byte keys - 43.97 cycles/hash
+Small key speed test - 19-byte keys - 44.00 cycles/hash
+Small key speed test - 20-byte keys - 43.94 cycles/hash
+Small key speed test - 21-byte keys - 43.98 cycles/hash
+Small key speed test - 22-byte keys - 43.95 cycles/hash
+Small key speed test - 23-byte keys - 43.97 cycles/hash
+Small key speed test - 24-byte keys - 43.95 cycles/hash
+Small key speed test - 25-byte keys - 48.00 cycles/hash
+Small key speed test - 26-byte keys - 48.00 cycles/hash
+Small key speed test - 27-byte keys - 48.00 cycles/hash
+Small key speed test - 28-byte keys - 48.00 cycles/hash
+Small key speed test - 29-byte keys - 48.00 cycles/hash
+Small key speed test - 30-byte keys - 48.00 cycles/hash
+Small key speed test - 31-byte keys - 48.00 cycles/hash
+Small key speed test - 32-byte keys - 132.45 cycles/hash
+Average 44.048 cycles/hash
+Average, weighted by key length freq. 42.092 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 38.722 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 433.004 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 349.414 cycles/op (7.1 stdv)
+Init std HashMapTest: 404.298 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 363.478 cycles/op (4.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 308.401 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.513 cycles/op (6.2 stdv) ....... PASS
+Init fast HashMapTest: 276.547 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 234.353 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.937864 seconds
+Verification value is 0x00000001 - Testing took 12.278593 seconds
--- Testing lookup3 "Bob Jenkins' lookup3" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x16908338ed28 - 0x16908338ecbc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.862 bytes/cycle - 2465.16 MiB/sec @ 3 ghz
-Alignment 6 - 0.861 bytes/cycle - 2462.74 MiB/sec @ 3 ghz
-Alignment 5 - 0.863 bytes/cycle - 2469.02 MiB/sec @ 3 ghz
-Alignment 4 - 0.863 bytes/cycle - 2469.47 MiB/sec @ 3 ghz
-Alignment 3 - 0.862 bytes/cycle - 2467.28 MiB/sec @ 3 ghz
-Alignment 2 - 0.866 bytes/cycle - 2476.73 MiB/sec @ 3 ghz
-Alignment 1 - 0.860 bytes/cycle - 2461.33 MiB/sec @ 3 ghz
-Alignment 0 - 0.862 bytes/cycle - 2465.26 MiB/sec @ 3 ghz
-Average - 0.862 bytes/cycle - 2467.12 MiB/sec @ 3 ghz
+Alignment 7 - 0.866 bytes/cycle - 2476.91 MiB/sec @ 3 ghz
+Alignment 6 - 0.866 bytes/cycle - 2476.85 MiB/sec @ 3 ghz
+Alignment 5 - 0.866 bytes/cycle - 2476.51 MiB/sec @ 3 ghz
+Alignment 4 - 0.859 bytes/cycle - 2457.73 MiB/sec @ 3 ghz
+Alignment 3 - 0.866 bytes/cycle - 2477.80 MiB/sec @ 3 ghz
+Alignment 2 - 0.865 bytes/cycle - 2474.41 MiB/sec @ 3 ghz
+Alignment 1 - 0.866 bytes/cycle - 2478.01 MiB/sec @ 3 ghz
+Alignment 0 - 0.865 bytes/cycle - 2474.50 MiB/sec @ 3 ghz
+Average - 0.865 bytes/cycle - 2474.09 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 26.96 cycles/hash
-Small key speed test - 2-byte keys - 27.00 cycles/hash
-Small key speed test - 3-byte keys - 27.46 cycles/hash
-Small key speed test - 4-byte keys - 26.97 cycles/hash
-Small key speed test - 5-byte keys - 29.00 cycles/hash
-Small key speed test - 6-byte keys - 29.00 cycles/hash
-Small key speed test - 7-byte keys - 30.30 cycles/hash
-Small key speed test - 8-byte keys - 28.41 cycles/hash
+Small key speed test - 1-byte keys - 26.85 cycles/hash
+Small key speed test - 2-byte keys - 26.94 cycles/hash
+Small key speed test - 3-byte keys - 27.00 cycles/hash
+Small key speed test - 4-byte keys - 26.83 cycles/hash
+Small key speed test - 5-byte keys - 28.99 cycles/hash
+Small key speed test - 6-byte keys - 28.97 cycles/hash
+Small key speed test - 7-byte keys - 29.89 cycles/hash
+Small key speed test - 8-byte keys - 28.00 cycles/hash
Small key speed test - 9-byte keys - 29.00 cycles/hash
Small key speed test - 10-byte keys - 29.00 cycles/hash
Small key speed test - 11-byte keys - 30.00 cycles/hash
Small key speed test - 12-byte keys - 29.00 cycles/hash
-Small key speed test - 13-byte keys - 41.33 cycles/hash
-Small key speed test - 14-byte keys - 41.75 cycles/hash
+Small key speed test - 13-byte keys - 41.00 cycles/hash
+Small key speed test - 14-byte keys - 41.00 cycles/hash
Small key speed test - 15-byte keys - 41.00 cycles/hash
-Small key speed test - 16-byte keys - 41.90 cycles/hash
-Small key speed test - 17-byte keys - 41.97 cycles/hash
-Small key speed test - 18-byte keys - 42.00 cycles/hash
+Small key speed test - 16-byte keys - 41.73 cycles/hash
+Small key speed test - 17-byte keys - 41.82 cycles/hash
+Small key speed test - 18-byte keys - 41.85 cycles/hash
Small key speed test - 19-byte keys - 42.00 cycles/hash
-Small key speed test - 20-byte keys - 42.00 cycles/hash
-Small key speed test - 21-byte keys - 43.00 cycles/hash
-Small key speed test - 22-byte keys - 43.00 cycles/hash
-Small key speed test - 23-byte keys - 42.58 cycles/hash
+Small key speed test - 20-byte keys - 41.83 cycles/hash
+Small key speed test - 21-byte keys - 42.84 cycles/hash
+Small key speed test - 22-byte keys - 42.83 cycles/hash
+Small key speed test - 23-byte keys - 42.00 cycles/hash
Small key speed test - 24-byte keys - 42.00 cycles/hash
-Small key speed test - 25-byte keys - 55.16 cycles/hash
-Small key speed test - 26-byte keys - 55.98 cycles/hash
+Small key speed test - 25-byte keys - 55.00 cycles/hash
+Small key speed test - 26-byte keys - 55.28 cycles/hash
Small key speed test - 27-byte keys - 55.00 cycles/hash
-Small key speed test - 28-byte keys - 55.24 cycles/hash
-Small key speed test - 29-byte keys - 56.00 cycles/hash
-Small key speed test - 30-byte keys - 56.00 cycles/hash
-Small key speed test - 31-byte keys - 56.90 cycles/hash
-Average 39.900 cycles/hash
+Small key speed test - 28-byte keys - 55.00 cycles/hash
+Small key speed test - 29-byte keys - 55.85 cycles/hash
+Small key speed test - 30-byte keys - 55.84 cycles/hash
+Small key speed test - 31-byte keys - 56.00 cycles/hash
+Small key speed test - 32-byte keys - 55.81 cycles/hash
+Average 40.192 cycles/hash
+Average, weighted by key length freq. 39.657 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.295 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 450.243 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 361.465 cycles/op (7.9 stdv)
+Init std HashMapTest: 397.356 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 328.091 cycles/op (1.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 306.811 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 247.476 cycles/op (6.0 stdv) ....... PASS
+Init fast HashMapTest: 286.076 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 238.222 cycles/op (2.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.319431 seconds
---- Testing superfast "Paul Hsieh's SuperFastHash" POOR
+Verification value is 0x00000001 - Testing took 12.493421 seconds
+--- Testing superfast "Paul Hsieh's SuperFastHash, CHAR_MIN:(-0x7f - 1)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x169afbe17034 - 0x169afbe16fec). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.721 bytes/cycle - 2062.43 MiB/sec @ 3 ghz
-Alignment 6 - 0.722 bytes/cycle - 2066.23 MiB/sec @ 3 ghz
-Alignment 5 - 0.721 bytes/cycle - 2062.39 MiB/sec @ 3 ghz
-Alignment 4 - 0.720 bytes/cycle - 2060.45 MiB/sec @ 3 ghz
-Alignment 3 - 0.721 bytes/cycle - 2062.91 MiB/sec @ 3 ghz
-Alignment 2 - 0.720 bytes/cycle - 2060.04 MiB/sec @ 3 ghz
-Alignment 1 - 0.720 bytes/cycle - 2059.54 MiB/sec @ 3 ghz
-Alignment 0 - 0.721 bytes/cycle - 2064.01 MiB/sec @ 3 ghz
-Average - 0.721 bytes/cycle - 2062.25 MiB/sec @ 3 ghz
+Alignment 7 - 0.734 bytes/cycle - 2100.51 MiB/sec @ 3 ghz
+Alignment 6 - 0.734 bytes/cycle - 2100.40 MiB/sec @ 3 ghz
+Alignment 5 - 0.734 bytes/cycle - 2100.81 MiB/sec @ 3 ghz
+Alignment 4 - 0.736 bytes/cycle - 2105.66 MiB/sec @ 3 ghz
+Alignment 3 - 0.734 bytes/cycle - 2100.87 MiB/sec @ 3 ghz
+Alignment 2 - 0.733 bytes/cycle - 2097.27 MiB/sec @ 3 ghz
+Alignment 1 - 0.710 bytes/cycle - 2031.99 MiB/sec @ 3 ghz
+Alignment 0 - 0.716 bytes/cycle - 2048.78 MiB/sec @ 3 ghz
+Average - 0.729 bytes/cycle - 2085.79 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 31.00 cycles/hash
-Small key speed test - 2-byte keys - 29.74 cycles/hash
+Small key speed test - 1-byte keys - 30.98 cycles/hash
+Small key speed test - 2-byte keys - 29.00 cycles/hash
Small key speed test - 3-byte keys - 31.00 cycles/hash
Small key speed test - 4-byte keys - 31.00 cycles/hash
Small key speed test - 5-byte keys - 36.00 cycles/hash
Small key speed test - 6-byte keys - 36.00 cycles/hash
-Small key speed test - 7-byte keys - 36.56 cycles/hash
-Small key speed test - 8-byte keys - 36.31 cycles/hash
-Small key speed test - 9-byte keys - 41.85 cycles/hash
+Small key speed test - 7-byte keys - 36.00 cycles/hash
+Small key speed test - 8-byte keys - 36.00 cycles/hash
+Small key speed test - 9-byte keys - 41.00 cycles/hash
Small key speed test - 10-byte keys - 41.00 cycles/hash
-Small key speed test - 11-byte keys - 42.00 cycles/hash
+Small key speed test - 11-byte keys - 41.75 cycles/hash
Small key speed test - 12-byte keys - 42.00 cycles/hash
-Small key speed test - 13-byte keys - 46.65 cycles/hash
-Small key speed test - 14-byte keys - 46.87 cycles/hash
-Small key speed test - 15-byte keys - 48.00 cycles/hash
+Small key speed test - 13-byte keys - 46.62 cycles/hash
+Small key speed test - 14-byte keys - 46.62 cycles/hash
+Small key speed test - 15-byte keys - 47.60 cycles/hash
Small key speed test - 16-byte keys - 48.00 cycles/hash
-Small key speed test - 17-byte keys - 53.00 cycles/hash
-Small key speed test - 18-byte keys - 53.00 cycles/hash
-Small key speed test - 19-byte keys - 53.00 cycles/hash
-Small key speed test - 20-byte keys - 54.00 cycles/hash
-Small key speed test - 21-byte keys - 58.00 cycles/hash
-Small key speed test - 22-byte keys - 57.67 cycles/hash
-Small key speed test - 23-byte keys - 59.00 cycles/hash
-Small key speed test - 24-byte keys - 58.90 cycles/hash
-Small key speed test - 25-byte keys - 64.00 cycles/hash
-Small key speed test - 26-byte keys - 63.45 cycles/hash
-Small key speed test - 27-byte keys - 64.22 cycles/hash
-Small key speed test - 28-byte keys - 64.14 cycles/hash
-Small key speed test - 29-byte keys - 70.00 cycles/hash
-Small key speed test - 30-byte keys - 68.63 cycles/hash
-Small key speed test - 31-byte keys - 70.00 cycles/hash
-Average 49.516 cycles/hash
+Small key speed test - 17-byte keys - 52.73 cycles/hash
+Small key speed test - 18-byte keys - 52.69 cycles/hash
+Small key speed test - 19-byte keys - 52.75 cycles/hash
+Small key speed test - 20-byte keys - 52.95 cycles/hash
+Small key speed test - 21-byte keys - 57.86 cycles/hash
+Small key speed test - 22-byte keys - 57.19 cycles/hash
+Small key speed test - 23-byte keys - 58.70 cycles/hash
+Small key speed test - 24-byte keys - 58.87 cycles/hash
+Small key speed test - 25-byte keys - 63.84 cycles/hash
+Small key speed test - 26-byte keys - 63.00 cycles/hash
+Small key speed test - 27-byte keys - 63.86 cycles/hash
+Small key speed test - 28-byte keys - 64.00 cycles/hash
+Small key speed test - 29-byte keys - 69.87 cycles/hash
+Small key speed test - 30-byte keys - 68.83 cycles/hash
+Small key speed test - 31-byte keys - 69.00 cycles/hash
+Small key speed test - 32-byte keys - 69.92 cycles/hash
+Average 49.894 cycles/hash
+Average, weighted by key length freq. 49.815 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 44.027 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 440.187 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 365.317 cycles/op (6.6 stdv)
+Init std HashMapTest: 397.551 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 332.004 cycles/op (3.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 299.621 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 247.196 cycles/op (4.2 stdv) ....... PASS
+Init fast HashMapTest: 283.896 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 230.758 cycles/op (3.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.453262 seconds
+Verification value is 0x00000001 - Testing took 14.682629 seconds
--- Testing MurmurOAAT "Murmur one-at-a-time" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x16a74a6ff148 - 0x16a74a6ff0dc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.177 bytes/cycle - 507.01 MiB/sec @ 3 ghz
-Alignment 6 - 0.177 bytes/cycle - 507.18 MiB/sec @ 3 ghz
-Alignment 5 - 0.177 bytes/cycle - 506.89 MiB/sec @ 3 ghz
-Alignment 4 - 0.177 bytes/cycle - 507.07 MiB/sec @ 3 ghz
-Alignment 3 - 0.177 bytes/cycle - 506.77 MiB/sec @ 3 ghz
-Alignment 2 - 0.177 bytes/cycle - 507.48 MiB/sec @ 3 ghz
-Alignment 1 - 0.177 bytes/cycle - 507.67 MiB/sec @ 3 ghz
-Alignment 0 - 0.177 bytes/cycle - 507.03 MiB/sec @ 3 ghz
-Average - 0.177 bytes/cycle - 507.14 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 18.31 cycles/hash
-Small key speed test - 2-byte keys - 24.50 cycles/hash
-Small key speed test - 3-byte keys - 30.00 cycles/hash
-Small key speed test - 4-byte keys - 36.00 cycles/hash
-Small key speed test - 5-byte keys - 41.16 cycles/hash
-Small key speed test - 6-byte keys - 46.84 cycles/hash
-Small key speed test - 7-byte keys - 52.51 cycles/hash
-Small key speed test - 8-byte keys - 58.21 cycles/hash
-Small key speed test - 9-byte keys - 63.75 cycles/hash
-Small key speed test - 10-byte keys - 69.93 cycles/hash
-Small key speed test - 11-byte keys - 74.80 cycles/hash
-Small key speed test - 12-byte keys - 81.00 cycles/hash
-Small key speed test - 13-byte keys - 86.70 cycles/hash
-Small key speed test - 14-byte keys - 92.00 cycles/hash
-Small key speed test - 15-byte keys - 97.64 cycles/hash
-Small key speed test - 16-byte keys - 103.50 cycles/hash
-Small key speed test - 17-byte keys - 108.97 cycles/hash
-Small key speed test - 18-byte keys - 114.65 cycles/hash
-Small key speed test - 19-byte keys - 120.11 cycles/hash
-Small key speed test - 20-byte keys - 125.58 cycles/hash
-Small key speed test - 21-byte keys - 131.54 cycles/hash
-Small key speed test - 22-byte keys - 136.64 cycles/hash
-Small key speed test - 23-byte keys - 142.58 cycles/hash
-Small key speed test - 24-byte keys - 148.64 cycles/hash
-Small key speed test - 25-byte keys - 153.73 cycles/hash
-Small key speed test - 26-byte keys - 159.21 cycles/hash
-Small key speed test - 27-byte keys - 164.00 cycles/hash
-Small key speed test - 28-byte keys - 170.31 cycles/hash
-Small key speed test - 29-byte keys - 176.23 cycles/hash
-Small key speed test - 30-byte keys - 181.00 cycles/hash
-Small key speed test - 31-byte keys - 187.55 cycles/hash
-Average 103.148 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 455.134 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 374.599 cycles/op (7.4 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 325.453 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 246.660 cycles/op (6.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 32.189398 seconds
---- Testing Crap8 "Crap8" POOR
+Alignment 7 - 0.180 bytes/cycle - 513.72 MiB/sec @ 3 ghz
+Alignment 6 - 0.180 bytes/cycle - 513.73 MiB/sec @ 3 ghz
+Alignment 5 - 0.180 bytes/cycle - 513.63 MiB/sec @ 3 ghz
+Alignment 4 - 0.180 bytes/cycle - 513.75 MiB/sec @ 3 ghz
+Alignment 3 - 0.180 bytes/cycle - 513.83 MiB/sec @ 3 ghz
+Alignment 2 - 0.180 bytes/cycle - 513.75 MiB/sec @ 3 ghz
+Alignment 1 - 0.180 bytes/cycle - 513.76 MiB/sec @ 3 ghz
+Alignment 0 - 0.180 bytes/cycle - 513.83 MiB/sec @ 3 ghz
+Average - 0.180 bytes/cycle - 513.75 MiB/sec @ 3 ghz
-[[[ Speed Tests ]]]
+Small key speed test - 1-byte keys - 18.00 cycles/hash
+Small key speed test - 2-byte keys - 24.00 cycles/hash
+Small key speed test - 3-byte keys - 29.88 cycles/hash
+Small key speed test - 4-byte keys - 35.00 cycles/hash
+Small key speed test - 5-byte keys - 41.00 cycles/hash
+Small key speed test - 6-byte keys - 46.00 cycles/hash
+Small key speed test - 7-byte keys - 52.00 cycles/hash
+Small key speed test - 8-byte keys - 57.77 cycles/hash
+Small key speed test - 9-byte keys - 63.00 cycles/hash
+Small key speed test - 10-byte keys - 68.92 cycles/hash
+Small key speed test - 11-byte keys - 74.00 cycles/hash
+Small key speed test - 12-byte keys - 79.86 cycles/hash
+Small key speed test - 13-byte keys - 85.65 cycles/hash
+Small key speed test - 14-byte keys - 90.78 cycles/hash
+Small key speed test - 15-byte keys - 96.63 cycles/hash
+Small key speed test - 16-byte keys - 102.00 cycles/hash
+Small key speed test - 17-byte keys - 107.63 cycles/hash
+Small key speed test - 18-byte keys - 113.00 cycles/hash
+Small key speed test - 19-byte keys - 118.72 cycles/hash
+Small key speed test - 20-byte keys - 124.88 cycles/hash
+Small key speed test - 21-byte keys - 131.24 cycles/hash
+Small key speed test - 22-byte keys - 136.00 cycles/hash
+Small key speed test - 23-byte keys - 141.95 cycles/hash
+Small key speed test - 24-byte keys - 147.79 cycles/hash
+Small key speed test - 25-byte keys - 152.95 cycles/hash
+Small key speed test - 26-byte keys - 159.03 cycles/hash
+Small key speed test - 27-byte keys - 164.08 cycles/hash
+Small key speed test - 28-byte keys - 169.96 cycles/hash
+Small key speed test - 29-byte keys - 175.95 cycles/hash
+Small key speed test - 30-byte keys - 180.93 cycles/hash
+Small key speed test - 31-byte keys - 186.86 cycles/hash
+Small key speed test - 32-byte keys - 191.97 cycles/hash
+Average 105.232 cycles/hash
+Average, weighted by key length freq. 104.806 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 82.076 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 422.553 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 341.435 cycles/op (2.6 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 298.952 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 244.805 cycles/op (3.8 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 32.822674 seconds
+--- Testing Crap8 "Crap8" POOR
+
+[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x16c2cc3b0e50 - 0x16c2cc3b0e08). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.078 bytes/cycle - 3085.03 MiB/sec @ 3 ghz
-Alignment 6 - 1.083 bytes/cycle - 3098.64 MiB/sec @ 3 ghz
-Alignment 5 - 1.084 bytes/cycle - 3100.03 MiB/sec @ 3 ghz
-Alignment 4 - 1.083 bytes/cycle - 3099.65 MiB/sec @ 3 ghz
-Alignment 3 - 1.082 bytes/cycle - 3094.89 MiB/sec @ 3 ghz
-Alignment 2 - 1.083 bytes/cycle - 3099.87 MiB/sec @ 3 ghz
-Alignment 1 - 1.083 bytes/cycle - 3099.86 MiB/sec @ 3 ghz
-Alignment 0 - 1.083 bytes/cycle - 3099.78 MiB/sec @ 3 ghz
-Average - 1.083 bytes/cycle - 3097.22 MiB/sec @ 3 ghz
+Alignment 7 - 1.078 bytes/cycle - 3083.14 MiB/sec @ 3 ghz
+Alignment 6 - 1.078 bytes/cycle - 3083.28 MiB/sec @ 3 ghz
+Alignment 5 - 1.077 bytes/cycle - 3082.72 MiB/sec @ 3 ghz
+Alignment 4 - 1.078 bytes/cycle - 3083.29 MiB/sec @ 3 ghz
+Alignment 3 - 1.078 bytes/cycle - 3083.22 MiB/sec @ 3 ghz
+Alignment 2 - 1.075 bytes/cycle - 3076.61 MiB/sec @ 3 ghz
+Alignment 1 - 1.074 bytes/cycle - 3072.41 MiB/sec @ 3 ghz
+Alignment 0 - 1.078 bytes/cycle - 3083.63 MiB/sec @ 3 ghz
+Average - 1.077 bytes/cycle - 3081.04 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 24.90 cycles/hash
-Small key speed test - 2-byte keys - 24.65 cycles/hash
-Small key speed test - 3-byte keys - 24.42 cycles/hash
-Small key speed test - 4-byte keys - 23.12 cycles/hash
+Small key speed test - 1-byte keys - 24.78 cycles/hash
+Small key speed test - 2-byte keys - 24.81 cycles/hash
+Small key speed test - 3-byte keys - 24.81 cycles/hash
+Small key speed test - 4-byte keys - 23.87 cycles/hash
Small key speed test - 5-byte keys - 27.00 cycles/hash
Small key speed test - 6-byte keys - 27.00 cycles/hash
Small key speed test - 7-byte keys - 27.00 cycles/hash
Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 31.34 cycles/hash
-Small key speed test - 10-byte keys - 31.00 cycles/hash
-Small key speed test - 11-byte keys - 31.00 cycles/hash
-Small key speed test - 12-byte keys - 31.97 cycles/hash
+Small key speed test - 9-byte keys - 32.00 cycles/hash
+Small key speed test - 10-byte keys - 32.00 cycles/hash
+Small key speed test - 11-byte keys - 32.00 cycles/hash
+Small key speed test - 12-byte keys - 32.00 cycles/hash
Small key speed test - 13-byte keys - 35.00 cycles/hash
Small key speed test - 14-byte keys - 35.00 cycles/hash
Small key speed test - 15-byte keys - 35.00 cycles/hash
-Small key speed test - 16-byte keys - 35.32 cycles/hash
+Small key speed test - 16-byte keys - 35.87 cycles/hash
Small key speed test - 17-byte keys - 39.00 cycles/hash
Small key speed test - 18-byte keys - 39.00 cycles/hash
Small key speed test - 19-byte keys - 39.00 cycles/hash
-Small key speed test - 20-byte keys - 38.98 cycles/hash
-Small key speed test - 21-byte keys - 42.16 cycles/hash
-Small key speed test - 22-byte keys - 42.19 cycles/hash
-Small key speed test - 23-byte keys - 42.00 cycles/hash
+Small key speed test - 20-byte keys - 39.00 cycles/hash
+Small key speed test - 21-byte keys - 42.75 cycles/hash
+Small key speed test - 22-byte keys - 42.67 cycles/hash
+Small key speed test - 23-byte keys - 42.72 cycles/hash
Small key speed test - 24-byte keys - 42.00 cycles/hash
-Small key speed test - 25-byte keys - 46.88 cycles/hash
-Small key speed test - 26-byte keys - 46.16 cycles/hash
-Small key speed test - 27-byte keys - 46.24 cycles/hash
+Small key speed test - 25-byte keys - 46.91 cycles/hash
+Small key speed test - 26-byte keys - 46.86 cycles/hash
+Small key speed test - 27-byte keys - 46.88 cycles/hash
Small key speed test - 28-byte keys - 46.00 cycles/hash
-Small key speed test - 29-byte keys - 50.00 cycles/hash
-Small key speed test - 30-byte keys - 50.00 cycles/hash
-Small key speed test - 31-byte keys - 50.00 cycles/hash
-Average 36.494 cycles/hash
+Small key speed test - 29-byte keys - 49.99 cycles/hash
+Small key speed test - 30-byte keys - 49.99 cycles/hash
+Small key speed test - 31-byte keys - 49.99 cycles/hash
+Small key speed test - 32-byte keys - 49.98 cycles/hash
+Average 37.152 cycles/hash
+Average, weighted by key length freq. 37.144 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 33.419 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 426.629 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 364.623 cycles/op (8.0 stdv)
+Init std HashMapTest: 386.392 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 326.887 cycles/op (0.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 322.121 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 252.623 cycles/op (5.7 stdv) ....... PASS
+Init fast HashMapTest: 284.863 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 234.943 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.302233 seconds
+Verification value is 0x00000001 - Testing took 11.480721 seconds
--- Testing xxHash32 "xxHash, 32-bit for x86" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x16cc6ba09518 - 0x16cc6ba094ac). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.051 bytes/cycle - 5868.32 MiB/sec @ 3 ghz
-Alignment 6 - 2.052 bytes/cycle - 5871.06 MiB/sec @ 3 ghz
-Alignment 5 - 2.052 bytes/cycle - 5872.04 MiB/sec @ 3 ghz
-Alignment 4 - 2.119 bytes/cycle - 6061.47 MiB/sec @ 3 ghz
-Alignment 3 - 2.039 bytes/cycle - 5834.02 MiB/sec @ 3 ghz
-Alignment 2 - 2.039 bytes/cycle - 5834.45 MiB/sec @ 3 ghz
-Alignment 1 - 2.038 bytes/cycle - 5831.91 MiB/sec @ 3 ghz
-Alignment 0 - 2.098 bytes/cycle - 6002.04 MiB/sec @ 3 ghz
-Average - 2.061 bytes/cycle - 5896.91 MiB/sec @ 3 ghz
+Alignment 7 - 2.105 bytes/cycle - 6021.47 MiB/sec @ 3 ghz
+Alignment 6 - 2.106 bytes/cycle - 6024.85 MiB/sec @ 3 ghz
+Alignment 5 - 2.106 bytes/cycle - 6025.30 MiB/sec @ 3 ghz
+Alignment 4 - 2.177 bytes/cycle - 6228.36 MiB/sec @ 3 ghz
+Alignment 3 - 2.094 bytes/cycle - 5989.76 MiB/sec @ 3 ghz
+Alignment 2 - 2.095 bytes/cycle - 5994.46 MiB/sec @ 3 ghz
+Alignment 1 - 2.095 bytes/cycle - 5994.49 MiB/sec @ 3 ghz
+Alignment 0 - 2.180 bytes/cycle - 6236.23 MiB/sec @ 3 ghz
+Average - 2.120 bytes/cycle - 6064.37 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 32.00 cycles/hash
-Small key speed test - 2-byte keys - 36.00 cycles/hash
-Small key speed test - 3-byte keys - 41.00 cycles/hash
-Small key speed test - 4-byte keys - 32.00 cycles/hash
+Small key speed test - 1-byte keys - 31.00 cycles/hash
+Small key speed test - 2-byte keys - 35.64 cycles/hash
+Small key speed test - 3-byte keys - 40.26 cycles/hash
+Small key speed test - 4-byte keys - 31.00 cycles/hash
Small key speed test - 5-byte keys - 36.00 cycles/hash
-Small key speed test - 6-byte keys - 41.73 cycles/hash
-Small key speed test - 7-byte keys - 46.00 cycles/hash
-Small key speed test - 8-byte keys - 37.00 cycles/hash
-Small key speed test - 9-byte keys - 42.50 cycles/hash
-Small key speed test - 10-byte keys - 46.00 cycles/hash
-Small key speed test - 11-byte keys - 51.24 cycles/hash
-Small key speed test - 12-byte keys - 43.00 cycles/hash
-Small key speed test - 13-byte keys - 47.00 cycles/hash
-Small key speed test - 14-byte keys - 50.45 cycles/hash
-Small key speed test - 15-byte keys - 55.00 cycles/hash
-Small key speed test - 16-byte keys - 39.00 cycles/hash
-Small key speed test - 17-byte keys - 45.00 cycles/hash
-Small key speed test - 18-byte keys - 49.79 cycles/hash
-Small key speed test - 19-byte keys - 54.00 cycles/hash
-Small key speed test - 20-byte keys - 45.00 cycles/hash
-Small key speed test - 21-byte keys - 50.22 cycles/hash
-Small key speed test - 22-byte keys - 53.79 cycles/hash
-Small key speed test - 23-byte keys - 59.00 cycles/hash
-Small key speed test - 24-byte keys - 50.00 cycles/hash
-Small key speed test - 25-byte keys - 55.43 cycles/hash
-Small key speed test - 26-byte keys - 58.73 cycles/hash
-Small key speed test - 27-byte keys - 63.32 cycles/hash
-Small key speed test - 28-byte keys - 54.00 cycles/hash
-Small key speed test - 29-byte keys - 59.00 cycles/hash
-Small key speed test - 30-byte keys - 63.95 cycles/hash
-Small key speed test - 31-byte keys - 69.23 cycles/hash
-Average 48.593 cycles/hash
+Small key speed test - 6-byte keys - 40.79 cycles/hash
+Small key speed test - 7-byte keys - 45.20 cycles/hash
+Small key speed test - 8-byte keys - 36.00 cycles/hash
+Small key speed test - 9-byte keys - 41.15 cycles/hash
+Small key speed test - 10-byte keys - 45.00 cycles/hash
+Small key speed test - 11-byte keys - 50.00 cycles/hash
+Small key speed test - 12-byte keys - 42.00 cycles/hash
+Small key speed test - 13-byte keys - 46.00 cycles/hash
+Small key speed test - 14-byte keys - 49.00 cycles/hash
+Small key speed test - 15-byte keys - 54.62 cycles/hash
+Small key speed test - 16-byte keys - 38.00 cycles/hash
+Small key speed test - 17-byte keys - 44.00 cycles/hash
+Small key speed test - 18-byte keys - 47.44 cycles/hash
+Small key speed test - 19-byte keys - 53.00 cycles/hash
+Small key speed test - 20-byte keys - 44.00 cycles/hash
+Small key speed test - 21-byte keys - 55.09 cycles/hash
+Small key speed test - 22-byte keys - 65.00 cycles/hash
+Small key speed test - 23-byte keys - 72.00 cycles/hash
+Small key speed test - 24-byte keys - 61.00 cycles/hash
+Small key speed test - 25-byte keys - 53.62 cycles/hash
+Small key speed test - 26-byte keys - 57.00 cycles/hash
+Small key speed test - 27-byte keys - 62.00 cycles/hash
+Small key speed test - 28-byte keys - 53.00 cycles/hash
+Small key speed test - 29-byte keys - 58.00 cycles/hash
+Small key speed test - 30-byte keys - 62.00 cycles/hash
+Small key speed test - 31-byte keys - 67.60 cycles/hash
+Small key speed test - 32-byte keys - 47.00 cycles/hash
+Average 48.856 cycles/hash
+Average, weighted by key length freq. 49.152 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 41.478 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 530.668 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 379.135 cycles/op (24.1 stdv)
+Init std HashMapTest: 421.626 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 328.603 cycles/op (2.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 324.782 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 248.973 cycles/op (7.3 stdv) ....... PASS
+Init fast HashMapTest: 295.366 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 234.274 cycles/op (2.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.581167 seconds
+Verification value is 0x00000001 - Testing took 12.671698 seconds
--- Testing Murmur1 "MurmurHash1" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x16d70bb477c8 - 0x16d70bb47780). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 0.721 bytes/cycle - 2064.16 MiB/sec @ 3 ghz
-Alignment 6 - 0.722 bytes/cycle - 2066.10 MiB/sec @ 3 ghz
-Alignment 5 - 0.722 bytes/cycle - 2065.95 MiB/sec @ 3 ghz
-Alignment 4 - 0.722 bytes/cycle - 2066.02 MiB/sec @ 3 ghz
-Alignment 3 - 0.722 bytes/cycle - 2065.98 MiB/sec @ 3 ghz
-Alignment 2 - 0.722 bytes/cycle - 2065.98 MiB/sec @ 3 ghz
-Alignment 1 - 0.722 bytes/cycle - 2065.99 MiB/sec @ 3 ghz
-Alignment 0 - 0.722 bytes/cycle - 2065.98 MiB/sec @ 3 ghz
-Average - 0.722 bytes/cycle - 2065.77 MiB/sec @ 3 ghz
+Alignment 7 - 0.592 bytes/cycle - 1694.96 MiB/sec @ 3 ghz
+Alignment 6 - 0.593 bytes/cycle - 1697.99 MiB/sec @ 3 ghz
+Alignment 5 - 0.716 bytes/cycle - 2047.45 MiB/sec @ 3 ghz
+Alignment 4 - 0.713 bytes/cycle - 2041.06 MiB/sec @ 3 ghz
+Alignment 3 - 0.713 bytes/cycle - 2040.23 MiB/sec @ 3 ghz
+Alignment 2 - 0.713 bytes/cycle - 2040.43 MiB/sec @ 3 ghz
+Alignment 1 - 0.713 bytes/cycle - 2040.37 MiB/sec @ 3 ghz
+Alignment 0 - 0.713 bytes/cycle - 2040.39 MiB/sec @ 3 ghz
+Average - 0.683 bytes/cycle - 1955.36 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 27.91 cycles/hash
-Small key speed test - 2-byte keys - 29.42 cycles/hash
-Small key speed test - 3-byte keys - 30.98 cycles/hash
-Small key speed test - 4-byte keys - 27.97 cycles/hash
-Small key speed test - 5-byte keys - 34.00 cycles/hash
-Small key speed test - 6-byte keys - 34.99 cycles/hash
-Small key speed test - 7-byte keys - 35.74 cycles/hash
-Small key speed test - 8-byte keys - 33.99 cycles/hash
+Small key speed test - 1-byte keys - 28.00 cycles/hash
+Small key speed test - 2-byte keys - 30.00 cycles/hash
+Small key speed test - 3-byte keys - 31.00 cycles/hash
+Small key speed test - 4-byte keys - 28.00 cycles/hash
+Small key speed test - 5-byte keys - 34.13 cycles/hash
+Small key speed test - 6-byte keys - 35.00 cycles/hash
+Small key speed test - 7-byte keys - 35.97 cycles/hash
+Small key speed test - 8-byte keys - 34.00 cycles/hash
Small key speed test - 9-byte keys - 39.00 cycles/hash
-Small key speed test - 10-byte keys - 40.00 cycles/hash
-Small key speed test - 11-byte keys - 41.13 cycles/hash
-Small key speed test - 12-byte keys - 39.00 cycles/hash
-Small key speed test - 13-byte keys - 44.99 cycles/hash
-Small key speed test - 14-byte keys - 45.00 cycles/hash
-Small key speed test - 15-byte keys - 47.00 cycles/hash
+Small key speed test - 10-byte keys - 41.00 cycles/hash
+Small key speed test - 11-byte keys - 42.00 cycles/hash
+Small key speed test - 12-byte keys - 39.56 cycles/hash
+Small key speed test - 13-byte keys - 45.00 cycles/hash
+Small key speed test - 14-byte keys - 46.97 cycles/hash
+Small key speed test - 15-byte keys - 47.81 cycles/hash
Small key speed test - 16-byte keys - 45.00 cycles/hash
-Small key speed test - 17-byte keys - 50.00 cycles/hash
-Small key speed test - 18-byte keys - 51.18 cycles/hash
-Small key speed test - 19-byte keys - 52.28 cycles/hash
-Small key speed test - 20-byte keys - 50.00 cycles/hash
-Small key speed test - 21-byte keys - 55.96 cycles/hash
-Small key speed test - 22-byte keys - 56.89 cycles/hash
-Small key speed test - 23-byte keys - 57.48 cycles/hash
-Small key speed test - 24-byte keys - 55.00 cycles/hash
-Small key speed test - 25-byte keys - 61.96 cycles/hash
+Small key speed test - 17-byte keys - 50.99 cycles/hash
+Small key speed test - 18-byte keys - 52.00 cycles/hash
+Small key speed test - 19-byte keys - 53.00 cycles/hash
+Small key speed test - 20-byte keys - 50.85 cycles/hash
+Small key speed test - 21-byte keys - 56.85 cycles/hash
+Small key speed test - 22-byte keys - 57.00 cycles/hash
+Small key speed test - 23-byte keys - 58.00 cycles/hash
+Small key speed test - 24-byte keys - 56.00 cycles/hash
+Small key speed test - 25-byte keys - 62.92 cycles/hash
Small key speed test - 26-byte keys - 63.00 cycles/hash
-Small key speed test - 27-byte keys - 63.00 cycles/hash
-Small key speed test - 28-byte keys - 61.00 cycles/hash
-Small key speed test - 29-byte keys - 66.22 cycles/hash
-Small key speed test - 30-byte keys - 67.29 cycles/hash
-Small key speed test - 31-byte keys - 69.00 cycles/hash
-Average 47.625 cycles/hash
+Small key speed test - 27-byte keys - 64.00 cycles/hash
+Small key speed test - 28-byte keys - 61.95 cycles/hash
+Small key speed test - 29-byte keys - 67.00 cycles/hash
+Small key speed test - 30-byte keys - 68.93 cycles/hash
+Small key speed test - 31-byte keys - 70.00 cycles/hash
+Small key speed test - 32-byte keys - 67.95 cycles/hash
+Average 48.840 cycles/hash
+Average, weighted by key length freq. 48.807 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 42.101 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 438.996 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 366.553 cycles/op (6.1 stdv)
+Init std HashMapTest: 417.260 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 337.912 cycles/op (3.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.060 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 247.082 cycles/op (4.3 stdv) ....... PASS
+Init fast HashMapTest: 289.771 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 236.245 cycles/op (2.2 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.120696 seconds
+Verification value is 0x00000001 - Testing took 14.829522 seconds
--- Testing Murmur2 "MurmurHash2 for x86, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x16e3799e52c8 - 0x16e3799e525c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.066 bytes/cycle - 3048.85 MiB/sec @ 3 ghz
-Alignment 6 - 1.064 bytes/cycle - 3042.91 MiB/sec @ 3 ghz
-Alignment 5 - 1.064 bytes/cycle - 3045.25 MiB/sec @ 3 ghz
-Alignment 4 - 1.063 bytes/cycle - 3042.36 MiB/sec @ 3 ghz
-Alignment 3 - 1.065 bytes/cycle - 3048.00 MiB/sec @ 3 ghz
-Alignment 2 - 1.062 bytes/cycle - 3038.71 MiB/sec @ 3 ghz
-Alignment 1 - 1.063 bytes/cycle - 3042.43 MiB/sec @ 3 ghz
-Alignment 0 - 1.063 bytes/cycle - 3041.74 MiB/sec @ 3 ghz
-Average - 1.064 bytes/cycle - 3043.78 MiB/sec @ 3 ghz
+Alignment 7 - 1.077 bytes/cycle - 3082.42 MiB/sec @ 3 ghz
+Alignment 6 - 1.077 bytes/cycle - 3081.65 MiB/sec @ 3 ghz
+Alignment 5 - 1.077 bytes/cycle - 3081.39 MiB/sec @ 3 ghz
+Alignment 4 - 1.077 bytes/cycle - 3082.23 MiB/sec @ 3 ghz
+Alignment 3 - 1.077 bytes/cycle - 3082.03 MiB/sec @ 3 ghz
+Alignment 2 - 1.077 bytes/cycle - 3082.09 MiB/sec @ 3 ghz
+Alignment 1 - 1.077 bytes/cycle - 3082.30 MiB/sec @ 3 ghz
+Alignment 0 - 1.077 bytes/cycle - 3082.14 MiB/sec @ 3 ghz
+Average - 1.077 bytes/cycle - 3082.03 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 23.61 cycles/hash
+Small key speed test - 1-byte keys - 23.00 cycles/hash
Small key speed test - 2-byte keys - 25.00 cycles/hash
Small key speed test - 3-byte keys - 26.00 cycles/hash
-Small key speed test - 4-byte keys - 28.19 cycles/hash
-Small key speed test - 5-byte keys - 32.79 cycles/hash
-Small key speed test - 6-byte keys - 33.00 cycles/hash
-Small key speed test - 7-byte keys - 34.00 cycles/hash
-Small key speed test - 8-byte keys - 33.00 cycles/hash
-Small key speed test - 9-byte keys - 37.00 cycles/hash
+Small key speed test - 4-byte keys - 28.00 cycles/hash
+Small key speed test - 5-byte keys - 32.00 cycles/hash
+Small key speed test - 6-byte keys - 32.81 cycles/hash
+Small key speed test - 7-byte keys - 33.25 cycles/hash
+Small key speed test - 8-byte keys - 31.86 cycles/hash
+Small key speed test - 9-byte keys - 36.00 cycles/hash
Small key speed test - 10-byte keys - 37.00 cycles/hash
-Small key speed test - 11-byte keys - 38.00 cycles/hash
-Small key speed test - 12-byte keys - 37.00 cycles/hash
-Small key speed test - 13-byte keys - 40.00 cycles/hash
-Small key speed test - 14-byte keys - 41.00 cycles/hash
-Small key speed test - 15-byte keys - 42.00 cycles/hash
-Small key speed test - 16-byte keys - 40.00 cycles/hash
-Small key speed test - 17-byte keys - 44.00 cycles/hash
-Small key speed test - 18-byte keys - 44.41 cycles/hash
-Small key speed test - 19-byte keys - 45.62 cycles/hash
-Small key speed test - 20-byte keys - 44.00 cycles/hash
-Small key speed test - 21-byte keys - 47.76 cycles/hash
-Small key speed test - 22-byte keys - 48.59 cycles/hash
-Small key speed test - 23-byte keys - 49.77 cycles/hash
-Small key speed test - 24-byte keys - 47.86 cycles/hash
-Small key speed test - 25-byte keys - 51.79 cycles/hash
-Small key speed test - 26-byte keys - 52.00 cycles/hash
-Small key speed test - 27-byte keys - 53.71 cycles/hash
-Small key speed test - 28-byte keys - 51.49 cycles/hash
-Small key speed test - 29-byte keys - 55.00 cycles/hash
-Small key speed test - 30-byte keys - 56.28 cycles/hash
-Small key speed test - 31-byte keys - 57.40 cycles/hash
-Average 41.847 cycles/hash
+Small key speed test - 11-byte keys - 37.00 cycles/hash
+Small key speed test - 12-byte keys - 36.98 cycles/hash
+Small key speed test - 13-byte keys - 39.66 cycles/hash
+Small key speed test - 14-byte keys - 40.00 cycles/hash
+Small key speed test - 15-byte keys - 41.00 cycles/hash
+Small key speed test - 16-byte keys - 39.91 cycles/hash
+Small key speed test - 17-byte keys - 43.22 cycles/hash
+Small key speed test - 18-byte keys - 44.30 cycles/hash
+Small key speed test - 19-byte keys - 45.00 cycles/hash
+Small key speed test - 20-byte keys - 43.00 cycles/hash
+Small key speed test - 21-byte keys - 47.00 cycles/hash
+Small key speed test - 22-byte keys - 47.92 cycles/hash
+Small key speed test - 23-byte keys - 48.93 cycles/hash
+Small key speed test - 24-byte keys - 47.00 cycles/hash
+Small key speed test - 25-byte keys - 50.81 cycles/hash
+Small key speed test - 26-byte keys - 51.79 cycles/hash
+Small key speed test - 27-byte keys - 52.78 cycles/hash
+Small key speed test - 28-byte keys - 50.83 cycles/hash
+Small key speed test - 29-byte keys - 54.46 cycles/hash
+Small key speed test - 30-byte keys - 55.00 cycles/hash
+Small key speed test - 31-byte keys - 56.00 cycles/hash
+Small key speed test - 32-byte keys - 54.44 cycles/hash
+Average 41.624 cycles/hash
+Average, weighted by key length freq. 42.055 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 37.809 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 437.224 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 364.608 cycles/op (8.3 stdv)
+Init std HashMapTest: 408.502 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 330.331 cycles/op (2.1 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 314.973 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 249.458 cycles/op (6.2 stdv) ....... PASS
+Init fast HashMapTest: 282.303 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 250.721 cycles/op (3.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.276019 seconds
+Verification value is 0x00000001 - Testing took 12.350672 seconds
--- Testing Murmur2A "MurmurHash2A for x86, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x16edd39f29c8 - 0x16edd39f2980). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.073 bytes/cycle - 3069.49 MiB/sec @ 3 ghz
-Alignment 6 - 1.076 bytes/cycle - 3078.74 MiB/sec @ 3 ghz
-Alignment 5 - 1.073 bytes/cycle - 3068.93 MiB/sec @ 3 ghz
-Alignment 4 - 1.073 bytes/cycle - 3068.56 MiB/sec @ 3 ghz
-Alignment 3 - 1.076 bytes/cycle - 3078.87 MiB/sec @ 3 ghz
-Alignment 2 - 1.072 bytes/cycle - 3067.75 MiB/sec @ 3 ghz
-Alignment 1 - 1.076 bytes/cycle - 3078.77 MiB/sec @ 3 ghz
-Alignment 0 - 1.075 bytes/cycle - 3074.65 MiB/sec @ 3 ghz
-Average - 1.074 bytes/cycle - 3073.22 MiB/sec @ 3 ghz
+Alignment 7 - 0.889 bytes/cycle - 2542.20 MiB/sec @ 3 ghz
+Alignment 6 - 0.889 bytes/cycle - 2542.20 MiB/sec @ 3 ghz
+Alignment 5 - 0.889 bytes/cycle - 2542.20 MiB/sec @ 3 ghz
+Alignment 4 - 0.889 bytes/cycle - 2542.20 MiB/sec @ 3 ghz
+Alignment 3 - 1.106 bytes/cycle - 3164.39 MiB/sec @ 3 ghz
+Alignment 2 - 1.104 bytes/cycle - 3158.28 MiB/sec @ 3 ghz
+Alignment 1 - 1.102 bytes/cycle - 3153.69 MiB/sec @ 3 ghz
+Alignment 0 - 1.104 bytes/cycle - 3158.00 MiB/sec @ 3 ghz
+Average - 0.996 bytes/cycle - 2850.40 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 32.81 cycles/hash
-Small key speed test - 2-byte keys - 34.63 cycles/hash
-Small key speed test - 3-byte keys - 35.56 cycles/hash
-Small key speed test - 4-byte keys - 35.00 cycles/hash
-Small key speed test - 5-byte keys - 36.00 cycles/hash
-Small key speed test - 6-byte keys - 37.61 cycles/hash
-Small key speed test - 7-byte keys - 38.00 cycles/hash
-Small key speed test - 8-byte keys - 40.00 cycles/hash
-Small key speed test - 9-byte keys - 39.00 cycles/hash
-Small key speed test - 10-byte keys - 40.00 cycles/hash
-Small key speed test - 11-byte keys - 40.00 cycles/hash
-Small key speed test - 12-byte keys - 43.99 cycles/hash
-Small key speed test - 13-byte keys - 43.42 cycles/hash
-Small key speed test - 14-byte keys - 43.50 cycles/hash
-Small key speed test - 15-byte keys - 43.86 cycles/hash
-Small key speed test - 16-byte keys - 46.00 cycles/hash
-Small key speed test - 17-byte keys - 48.00 cycles/hash
-Small key speed test - 18-byte keys - 48.00 cycles/hash
-Small key speed test - 19-byte keys - 48.00 cycles/hash
-Small key speed test - 20-byte keys - 52.00 cycles/hash
-Small key speed test - 21-byte keys - 50.27 cycles/hash
-Small key speed test - 22-byte keys - 51.00 cycles/hash
-Small key speed test - 23-byte keys - 51.13 cycles/hash
-Small key speed test - 24-byte keys - 53.96 cycles/hash
-Small key speed test - 25-byte keys - 54.00 cycles/hash
-Small key speed test - 26-byte keys - 54.79 cycles/hash
-Small key speed test - 27-byte keys - 55.00 cycles/hash
-Small key speed test - 28-byte keys - 58.00 cycles/hash
-Small key speed test - 29-byte keys - 58.23 cycles/hash
-Small key speed test - 30-byte keys - 58.41 cycles/hash
-Small key speed test - 31-byte keys - 59.31 cycles/hash
-Average 46.113 cycles/hash
+Small key speed test - 1-byte keys - 32.00 cycles/hash
+Small key speed test - 2-byte keys - 34.00 cycles/hash
+Small key speed test - 3-byte keys - 34.33 cycles/hash
+Small key speed test - 4-byte keys - 34.00 cycles/hash
+Small key speed test - 5-byte keys - 35.15 cycles/hash
+Small key speed test - 6-byte keys - 37.00 cycles/hash
+Small key speed test - 7-byte keys - 37.00 cycles/hash
+Small key speed test - 8-byte keys - 39.29 cycles/hash
+Small key speed test - 9-byte keys - 38.00 cycles/hash
+Small key speed test - 10-byte keys - 39.00 cycles/hash
+Small key speed test - 11-byte keys - 39.00 cycles/hash
+Small key speed test - 12-byte keys - 42.97 cycles/hash
+Small key speed test - 13-byte keys - 42.19 cycles/hash
+Small key speed test - 14-byte keys - 42.15 cycles/hash
+Small key speed test - 15-byte keys - 42.70 cycles/hash
+Small key speed test - 16-byte keys - 45.00 cycles/hash
+Small key speed test - 17-byte keys - 47.00 cycles/hash
+Small key speed test - 18-byte keys - 47.00 cycles/hash
+Small key speed test - 19-byte keys - 47.00 cycles/hash
+Small key speed test - 20-byte keys - 51.00 cycles/hash
+Small key speed test - 21-byte keys - 49.00 cycles/hash
+Small key speed test - 22-byte keys - 50.00 cycles/hash
+Small key speed test - 23-byte keys - 50.00 cycles/hash
+Small key speed test - 24-byte keys - 52.00 cycles/hash
+Small key speed test - 25-byte keys - 53.00 cycles/hash
+Small key speed test - 26-byte keys - 53.15 cycles/hash
+Small key speed test - 27-byte keys - 54.00 cycles/hash
+Small key speed test - 28-byte keys - 57.00 cycles/hash
+Small key speed test - 29-byte keys - 57.00 cycles/hash
+Small key speed test - 30-byte keys - 63.31 cycles/hash
+Small key speed test - 31-byte keys - 72.00 cycles/hash
+Small key speed test - 32-byte keys - 75.15 cycles/hash
+Average 46.605 cycles/hash
+Average, weighted by key length freq. 45.578 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 41.580 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 450.572 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.425 cycles/op (6.9 stdv)
+Init std HashMapTest: 481.669 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 382.803 cycles/op (2.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 319.120 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 253.880 cycles/op (5.3 stdv) ....... PASS
+Init fast HashMapTest: 337.015 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 284.579 cycles/op (12.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.995876 seconds
+Verification value is 0x00000001 - Testing took 13.617092 seconds
--- Testing Murmur2B "MurmurHash64A for x64, 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x16f93d9b7d54 - 0x16f93d9b7ce8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.156 bytes/cycle - 6168.90 MiB/sec @ 3 ghz
-Alignment 6 - 2.166 bytes/cycle - 6195.58 MiB/sec @ 3 ghz
-Alignment 5 - 2.159 bytes/cycle - 6176.06 MiB/sec @ 3 ghz
-Alignment 4 - 2.160 bytes/cycle - 6179.79 MiB/sec @ 3 ghz
-Alignment 3 - 2.153 bytes/cycle - 6160.60 MiB/sec @ 3 ghz
-Alignment 2 - 2.165 bytes/cycle - 6193.85 MiB/sec @ 3 ghz
-Alignment 1 - 2.158 bytes/cycle - 6175.48 MiB/sec @ 3 ghz
-Alignment 0 - 2.159 bytes/cycle - 6177.60 MiB/sec @ 3 ghz
-Average - 2.160 bytes/cycle - 6178.48 MiB/sec @ 3 ghz
+Alignment 7 - 1.934 bytes/cycle - 5532.68 MiB/sec @ 3 ghz
+Alignment 6 - 2.139 bytes/cycle - 6118.54 MiB/sec @ 3 ghz
+Alignment 5 - 2.137 bytes/cycle - 6115.06 MiB/sec @ 3 ghz
+Alignment 4 - 2.137 bytes/cycle - 6115.05 MiB/sec @ 3 ghz
+Alignment 3 - 2.137 bytes/cycle - 6115.04 MiB/sec @ 3 ghz
+Alignment 2 - 2.137 bytes/cycle - 6115.08 MiB/sec @ 3 ghz
+Alignment 1 - 2.134 bytes/cycle - 6104.06 MiB/sec @ 3 ghz
+Alignment 0 - 2.134 bytes/cycle - 6104.15 MiB/sec @ 3 ghz
+Average - 2.111 bytes/cycle - 6039.96 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 25.00 cycles/hash
-Small key speed test - 2-byte keys - 27.00 cycles/hash
-Small key speed test - 3-byte keys - 28.00 cycles/hash
-Small key speed test - 4-byte keys - 29.17 cycles/hash
+Small key speed test - 1-byte keys - 25.99 cycles/hash
+Small key speed test - 2-byte keys - 27.83 cycles/hash
+Small key speed test - 3-byte keys - 28.61 cycles/hash
+Small key speed test - 4-byte keys - 30.00 cycles/hash
Small key speed test - 5-byte keys - 30.00 cycles/hash
Small key speed test - 6-byte keys - 31.00 cycles/hash
Small key speed test - 7-byte keys - 32.00 cycles/hash
Small key speed test - 8-byte keys - 32.00 cycles/hash
Small key speed test - 9-byte keys - 35.00 cycles/hash
Small key speed test - 10-byte keys - 36.00 cycles/hash
-Small key speed test - 11-byte keys - 37.00 cycles/hash
-Small key speed test - 12-byte keys - 38.00 cycles/hash
-Small key speed test - 13-byte keys - 39.00 cycles/hash
-Small key speed test - 14-byte keys - 40.00 cycles/hash
+Small key speed test - 11-byte keys - 37.24 cycles/hash
+Small key speed test - 12-byte keys - 38.87 cycles/hash
+Small key speed test - 13-byte keys - 39.46 cycles/hash
+Small key speed test - 14-byte keys - 40.65 cycles/hash
Small key speed test - 15-byte keys - 41.00 cycles/hash
Small key speed test - 16-byte keys - 36.00 cycles/hash
-Small key speed test - 17-byte keys - 39.00 cycles/hash
-Small key speed test - 18-byte keys - 40.00 cycles/hash
-Small key speed test - 19-byte keys - 40.61 cycles/hash
-Small key speed test - 20-byte keys - 41.75 cycles/hash
-Small key speed test - 21-byte keys - 42.27 cycles/hash
-Small key speed test - 22-byte keys - 43.00 cycles/hash
-Small key speed test - 23-byte keys - 44.00 cycles/hash
+Small key speed test - 17-byte keys - 39.79 cycles/hash
+Small key speed test - 18-byte keys - 40.93 cycles/hash
+Small key speed test - 19-byte keys - 41.00 cycles/hash
+Small key speed test - 20-byte keys - 42.00 cycles/hash
+Small key speed test - 21-byte keys - 43.00 cycles/hash
+Small key speed test - 22-byte keys - 43.71 cycles/hash
+Small key speed test - 23-byte keys - 44.98 cycles/hash
Small key speed test - 24-byte keys - 39.00 cycles/hash
-Small key speed test - 25-byte keys - 42.00 cycles/hash
-Small key speed test - 26-byte keys - 43.00 cycles/hash
-Small key speed test - 27-byte keys - 44.95 cycles/hash
+Small key speed test - 25-byte keys - 43.00 cycles/hash
+Small key speed test - 26-byte keys - 44.00 cycles/hash
+Small key speed test - 27-byte keys - 45.00 cycles/hash
Small key speed test - 28-byte keys - 45.00 cycles/hash
-Small key speed test - 29-byte keys - 45.93 cycles/hash
-Small key speed test - 30-byte keys - 47.00 cycles/hash
-Small key speed test - 31-byte keys - 48.00 cycles/hash
-Average 38.119 cycles/hash
+Small key speed test - 29-byte keys - 46.00 cycles/hash
+Small key speed test - 30-byte keys - 47.96 cycles/hash
+Small key speed test - 31-byte keys - 48.52 cycles/hash
+Small key speed test - 32-byte keys - 43.00 cycles/hash
+Average 38.704 cycles/hash
+Average, weighted by key length freq. 39.802 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.919 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 465.585 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.463 cycles/op (7.6 stdv)
+Init std HashMapTest: 429.490 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 334.523 cycles/op (2.8 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 296.003 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 237.042 cycles/op (5.0 stdv) ....... PASS
+Init fast HashMapTest: 272.101 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 212.228 cycles/op (1.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.666396 seconds
+Verification value is 0x00000001 - Testing took 10.941818 seconds
--- Testing Murmur2C "MurmurHash64B for x86, 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x170269607988 - 0x17026960791c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.341 bytes/cycle - 3836.53 MiB/sec @ 3 ghz
-Alignment 6 - 1.337 bytes/cycle - 3824.77 MiB/sec @ 3 ghz
-Alignment 5 - 1.341 bytes/cycle - 3836.26 MiB/sec @ 3 ghz
-Alignment 4 - 1.341 bytes/cycle - 3837.85 MiB/sec @ 3 ghz
-Alignment 3 - 1.314 bytes/cycle - 3758.24 MiB/sec @ 3 ghz
-Alignment 2 - 1.312 bytes/cycle - 3754.28 MiB/sec @ 3 ghz
-Alignment 1 - 1.311 bytes/cycle - 3752.03 MiB/sec @ 3 ghz
-Alignment 0 - 1.313 bytes/cycle - 3757.23 MiB/sec @ 3 ghz
-Average - 1.326 bytes/cycle - 3794.65 MiB/sec @ 3 ghz
+Alignment 7 - 1.343 bytes/cycle - 3841.07 MiB/sec @ 3 ghz
+Alignment 6 - 1.343 bytes/cycle - 3841.71 MiB/sec @ 3 ghz
+Alignment 5 - 1.343 bytes/cycle - 3841.28 MiB/sec @ 3 ghz
+Alignment 4 - 1.343 bytes/cycle - 3841.96 MiB/sec @ 3 ghz
+Alignment 3 - 1.316 bytes/cycle - 3766.20 MiB/sec @ 3 ghz
+Alignment 2 - 1.317 bytes/cycle - 3767.18 MiB/sec @ 3 ghz
+Alignment 1 - 1.316 bytes/cycle - 3766.11 MiB/sec @ 3 ghz
+Alignment 0 - 1.313 bytes/cycle - 3755.97 MiB/sec @ 3 ghz
+Average - 1.329 bytes/cycle - 3802.68 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 36.23 cycles/hash
+Small key speed test - 1-byte keys - 36.00 cycles/hash
Small key speed test - 2-byte keys - 38.00 cycles/hash
Small key speed test - 3-byte keys - 39.00 cycles/hash
Small key speed test - 4-byte keys - 41.00 cycles/hash
Small key speed test - 5-byte keys - 41.00 cycles/hash
Small key speed test - 6-byte keys - 41.00 cycles/hash
-Small key speed test - 7-byte keys - 41.00 cycles/hash
+Small key speed test - 7-byte keys - 41.24 cycles/hash
Small key speed test - 8-byte keys - 43.00 cycles/hash
Small key speed test - 9-byte keys - 47.00 cycles/hash
Small key speed test - 10-byte keys - 48.00 cycles/hash
-Small key speed test - 11-byte keys - 48.92 cycles/hash
-Small key speed test - 12-byte keys - 43.96 cycles/hash
-Small key speed test - 13-byte keys - 47.72 cycles/hash
-Small key speed test - 14-byte keys - 47.63 cycles/hash
-Small key speed test - 15-byte keys - 48.98 cycles/hash
-Small key speed test - 16-byte keys - 46.00 cycles/hash
-Small key speed test - 17-byte keys - 50.90 cycles/hash
-Small key speed test - 18-byte keys - 52.93 cycles/hash
-Small key speed test - 19-byte keys - 52.00 cycles/hash
+Small key speed test - 11-byte keys - 49.00 cycles/hash
+Small key speed test - 12-byte keys - 44.00 cycles/hash
+Small key speed test - 13-byte keys - 47.99 cycles/hash
+Small key speed test - 14-byte keys - 47.99 cycles/hash
+Small key speed test - 15-byte keys - 49.17 cycles/hash
+Small key speed test - 16-byte keys - 46.75 cycles/hash
+Small key speed test - 17-byte keys - 51.15 cycles/hash
+Small key speed test - 18-byte keys - 53.00 cycles/hash
+Small key speed test - 19-byte keys - 52.58 cycles/hash
Small key speed test - 20-byte keys - 48.00 cycles/hash
-Small key speed test - 21-byte keys - 50.98 cycles/hash
-Small key speed test - 22-byte keys - 52.93 cycles/hash
-Small key speed test - 23-byte keys - 55.00 cycles/hash
-Small key speed test - 24-byte keys - 55.00 cycles/hash
-Small key speed test - 25-byte keys - 59.00 cycles/hash
-Small key speed test - 26-byte keys - 59.17 cycles/hash
-Small key speed test - 27-byte keys - 59.91 cycles/hash
-Small key speed test - 28-byte keys - 55.00 cycles/hash
-Small key speed test - 29-byte keys - 58.13 cycles/hash
-Small key speed test - 30-byte keys - 59.98 cycles/hash
-Small key speed test - 31-byte keys - 60.23 cycles/hash
-Average 49.278 cycles/hash
+Small key speed test - 21-byte keys - 51.00 cycles/hash
+Small key speed test - 22-byte keys - 53.00 cycles/hash
+Small key speed test - 23-byte keys - 56.00 cycles/hash
+Small key speed test - 24-byte keys - 55.18 cycles/hash
+Small key speed test - 25-byte keys - 59.54 cycles/hash
+Small key speed test - 26-byte keys - 59.54 cycles/hash
+Small key speed test - 27-byte keys - 60.24 cycles/hash
+Small key speed test - 28-byte keys - 55.29 cycles/hash
+Small key speed test - 29-byte keys - 59.00 cycles/hash
+Small key speed test - 30-byte keys - 60.00 cycles/hash
+Small key speed test - 31-byte keys - 60.81 cycles/hash
+Small key speed test - 32-byte keys - 59.78 cycles/hash
+Average 49.821 cycles/hash
+Average, weighted by key length freq. 50.019 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 46.647 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 463.804 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 376.234 cycles/op (4.2 stdv)
+Init std HashMapTest: 434.275 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 346.867 cycles/op (3.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 303.664 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 231.576 cycles/op (5.2 stdv) ....... PASS
+Init fast HashMapTest: 282.138 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 220.129 cycles/op (1.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.145959 seconds
+Verification value is 0x00000001 - Testing took 13.427199 seconds
--- Testing Murmur3A "MurmurHash3 for x86, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x170daa54991c - 0x170daa5498b0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.060 bytes/cycle - 3032.58 MiB/sec @ 3 ghz
-Alignment 6 - 1.060 bytes/cycle - 3032.66 MiB/sec @ 3 ghz
-Alignment 5 - 1.060 bytes/cycle - 3032.91 MiB/sec @ 3 ghz
-Alignment 4 - 1.063 bytes/cycle - 3041.09 MiB/sec @ 3 ghz
-Alignment 3 - 1.063 bytes/cycle - 3041.48 MiB/sec @ 3 ghz
+Alignment 7 - 1.058 bytes/cycle - 3026.46 MiB/sec @ 3 ghz
+Alignment 6 - 1.058 bytes/cycle - 3026.85 MiB/sec @ 3 ghz
+Alignment 5 - 1.056 bytes/cycle - 3022.40 MiB/sec @ 3 ghz
+Alignment 4 - 1.062 bytes/cycle - 3037.97 MiB/sec @ 3 ghz
+Alignment 3 - 1.056 bytes/cycle - 3021.43 MiB/sec @ 3 ghz
Alignment 2 - 1.058 bytes/cycle - 3026.72 MiB/sec @ 3 ghz
-Alignment 1 - 1.063 bytes/cycle - 3042.25 MiB/sec @ 3 ghz
-Alignment 0 - 1.067 bytes/cycle - 3052.92 MiB/sec @ 3 ghz
-Average - 1.062 bytes/cycle - 3037.83 MiB/sec @ 3 ghz
+Alignment 1 - 1.056 bytes/cycle - 3021.27 MiB/sec @ 3 ghz
+Alignment 0 - 1.061 bytes/cycle - 3035.29 MiB/sec @ 3 ghz
+Average - 1.058 bytes/cycle - 3027.30 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 34.00 cycles/hash
+Small key speed test - 1-byte keys - 34.77 cycles/hash
Small key speed test - 2-byte keys - 36.00 cycles/hash
-Small key speed test - 3-byte keys - 36.51 cycles/hash
+Small key speed test - 3-byte keys - 36.91 cycles/hash
Small key speed test - 4-byte keys - 37.00 cycles/hash
-Small key speed test - 5-byte keys - 37.90 cycles/hash
+Small key speed test - 5-byte keys - 38.00 cycles/hash
Small key speed test - 6-byte keys - 39.00 cycles/hash
-Small key speed test - 7-byte keys - 39.67 cycles/hash
-Small key speed test - 8-byte keys - 40.91 cycles/hash
-Small key speed test - 9-byte keys - 41.99 cycles/hash
+Small key speed test - 7-byte keys - 39.19 cycles/hash
+Small key speed test - 8-byte keys - 41.00 cycles/hash
+Small key speed test - 9-byte keys - 42.00 cycles/hash
Small key speed test - 10-byte keys - 42.00 cycles/hash
-Small key speed test - 11-byte keys - 42.91 cycles/hash
-Small key speed test - 12-byte keys - 44.79 cycles/hash
-Small key speed test - 13-byte keys - 45.73 cycles/hash
-Small key speed test - 14-byte keys - 45.43 cycles/hash
-Small key speed test - 15-byte keys - 46.23 cycles/hash
-Small key speed test - 16-byte keys - 48.24 cycles/hash
-Small key speed test - 17-byte keys - 49.46 cycles/hash
-Small key speed test - 18-byte keys - 49.44 cycles/hash
-Small key speed test - 19-byte keys - 49.45 cycles/hash
-Small key speed test - 20-byte keys - 52.00 cycles/hash
-Small key speed test - 21-byte keys - 54.00 cycles/hash
-Small key speed test - 22-byte keys - 54.63 cycles/hash
-Small key speed test - 23-byte keys - 54.23 cycles/hash
+Small key speed test - 11-byte keys - 43.00 cycles/hash
+Small key speed test - 12-byte keys - 45.00 cycles/hash
+Small key speed test - 13-byte keys - 45.77 cycles/hash
+Small key speed test - 14-byte keys - 46.00 cycles/hash
+Small key speed test - 15-byte keys - 46.56 cycles/hash
+Small key speed test - 16-byte keys - 48.55 cycles/hash
+Small key speed test - 17-byte keys - 49.42 cycles/hash
+Small key speed test - 18-byte keys - 49.76 cycles/hash
+Small key speed test - 19-byte keys - 49.96 cycles/hash
+Small key speed test - 20-byte keys - 52.46 cycles/hash
+Small key speed test - 21-byte keys - 55.00 cycles/hash
+Small key speed test - 22-byte keys - 54.79 cycles/hash
+Small key speed test - 23-byte keys - 54.00 cycles/hash
Small key speed test - 24-byte keys - 57.00 cycles/hash
-Small key speed test - 25-byte keys - 58.37 cycles/hash
+Small key speed test - 25-byte keys - 57.87 cycles/hash
Small key speed test - 26-byte keys - 58.00 cycles/hash
-Small key speed test - 27-byte keys - 57.78 cycles/hash
+Small key speed test - 27-byte keys - 58.71 cycles/hash
Small key speed test - 28-byte keys - 61.00 cycles/hash
-Small key speed test - 29-byte keys - 61.00 cycles/hash
-Small key speed test - 30-byte keys - 61.32 cycles/hash
-Small key speed test - 31-byte keys - 61.83 cycles/hash
-Average 48.317 cycles/hash
+Small key speed test - 29-byte keys - 61.84 cycles/hash
+Small key speed test - 30-byte keys - 61.33 cycles/hash
+Small key speed test - 31-byte keys - 61.82 cycles/hash
+Small key speed test - 32-byte keys - 63.91 cycles/hash
+Average 48.988 cycles/hash
+Average, weighted by key length freq. 48.746 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 45.014 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 436.260 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 375.204 cycles/op (7.4 stdv)
+Init std HashMapTest: 424.784 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 335.183 cycles/op (3.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 324.300 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 250.327 cycles/op (4.7 stdv) ....... PASS
+Init fast HashMapTest: 286.251 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 234.494 cycles/op (2.5 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.378777 seconds
+Verification value is 0x00000001 - Testing took 13.640666 seconds
--- Testing PMurHash32 "Shane Day's portable-ized MurmurHash3 for x86, 32-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x171919193fc4 - 0x171919193f58). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.084 bytes/cycle - 3100.18 MiB/sec @ 3 ghz
-Alignment 6 - 1.084 bytes/cycle - 3101.96 MiB/sec @ 3 ghz
-Alignment 5 - 1.083 bytes/cycle - 3099.12 MiB/sec @ 3 ghz
-Alignment 4 - 1.094 bytes/cycle - 3128.65 MiB/sec @ 3 ghz
-Alignment 3 - 1.089 bytes/cycle - 3115.56 MiB/sec @ 3 ghz
-Alignment 2 - 1.089 bytes/cycle - 3116.47 MiB/sec @ 3 ghz
-Alignment 1 - 1.090 bytes/cycle - 3117.27 MiB/sec @ 3 ghz
-Alignment 0 - 1.091 bytes/cycle - 3120.13 MiB/sec @ 3 ghz
-Average - 1.088 bytes/cycle - 3112.42 MiB/sec @ 3 ghz
+Alignment 7 - 1.026 bytes/cycle - 2936.43 MiB/sec @ 3 ghz
+Alignment 6 - 1.037 bytes/cycle - 2968.15 MiB/sec @ 3 ghz
+Alignment 5 - 1.055 bytes/cycle - 3017.17 MiB/sec @ 3 ghz
+Alignment 4 - 1.053 bytes/cycle - 3011.91 MiB/sec @ 3 ghz
+Alignment 3 - 1.055 bytes/cycle - 3017.58 MiB/sec @ 3 ghz
+Alignment 2 - 1.054 bytes/cycle - 3016.85 MiB/sec @ 3 ghz
+Alignment 1 - 1.055 bytes/cycle - 3017.52 MiB/sec @ 3 ghz
+Alignment 0 - 1.058 bytes/cycle - 3025.94 MiB/sec @ 3 ghz
+Average - 1.049 bytes/cycle - 3001.44 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 36.00 cycles/hash
-Small key speed test - 2-byte keys - 38.00 cycles/hash
-Small key speed test - 3-byte keys - 40.00 cycles/hash
-Small key speed test - 4-byte keys - 34.99 cycles/hash
-Small key speed test - 5-byte keys - 38.00 cycles/hash
-Small key speed test - 6-byte keys - 41.30 cycles/hash
-Small key speed test - 7-byte keys - 42.52 cycles/hash
-Small key speed test - 8-byte keys - 38.97 cycles/hash
-Small key speed test - 9-byte keys - 41.00 cycles/hash
-Small key speed test - 10-byte keys - 44.00 cycles/hash
-Small key speed test - 11-byte keys - 45.96 cycles/hash
-Small key speed test - 12-byte keys - 42.00 cycles/hash
-Small key speed test - 13-byte keys - 43.00 cycles/hash
-Small key speed test - 14-byte keys - 45.32 cycles/hash
-Small key speed test - 15-byte keys - 47.13 cycles/hash
-Small key speed test - 16-byte keys - 45.70 cycles/hash
-Small key speed test - 17-byte keys - 47.20 cycles/hash
-Small key speed test - 18-byte keys - 49.00 cycles/hash
-Small key speed test - 19-byte keys - 50.96 cycles/hash
-Small key speed test - 20-byte keys - 49.00 cycles/hash
-Small key speed test - 21-byte keys - 51.00 cycles/hash
-Small key speed test - 22-byte keys - 51.00 cycles/hash
-Small key speed test - 23-byte keys - 52.00 cycles/hash
-Small key speed test - 24-byte keys - 54.00 cycles/hash
-Small key speed test - 25-byte keys - 55.00 cycles/hash
-Small key speed test - 26-byte keys - 55.00 cycles/hash
-Small key speed test - 27-byte keys - 55.00 cycles/hash
-Small key speed test - 28-byte keys - 57.00 cycles/hash
-Small key speed test - 29-byte keys - 58.00 cycles/hash
-Small key speed test - 30-byte keys - 57.99 cycles/hash
-Small key speed test - 31-byte keys - 58.98 cycles/hash
-Average 47.258 cycles/hash
+Small key speed test - 1-byte keys - 36.94 cycles/hash
+Small key speed test - 2-byte keys - 39.00 cycles/hash
+Small key speed test - 3-byte keys - 41.00 cycles/hash
+Small key speed test - 4-byte keys - 36.00 cycles/hash
+Small key speed test - 5-byte keys - 39.00 cycles/hash
+Small key speed test - 6-byte keys - 42.00 cycles/hash
+Small key speed test - 7-byte keys - 43.84 cycles/hash
+Small key speed test - 8-byte keys - 39.97 cycles/hash
+Small key speed test - 9-byte keys - 42.14 cycles/hash
+Small key speed test - 10-byte keys - 45.00 cycles/hash
+Small key speed test - 11-byte keys - 47.00 cycles/hash
+Small key speed test - 12-byte keys - 43.00 cycles/hash
+Small key speed test - 13-byte keys - 44.96 cycles/hash
+Small key speed test - 14-byte keys - 46.00 cycles/hash
+Small key speed test - 15-byte keys - 48.00 cycles/hash
+Small key speed test - 16-byte keys - 46.95 cycles/hash
+Small key speed test - 17-byte keys - 48.12 cycles/hash
+Small key speed test - 18-byte keys - 50.00 cycles/hash
+Small key speed test - 19-byte keys - 52.00 cycles/hash
+Small key speed test - 20-byte keys - 50.96 cycles/hash
+Small key speed test - 21-byte keys - 52.27 cycles/hash
+Small key speed test - 22-byte keys - 52.69 cycles/hash
+Small key speed test - 23-byte keys - 53.69 cycles/hash
+Small key speed test - 24-byte keys - 55.00 cycles/hash
+Small key speed test - 25-byte keys - 56.00 cycles/hash
+Small key speed test - 26-byte keys - 56.00 cycles/hash
+Small key speed test - 27-byte keys - 56.94 cycles/hash
+Small key speed test - 28-byte keys - 59.00 cycles/hash
+Small key speed test - 29-byte keys - 59.96 cycles/hash
+Small key speed test - 30-byte keys - 60.00 cycles/hash
+Small key speed test - 31-byte keys - 60.88 cycles/hash
+Small key speed test - 32-byte keys - 63.55 cycles/hash
+Average 48.995 cycles/hash
+Average, weighted by key length freq. 48.604 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 44.932 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 434.744 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 374.106 cycles/op (7.1 stdv)
+Init std HashMapTest: 427.882 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 342.512 cycles/op (3.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 310.646 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 252.539 cycles/op (4.7 stdv) ....... PASS
+Init fast HashMapTest: 288.315 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 240.354 cycles/op (3.2 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.131157 seconds
+Verification value is 0x00000001 - Testing took 13.715582 seconds
--- Testing Murmur3C "MurmurHash3 for x86, 128-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x172497f2b53c - 0x172497f2b4f4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.691 bytes/cycle - 4836.95 MiB/sec @ 3 ghz
-Alignment 6 - 1.689 bytes/cycle - 4832.88 MiB/sec @ 3 ghz
-Alignment 5 - 1.691 bytes/cycle - 4836.90 MiB/sec @ 3 ghz
-Alignment 4 - 1.699 bytes/cycle - 4861.13 MiB/sec @ 3 ghz
-Alignment 3 - 1.682 bytes/cycle - 4811.58 MiB/sec @ 3 ghz
-Alignment 2 - 1.682 bytes/cycle - 4812.92 MiB/sec @ 3 ghz
-Alignment 1 - 1.685 bytes/cycle - 4819.40 MiB/sec @ 3 ghz
-Alignment 0 - 1.701 bytes/cycle - 4867.22 MiB/sec @ 3 ghz
-Average - 1.690 bytes/cycle - 4834.87 MiB/sec @ 3 ghz
+Alignment 7 - 1.686 bytes/cycle - 4824.29 MiB/sec @ 3 ghz
+Alignment 6 - 1.687 bytes/cycle - 4827.88 MiB/sec @ 3 ghz
+Alignment 5 - 1.688 bytes/cycle - 4828.11 MiB/sec @ 3 ghz
+Alignment 4 - 1.696 bytes/cycle - 4851.05 MiB/sec @ 3 ghz
+Alignment 3 - 1.680 bytes/cycle - 4805.74 MiB/sec @ 3 ghz
+Alignment 2 - 1.680 bytes/cycle - 4807.04 MiB/sec @ 3 ghz
+Alignment 1 - 1.680 bytes/cycle - 4806.47 MiB/sec @ 3 ghz
+Alignment 0 - 1.695 bytes/cycle - 4849.03 MiB/sec @ 3 ghz
+Average - 1.686 bytes/cycle - 4824.95 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 45.97 cycles/hash
-Small key speed test - 2-byte keys - 46.00 cycles/hash
-Small key speed test - 3-byte keys - 47.47 cycles/hash
-Small key speed test - 4-byte keys - 48.00 cycles/hash
+Small key speed test - 1-byte keys - 46.00 cycles/hash
+Small key speed test - 2-byte keys - 46.72 cycles/hash
+Small key speed test - 3-byte keys - 47.84 cycles/hash
+Small key speed test - 4-byte keys - 48.65 cycles/hash
Small key speed test - 5-byte keys - 49.00 cycles/hash
-Small key speed test - 6-byte keys - 50.00 cycles/hash
+Small key speed test - 6-byte keys - 50.55 cycles/hash
Small key speed test - 7-byte keys - 51.00 cycles/hash
-Small key speed test - 8-byte keys - 51.98 cycles/hash
-Small key speed test - 9-byte keys - 53.96 cycles/hash
+Small key speed test - 8-byte keys - 52.00 cycles/hash
+Small key speed test - 9-byte keys - 53.99 cycles/hash
Small key speed test - 10-byte keys - 52.00 cycles/hash
-Small key speed test - 11-byte keys - 53.96 cycles/hash
-Small key speed test - 12-byte keys - 55.96 cycles/hash
-Small key speed test - 13-byte keys - 56.00 cycles/hash
+Small key speed test - 11-byte keys - 54.00 cycles/hash
+Small key speed test - 12-byte keys - 55.99 cycles/hash
+Small key speed test - 13-byte keys - 56.75 cycles/hash
Small key speed test - 14-byte keys - 57.00 cycles/hash
-Small key speed test - 15-byte keys - 58.45 cycles/hash
-Small key speed test - 16-byte keys - 55.92 cycles/hash
-Small key speed test - 17-byte keys - 55.97 cycles/hash
-Small key speed test - 18-byte keys - 56.43 cycles/hash
-Small key speed test - 19-byte keys - 57.90 cycles/hash
-Small key speed test - 20-byte keys - 58.23 cycles/hash
-Small key speed test - 21-byte keys - 59.93 cycles/hash
-Small key speed test - 22-byte keys - 60.11 cycles/hash
-Small key speed test - 23-byte keys - 60.99 cycles/hash
-Small key speed test - 24-byte keys - 61.84 cycles/hash
-Small key speed test - 25-byte keys - 61.45 cycles/hash
-Small key speed test - 26-byte keys - 63.89 cycles/hash
-Small key speed test - 27-byte keys - 64.57 cycles/hash
-Small key speed test - 28-byte keys - 64.99 cycles/hash
-Small key speed test - 29-byte keys - 66.59 cycles/hash
-Small key speed test - 30-byte keys - 66.79 cycles/hash
-Small key speed test - 31-byte keys - 67.00 cycles/hash
-Average 56.754 cycles/hash
+Small key speed test - 15-byte keys - 58.88 cycles/hash
+Small key speed test - 16-byte keys - 55.99 cycles/hash
+Small key speed test - 17-byte keys - 56.00 cycles/hash
+Small key speed test - 18-byte keys - 56.72 cycles/hash
+Small key speed test - 19-byte keys - 57.95 cycles/hash
+Small key speed test - 20-byte keys - 60.33 cycles/hash
+Small key speed test - 21-byte keys - 59.97 cycles/hash
+Small key speed test - 22-byte keys - 60.19 cycles/hash
+Small key speed test - 23-byte keys - 61.00 cycles/hash
+Small key speed test - 24-byte keys - 61.96 cycles/hash
+Small key speed test - 25-byte keys - 61.83 cycles/hash
+Small key speed test - 26-byte keys - 63.98 cycles/hash
+Small key speed test - 27-byte keys - 65.00 cycles/hash
+Small key speed test - 28-byte keys - 64.93 cycles/hash
+Small key speed test - 29-byte keys - 67.13 cycles/hash
+Small key speed test - 30-byte keys - 67.41 cycles/hash
+Small key speed test - 31-byte keys - 67.82 cycles/hash
+Small key speed test - 32-byte keys - 68.00 cycles/hash
+Average 57.393 cycles/hash
+Average, weighted by key length freq. 57.531 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 54.833 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 490.453 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 398.679 cycles/op (4.9 stdv)
+Init std HashMapTest: 464.366 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 367.378 cycles/op (2.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 324.074 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 258.309 cycles/op (5.4 stdv) ....... PASS
+Init fast HashMapTest: 303.006 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 243.914 cycles/op (2.2 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.212544 seconds
+Verification value is 0x00000001 - Testing took 14.517179 seconds
--- Testing PMPML_32 "PMP_Multilinear 32-bit unseeded" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1730c2c660b0 - 0x1730c2c66044). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.395 bytes/cycle - 6851.68 MiB/sec @ 3 ghz
-Alignment 6 - 2.400 bytes/cycle - 6866.38 MiB/sec @ 3 ghz
-Alignment 5 - 2.401 bytes/cycle - 6869.88 MiB/sec @ 3 ghz
-Alignment 4 - 2.400 bytes/cycle - 6866.73 MiB/sec @ 3 ghz
-Alignment 3 - 2.386 bytes/cycle - 6826.87 MiB/sec @ 3 ghz
-Alignment 2 - 2.398 bytes/cycle - 6861.49 MiB/sec @ 3 ghz
-Alignment 1 - 2.397 bytes/cycle - 6857.19 MiB/sec @ 3 ghz
-Alignment 0 - 2.433 bytes/cycle - 6960.89 MiB/sec @ 3 ghz
-Average - 2.401 bytes/cycle - 6870.14 MiB/sec @ 3 ghz
+Alignment 7 - 2.408 bytes/cycle - 6890.58 MiB/sec @ 3 ghz
+Alignment 6 - 2.407 bytes/cycle - 6887.06 MiB/sec @ 3 ghz
+Alignment 5 - 2.408 bytes/cycle - 6890.46 MiB/sec @ 3 ghz
+Alignment 4 - 2.410 bytes/cycle - 6894.17 MiB/sec @ 3 ghz
+Alignment 3 - 2.407 bytes/cycle - 6886.82 MiB/sec @ 3 ghz
+Alignment 2 - 2.408 bytes/cycle - 6889.99 MiB/sec @ 3 ghz
+Alignment 1 - 2.410 bytes/cycle - 6895.12 MiB/sec @ 3 ghz
+Alignment 0 - 2.447 bytes/cycle - 7000.18 MiB/sec @ 3 ghz
+Average - 2.413 bytes/cycle - 6904.30 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 37.00 cycles/hash
-Small key speed test - 2-byte keys - 38.50 cycles/hash
-Small key speed test - 3-byte keys - 39.00 cycles/hash
+Small key speed test - 2-byte keys - 38.21 cycles/hash
+Small key speed test - 3-byte keys - 38.47 cycles/hash
Small key speed test - 4-byte keys - 37.00 cycles/hash
Small key speed test - 5-byte keys - 38.00 cycles/hash
-Small key speed test - 6-byte keys - 39.00 cycles/hash
-Small key speed test - 7-byte keys - 39.84 cycles/hash
+Small key speed test - 6-byte keys - 38.97 cycles/hash
+Small key speed test - 7-byte keys - 39.44 cycles/hash
Small key speed test - 8-byte keys - 40.00 cycles/hash
-Small key speed test - 9-byte keys - 40.16 cycles/hash
+Small key speed test - 9-byte keys - 40.00 cycles/hash
Small key speed test - 10-byte keys - 41.00 cycles/hash
-Small key speed test - 11-byte keys - 40.95 cycles/hash
+Small key speed test - 11-byte keys - 40.22 cycles/hash
Small key speed test - 12-byte keys - 41.00 cycles/hash
-Small key speed test - 13-byte keys - 42.00 cycles/hash
-Small key speed test - 14-byte keys - 42.80 cycles/hash
+Small key speed test - 13-byte keys - 41.34 cycles/hash
+Small key speed test - 14-byte keys - 42.49 cycles/hash
Small key speed test - 15-byte keys - 42.00 cycles/hash
-Small key speed test - 16-byte keys - 43.99 cycles/hash
+Small key speed test - 16-byte keys - 43.33 cycles/hash
Small key speed test - 17-byte keys - 44.00 cycles/hash
Small key speed test - 18-byte keys - 45.00 cycles/hash
-Small key speed test - 19-byte keys - 43.94 cycles/hash
-Small key speed test - 20-byte keys - 46.97 cycles/hash
-Small key speed test - 21-byte keys - 47.13 cycles/hash
-Small key speed test - 22-byte keys - 46.95 cycles/hash
-Small key speed test - 23-byte keys - 47.89 cycles/hash
-Small key speed test - 24-byte keys - 47.96 cycles/hash
-Small key speed test - 25-byte keys - 47.97 cycles/hash
-Small key speed test - 26-byte keys - 49.99 cycles/hash
-Small key speed test - 27-byte keys - 48.00 cycles/hash
-Small key speed test - 28-byte keys - 52.21 cycles/hash
+Small key speed test - 19-byte keys - 43.00 cycles/hash
+Small key speed test - 20-byte keys - 46.89 cycles/hash
+Small key speed test - 21-byte keys - 47.00 cycles/hash
+Small key speed test - 22-byte keys - 46.94 cycles/hash
+Small key speed test - 23-byte keys - 47.12 cycles/hash
+Small key speed test - 24-byte keys - 47.66 cycles/hash
+Small key speed test - 25-byte keys - 47.99 cycles/hash
+Small key speed test - 26-byte keys - 49.12 cycles/hash
+Small key speed test - 27-byte keys - 48.79 cycles/hash
+Small key speed test - 28-byte keys - 50.31 cycles/hash
Small key speed test - 29-byte keys - 50.00 cycles/hash
-Small key speed test - 30-byte keys - 52.00 cycles/hash
+Small key speed test - 30-byte keys - 52.18 cycles/hash
Small key speed test - 31-byte keys - 50.00 cycles/hash
-Average 43.944 cycles/hash
+Small key speed test - 32-byte keys - 61.55 cycles/hash
+Average 44.250 cycles/hash
+Average, weighted by key length freq. 43.712 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 41.610 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 442.123 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 369.909 cycles/op (5.0 stdv)
+Init std HashMapTest: 408.527 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 334.459 cycles/op (2.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.114 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 265.622 cycles/op (4.8 stdv) ....... PASS
+Init fast HashMapTest: 289.523 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 233.592 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.581566 seconds
+Verification value is 0x00000001 - Testing took 11.723068 seconds
--- Testing PMPML_64 "PMP_Multilinear 64-bit unseeded" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x173a96f3d308 - 0x173a96f3d29c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 3.479 bytes/cycle - 9953.30 MiB/sec @ 3 ghz
-Alignment 6 - 3.486 bytes/cycle - 9973.55 MiB/sec @ 3 ghz
-Alignment 5 - 3.488 bytes/cycle - 9979.07 MiB/sec @ 3 ghz
-Alignment 4 - 3.486 bytes/cycle - 9974.72 MiB/sec @ 3 ghz
-Alignment 3 - 3.483 bytes/cycle - 9964.65 MiB/sec @ 3 ghz
-Alignment 2 - 3.487 bytes/cycle - 9976.14 MiB/sec @ 3 ghz
-Alignment 1 - 3.491 bytes/cycle - 9986.68 MiB/sec @ 3 ghz
-Alignment 0 - 3.520 bytes/cycle - 10069.60 MiB/sec @ 3 ghz
-Average - 3.490 bytes/cycle - 9984.71 MiB/sec @ 3 ghz
+Alignment 7 - 3.501 bytes/cycle - 10016.32 MiB/sec @ 3 ghz
+Alignment 6 - 3.505 bytes/cycle - 10026.61 MiB/sec @ 3 ghz
+Alignment 5 - 3.504 bytes/cycle - 10026.33 MiB/sec @ 3 ghz
+Alignment 4 - 3.499 bytes/cycle - 10010.76 MiB/sec @ 3 ghz
+Alignment 3 - 3.502 bytes/cycle - 10020.72 MiB/sec @ 3 ghz
+Alignment 2 - 3.500 bytes/cycle - 10014.27 MiB/sec @ 3 ghz
+Alignment 1 - 3.503 bytes/cycle - 10022.46 MiB/sec @ 3 ghz
+Alignment 0 - 3.533 bytes/cycle - 10107.87 MiB/sec @ 3 ghz
+Average - 3.506 bytes/cycle - 10030.67 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 47.12 cycles/hash
+Small key speed test - 1-byte keys - 47.00 cycles/hash
Small key speed test - 2-byte keys - 47.00 cycles/hash
-Small key speed test - 3-byte keys - 49.12 cycles/hash
-Small key speed test - 4-byte keys - 47.00 cycles/hash
-Small key speed test - 5-byte keys - 47.00 cycles/hash
-Small key speed test - 6-byte keys - 47.00 cycles/hash
-Small key speed test - 7-byte keys - 48.00 cycles/hash
-Small key speed test - 8-byte keys - 46.00 cycles/hash
-Small key speed test - 9-byte keys - 47.34 cycles/hash
-Small key speed test - 10-byte keys - 47.42 cycles/hash
-Small key speed test - 11-byte keys - 49.11 cycles/hash
-Small key speed test - 12-byte keys - 47.55 cycles/hash
-Small key speed test - 13-byte keys - 49.47 cycles/hash
-Small key speed test - 14-byte keys - 49.42 cycles/hash
+Small key speed test - 3-byte keys - 49.00 cycles/hash
+Small key speed test - 4-byte keys - 46.99 cycles/hash
+Small key speed test - 5-byte keys - 46.99 cycles/hash
+Small key speed test - 6-byte keys - 46.99 cycles/hash
+Small key speed test - 7-byte keys - 47.97 cycles/hash
+Small key speed test - 8-byte keys - 46.15 cycles/hash
+Small key speed test - 9-byte keys - 47.14 cycles/hash
+Small key speed test - 10-byte keys - 47.00 cycles/hash
+Small key speed test - 11-byte keys - 48.95 cycles/hash
+Small key speed test - 12-byte keys - 47.00 cycles/hash
+Small key speed test - 13-byte keys - 49.00 cycles/hash
+Small key speed test - 14-byte keys - 49.00 cycles/hash
Small key speed test - 15-byte keys - 50.00 cycles/hash
-Small key speed test - 16-byte keys - 47.32 cycles/hash
+Small key speed test - 16-byte keys - 47.00 cycles/hash
Small key speed test - 17-byte keys - 49.00 cycles/hash
Small key speed test - 18-byte keys - 49.00 cycles/hash
Small key speed test - 19-byte keys - 50.00 cycles/hash
@@ -6094,5882 +6950,1812 @@ Small key speed test - 20-byte keys - 49.00 cycles/hash
Small key speed test - 21-byte keys - 50.00 cycles/hash
Small key speed test - 22-byte keys - 50.00 cycles/hash
Small key speed test - 23-byte keys - 52.00 cycles/hash
-Small key speed test - 24-byte keys - 49.49 cycles/hash
-Small key speed test - 25-byte keys - 51.00 cycles/hash
+Small key speed test - 24-byte keys - 49.00 cycles/hash
+Small key speed test - 25-byte keys - 50.97 cycles/hash
Small key speed test - 26-byte keys - 51.00 cycles/hash
-Small key speed test - 27-byte keys - 51.20 cycles/hash
+Small key speed test - 27-byte keys - 51.00 cycles/hash
Small key speed test - 28-byte keys - 51.00 cycles/hash
-Small key speed test - 29-byte keys - 52.21 cycles/hash
-Small key speed test - 30-byte keys - 52.24 cycles/hash
+Small key speed test - 29-byte keys - 52.00 cycles/hash
+Small key speed test - 30-byte keys - 52.00 cycles/hash
Small key speed test - 31-byte keys - 54.00 cycles/hash
-Average 49.258 cycles/hash
+Small key speed test - 32-byte keys - 51.91 cycles/hash
+Average 49.221 cycles/hash
+Average, weighted by key length freq. 48.970 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 47.409 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 470.774 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 382.074 cycles/op (6.9 stdv)
+Init std HashMapTest: 429.976 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 349.065 cycles/op (3.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 314.553 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 249.641 cycles/op (6.8 stdv) ....... PASS
+Init fast HashMapTest: 283.083 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 239.073 cycles/op (5.0 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.294658 seconds
---- Testing City32 "Google CityHash32WithSeed (old)" POOR
+Verification value is 0x00000001 - Testing took 12.443875 seconds
+--- Testing City32 "Google CityHash32WithSeed (v1.1)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x174504f7f788 - 0x174504f7f71c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.970 bytes/cycle - 5636.79 MiB/sec @ 3 ghz
-Alignment 6 - 1.970 bytes/cycle - 5634.79 MiB/sec @ 3 ghz
-Alignment 5 - 1.968 bytes/cycle - 5631.26 MiB/sec @ 3 ghz
-Alignment 4 - 1.979 bytes/cycle - 5661.57 MiB/sec @ 3 ghz
-Alignment 3 - 1.962 bytes/cycle - 5613.51 MiB/sec @ 3 ghz
-Alignment 2 - 1.968 bytes/cycle - 5631.62 MiB/sec @ 3 ghz
-Alignment 1 - 1.969 bytes/cycle - 5633.04 MiB/sec @ 3 ghz
-Alignment 0 - 1.979 bytes/cycle - 5660.57 MiB/sec @ 3 ghz
-Average - 1.971 bytes/cycle - 5637.89 MiB/sec @ 3 ghz
+Alignment 7 - 2.006 bytes/cycle - 5740.47 MiB/sec @ 3 ghz
+Alignment 6 - 2.007 bytes/cycle - 5742.70 MiB/sec @ 3 ghz
+Alignment 5 - 2.007 bytes/cycle - 5741.78 MiB/sec @ 3 ghz
+Alignment 4 - 2.015 bytes/cycle - 5764.27 MiB/sec @ 3 ghz
+Alignment 3 - 2.005 bytes/cycle - 5737.38 MiB/sec @ 3 ghz
+Alignment 2 - 2.005 bytes/cycle - 5737.22 MiB/sec @ 3 ghz
+Alignment 1 - 2.005 bytes/cycle - 5737.48 MiB/sec @ 3 ghz
+Alignment 0 - 2.015 bytes/cycle - 5765.34 MiB/sec @ 3 ghz
+Average - 2.008 bytes/cycle - 5745.83 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 36.00 cycles/hash
-Small key speed test - 2-byte keys - 40.00 cycles/hash
-Small key speed test - 3-byte keys - 44.00 cycles/hash
-Small key speed test - 4-byte keys - 47.00 cycles/hash
-Small key speed test - 5-byte keys - 44.00 cycles/hash
-Small key speed test - 6-byte keys - 44.00 cycles/hash
-Small key speed test - 7-byte keys - 44.00 cycles/hash
-Small key speed test - 8-byte keys - 44.00 cycles/hash
-Small key speed test - 9-byte keys - 44.00 cycles/hash
-Small key speed test - 10-byte keys - 44.00 cycles/hash
-Small key speed test - 11-byte keys - 44.00 cycles/hash
-Small key speed test - 12-byte keys - 44.00 cycles/hash
-Small key speed test - 13-byte keys - 55.26 cycles/hash
-Small key speed test - 14-byte keys - 55.00 cycles/hash
-Small key speed test - 15-byte keys - 55.00 cycles/hash
-Small key speed test - 16-byte keys - 55.00 cycles/hash
-Small key speed test - 17-byte keys - 55.00 cycles/hash
-Small key speed test - 18-byte keys - 55.00 cycles/hash
-Small key speed test - 19-byte keys - 55.27 cycles/hash
-Small key speed test - 20-byte keys - 55.00 cycles/hash
-Small key speed test - 21-byte keys - 55.77 cycles/hash
-Small key speed test - 22-byte keys - 55.81 cycles/hash
-Small key speed test - 23-byte keys - 55.88 cycles/hash
-Small key speed test - 24-byte keys - 55.52 cycles/hash
-Small key speed test - 25-byte keys - 66.00 cycles/hash
-Small key speed test - 26-byte keys - 66.18 cycles/hash
-Small key speed test - 27-byte keys - 66.20 cycles/hash
-Small key speed test - 28-byte keys - 67.75 cycles/hash
-Small key speed test - 29-byte keys - 66.81 cycles/hash
-Small key speed test - 30-byte keys - 66.77 cycles/hash
-Small key speed test - 31-byte keys - 66.79 cycles/hash
-Average 53.193 cycles/hash
+Small key speed test - 1-byte keys - 35.96 cycles/hash
+Small key speed test - 2-byte keys - 39.00 cycles/hash
+Small key speed test - 3-byte keys - 43.00 cycles/hash
+Small key speed test - 4-byte keys - 46.00 cycles/hash
+Small key speed test - 5-byte keys - 42.00 cycles/hash
+Small key speed test - 6-byte keys - 42.13 cycles/hash
+Small key speed test - 7-byte keys - 42.00 cycles/hash
+Small key speed test - 8-byte keys - 42.00 cycles/hash
+Small key speed test - 9-byte keys - 42.14 cycles/hash
+Small key speed test - 10-byte keys - 42.00 cycles/hash
+Small key speed test - 11-byte keys - 42.00 cycles/hash
+Small key speed test - 12-byte keys - 42.00 cycles/hash
+Small key speed test - 13-byte keys - 54.43 cycles/hash
+Small key speed test - 14-byte keys - 54.41 cycles/hash
+Small key speed test - 15-byte keys - 54.00 cycles/hash
+Small key speed test - 16-byte keys - 54.00 cycles/hash
+Small key speed test - 17-byte keys - 54.27 cycles/hash
+Small key speed test - 18-byte keys - 54.25 cycles/hash
+Small key speed test - 19-byte keys - 54.00 cycles/hash
+Small key speed test - 20-byte keys - 54.00 cycles/hash
+Small key speed test - 21-byte keys - 54.34 cycles/hash
+Small key speed test - 22-byte keys - 54.00 cycles/hash
+Small key speed test - 23-byte keys - 54.47 cycles/hash
+Small key speed test - 24-byte keys - 54.31 cycles/hash
+Small key speed test - 25-byte keys - 65.94 cycles/hash
+Small key speed test - 26-byte keys - 65.93 cycles/hash
+Small key speed test - 27-byte keys - 65.93 cycles/hash
+Small key speed test - 28-byte keys - 65.94 cycles/hash
+Small key speed test - 29-byte keys - 65.88 cycles/hash
+Small key speed test - 30-byte keys - 65.88 cycles/hash
+Small key speed test - 31-byte keys - 65.88 cycles/hash
+Small key speed test - 32-byte keys - 65.93 cycles/hash
+Average 52.438 cycles/hash
+Average, weighted by key length freq. 52.070 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 48.035 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 442.310 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 376.681 cycles/op (8.2 stdv)
+Init std HashMapTest: 409.775 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 335.982 cycles/op (3.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 332.584 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 260.987 cycles/op (6.2 stdv) ....... PASS
+Init fast HashMapTest: 298.289 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 242.694 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.399215 seconds
+Verification value is 0x00000001 - Testing took 13.368233 seconds
--- Testing metrohash64 "MetroHash64, 64-bit" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x175039cd51e8 - 0x175039cd517c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.029 bytes/cycle - 14389.16 MiB/sec @ 3 ghz
-Alignment 6 - 5.036 bytes/cycle - 14408.51 MiB/sec @ 3 ghz
-Alignment 5 - 5.045 bytes/cycle - 14433.43 MiB/sec @ 3 ghz
-Alignment 4 - 5.048 bytes/cycle - 14441.56 MiB/sec @ 3 ghz
-Alignment 3 - 5.039 bytes/cycle - 14417.79 MiB/sec @ 3 ghz
-Alignment 2 - 5.047 bytes/cycle - 14440.57 MiB/sec @ 3 ghz
-Alignment 1 - 5.035 bytes/cycle - 14405.55 MiB/sec @ 3 ghz
-Alignment 0 - 5.107 bytes/cycle - 14612.21 MiB/sec @ 3 ghz
-Average - 5.048 bytes/cycle - 14443.60 MiB/sec @ 3 ghz
+Alignment 7 - 4.257 bytes/cycle - 12180.12 MiB/sec @ 3 ghz
+Alignment 6 - 5.066 bytes/cycle - 14494.09 MiB/sec @ 3 ghz
+Alignment 5 - 5.061 bytes/cycle - 14479.31 MiB/sec @ 3 ghz
+Alignment 4 - 5.057 bytes/cycle - 14468.47 MiB/sec @ 3 ghz
+Alignment 3 - 5.058 bytes/cycle - 14469.88 MiB/sec @ 3 ghz
+Alignment 2 - 5.057 bytes/cycle - 14468.86 MiB/sec @ 3 ghz
+Alignment 1 - 5.057 bytes/cycle - 14468.49 MiB/sec @ 3 ghz
+Alignment 0 - 5.118 bytes/cycle - 14643.84 MiB/sec @ 3 ghz
+Average - 4.966 bytes/cycle - 14209.14 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 28.00 cycles/hash
Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 34.00 cycles/hash
-Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 34.00 cycles/hash
-Small key speed test - 6-byte keys - 33.99 cycles/hash
-Small key speed test - 7-byte keys - 40.00 cycles/hash
-Small key speed test - 8-byte keys - 27.99 cycles/hash
+Small key speed test - 3-byte keys - 33.95 cycles/hash
+Small key speed test - 4-byte keys - 27.84 cycles/hash
+Small key speed test - 5-byte keys - 33.98 cycles/hash
+Small key speed test - 6-byte keys - 33.98 cycles/hash
+Small key speed test - 7-byte keys - 39.78 cycles/hash
+Small key speed test - 8-byte keys - 27.87 cycles/hash
Small key speed test - 9-byte keys - 34.00 cycles/hash
Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 39.69 cycles/hash
-Small key speed test - 12-byte keys - 34.00 cycles/hash
-Small key speed test - 13-byte keys - 40.00 cycles/hash
-Small key speed test - 14-byte keys - 39.95 cycles/hash
-Small key speed test - 15-byte keys - 45.00 cycles/hash
+Small key speed test - 11-byte keys - 39.81 cycles/hash
+Small key speed test - 12-byte keys - 33.99 cycles/hash
+Small key speed test - 13-byte keys - 39.81 cycles/hash
+Small key speed test - 14-byte keys - 39.62 cycles/hash
+Small key speed test - 15-byte keys - 44.91 cycles/hash
Small key speed test - 16-byte keys - 34.00 cycles/hash
Small key speed test - 17-byte keys - 40.00 cycles/hash
-Small key speed test - 18-byte keys - 39.67 cycles/hash
-Small key speed test - 19-byte keys - 44.98 cycles/hash
+Small key speed test - 18-byte keys - 39.74 cycles/hash
+Small key speed test - 19-byte keys - 44.32 cycles/hash
Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 45.14 cycles/hash
+Small key speed test - 21-byte keys - 45.00 cycles/hash
Small key speed test - 22-byte keys - 45.00 cycles/hash
Small key speed test - 23-byte keys - 52.00 cycles/hash
-Small key speed test - 24-byte keys - 39.18 cycles/hash
-Small key speed test - 25-byte keys - 45.99 cycles/hash
-Small key speed test - 26-byte keys - 45.17 cycles/hash
-Small key speed test - 27-byte keys - 51.87 cycles/hash
-Small key speed test - 28-byte keys - 45.00 cycles/hash
-Small key speed test - 29-byte keys - 52.00 cycles/hash
-Small key speed test - 30-byte keys - 52.19 cycles/hash
-Small key speed test - 31-byte keys - 58.00 cycles/hash
-Average 40.317 cycles/hash
+Small key speed test - 24-byte keys - 39.00 cycles/hash
+Small key speed test - 25-byte keys - 45.18 cycles/hash
+Small key speed test - 26-byte keys - 45.00 cycles/hash
+Small key speed test - 27-byte keys - 51.81 cycles/hash
+Small key speed test - 28-byte keys - 44.89 cycles/hash
+Small key speed test - 29-byte keys - 51.90 cycles/hash
+Small key speed test - 30-byte keys - 52.00 cycles/hash
+Small key speed test - 31-byte keys - 57.98 cycles/hash
+Small key speed test - 32-byte keys - 60.88 cycles/hash
+Average 40.851 cycles/hash
+Average, weighted by key length freq. 40.377 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.088 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 458.585 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 367.227 cycles/op (6.7 stdv)
+Init std HashMapTest: 416.707 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 340.904 cycles/op (2.8 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 290.075 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 225.160 cycles/op (4.6 stdv) ....... PASS
+Init fast HashMapTest: 284.277 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 225.159 cycles/op (2.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.475733 seconds
+Verification value is 0x00000001 - Testing took 10.802971 seconds
--- Testing metrohash64_1 "MetroHash64_1, 64-bit (legacy)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x175947ea8cdc - 0x175947ea8c70). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.134 bytes/cycle - 14689.11 MiB/sec @ 3 ghz
-Alignment 6 - 5.143 bytes/cycle - 14714.74 MiB/sec @ 3 ghz
-Alignment 5 - 5.142 bytes/cycle - 14711.83 MiB/sec @ 3 ghz
-Alignment 4 - 5.141 bytes/cycle - 14707.84 MiB/sec @ 3 ghz
-Alignment 3 - 5.141 bytes/cycle - 14708.07 MiB/sec @ 3 ghz
-Alignment 2 - 5.139 bytes/cycle - 14701.46 MiB/sec @ 3 ghz
-Alignment 1 - 5.153 bytes/cycle - 14744.07 MiB/sec @ 3 ghz
-Alignment 0 - 4.690 bytes/cycle - 13419.05 MiB/sec @ 3 ghz
-Average - 5.085 bytes/cycle - 14549.52 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 34.00 cycles/hash
-Small key speed test - 2-byte keys - 34.00 cycles/hash
-Small key speed test - 3-byte keys - 41.00 cycles/hash
-Small key speed test - 4-byte keys - 34.00 cycles/hash
-Small key speed test - 5-byte keys - 37.77 cycles/hash
-Small key speed test - 6-byte keys - 33.00 cycles/hash
-Small key speed test - 7-byte keys - 39.00 cycles/hash
-Small key speed test - 8-byte keys - 27.00 cycles/hash
-Small key speed test - 9-byte keys - 33.00 cycles/hash
-Small key speed test - 10-byte keys - 33.00 cycles/hash
-Small key speed test - 11-byte keys - 39.00 cycles/hash
-Small key speed test - 12-byte keys - 33.00 cycles/hash
-Small key speed test - 13-byte keys - 39.00 cycles/hash
-Small key speed test - 14-byte keys - 38.89 cycles/hash
-Small key speed test - 15-byte keys - 44.00 cycles/hash
-Small key speed test - 16-byte keys - 34.00 cycles/hash
-Small key speed test - 17-byte keys - 39.00 cycles/hash
-Small key speed test - 18-byte keys - 39.00 cycles/hash
-Small key speed test - 19-byte keys - 44.00 cycles/hash
-Small key speed test - 20-byte keys - 38.56 cycles/hash
-Small key speed test - 21-byte keys - 45.00 cycles/hash
-Small key speed test - 22-byte keys - 44.64 cycles/hash
-Small key speed test - 23-byte keys - 51.17 cycles/hash
-Small key speed test - 24-byte keys - 38.98 cycles/hash
-Small key speed test - 25-byte keys - 45.00 cycles/hash
-Small key speed test - 26-byte keys - 44.94 cycles/hash
-Small key speed test - 27-byte keys - 50.77 cycles/hash
-Small key speed test - 28-byte keys - 44.97 cycles/hash
-Small key speed test - 29-byte keys - 51.00 cycles/hash
-Small key speed test - 30-byte keys - 50.99 cycles/hash
-Small key speed test - 31-byte keys - 56.00 cycles/hash
-Average 40.570 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 443.689 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 380.132 cycles/op (25.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 340.789 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 259.473 cycles/op (5.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.611908 seconds
---- Testing metrohash64_2 "MetroHash64_2, 64-bit (legacy)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.178 bytes/cycle - 11954.17 MiB/sec @ 3 ghz
-Alignment 6 - 4.179 bytes/cycle - 11955.32 MiB/sec @ 3 ghz
-Alignment 5 - 4.271 bytes/cycle - 12220.00 MiB/sec @ 3 ghz
-Alignment 4 - 5.101 bytes/cycle - 14593.84 MiB/sec @ 3 ghz
-Alignment 3 - 5.087 bytes/cycle - 14553.67 MiB/sec @ 3 ghz
-Alignment 2 - 5.093 bytes/cycle - 14569.82 MiB/sec @ 3 ghz
-Alignment 1 - 5.082 bytes/cycle - 14538.56 MiB/sec @ 3 ghz
-Alignment 0 - 5.133 bytes/cycle - 14686.74 MiB/sec @ 3 ghz
-Average - 4.765 bytes/cycle - 13634.01 MiB/sec @ 3 ghz
+Alignment 7 - 5.046 bytes/cycle - 14437.02 MiB/sec @ 3 ghz
+Alignment 6 - 5.060 bytes/cycle - 14476.34 MiB/sec @ 3 ghz
+Alignment 5 - 5.060 bytes/cycle - 14477.74 MiB/sec @ 3 ghz
+Alignment 4 - 5.060 bytes/cycle - 14476.47 MiB/sec @ 3 ghz
+Alignment 3 - 5.061 bytes/cycle - 14480.71 MiB/sec @ 3 ghz
+Alignment 2 - 5.060 bytes/cycle - 14477.46 MiB/sec @ 3 ghz
+Alignment 1 - 5.061 bytes/cycle - 14478.76 MiB/sec @ 3 ghz
+Alignment 0 - 5.123 bytes/cycle - 14657.90 MiB/sec @ 3 ghz
+Average - 5.066 bytes/cycle - 14495.30 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 28.00 cycles/hash
Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 33.51 cycles/hash
+Small key speed test - 3-byte keys - 33.22 cycles/hash
Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 33.61 cycles/hash
-Small key speed test - 6-byte keys - 33.68 cycles/hash
-Small key speed test - 7-byte keys - 39.00 cycles/hash
-Small key speed test - 8-byte keys - 27.95 cycles/hash
-Small key speed test - 9-byte keys - 33.12 cycles/hash
-Small key speed test - 10-byte keys - 33.97 cycles/hash
-Small key speed test - 11-byte keys - 39.96 cycles/hash
+Small key speed test - 5-byte keys - 33.76 cycles/hash
+Small key speed test - 6-byte keys - 34.00 cycles/hash
+Small key speed test - 7-byte keys - 39.75 cycles/hash
+Small key speed test - 8-byte keys - 27.99 cycles/hash
+Small key speed test - 9-byte keys - 33.77 cycles/hash
+Small key speed test - 10-byte keys - 34.00 cycles/hash
+Small key speed test - 11-byte keys - 39.95 cycles/hash
Small key speed test - 12-byte keys - 34.00 cycles/hash
-Small key speed test - 13-byte keys - 39.15 cycles/hash
-Small key speed test - 14-byte keys - 39.00 cycles/hash
-Small key speed test - 15-byte keys - 44.86 cycles/hash
-Small key speed test - 16-byte keys - 35.00 cycles/hash
-Small key speed test - 17-byte keys - 39.95 cycles/hash
-Small key speed test - 18-byte keys - 39.15 cycles/hash
-Small key speed test - 19-byte keys - 44.98 cycles/hash
+Small key speed test - 13-byte keys - 39.87 cycles/hash
+Small key speed test - 14-byte keys - 39.22 cycles/hash
+Small key speed test - 15-byte keys - 45.00 cycles/hash
+Small key speed test - 16-byte keys - 34.93 cycles/hash
+Small key speed test - 17-byte keys - 40.00 cycles/hash
+Small key speed test - 18-byte keys - 39.74 cycles/hash
+Small key speed test - 19-byte keys - 45.00 cycles/hash
Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 44.98 cycles/hash
+Small key speed test - 21-byte keys - 46.00 cycles/hash
Small key speed test - 22-byte keys - 45.00 cycles/hash
-Small key speed test - 23-byte keys - 51.31 cycles/hash
+Small key speed test - 23-byte keys - 52.00 cycles/hash
Small key speed test - 24-byte keys - 39.00 cycles/hash
Small key speed test - 25-byte keys - 46.00 cycles/hash
-Small key speed test - 26-byte keys - 45.78 cycles/hash
-Small key speed test - 27-byte keys - 51.85 cycles/hash
+Small key speed test - 26-byte keys - 45.00 cycles/hash
+Small key speed test - 27-byte keys - 51.00 cycles/hash
Small key speed test - 28-byte keys - 45.00 cycles/hash
-Small key speed test - 29-byte keys - 51.99 cycles/hash
-Small key speed test - 30-byte keys - 52.00 cycles/hash
-Small key speed test - 31-byte keys - 57.65 cycles/hash
-Average 40.144 cycles/hash
+Small key speed test - 29-byte keys - 51.88 cycles/hash
+Small key speed test - 30-byte keys - 51.78 cycles/hash
+Small key speed test - 31-byte keys - 57.00 cycles/hash
+Small key speed test - 32-byte keys - 59.81 cycles/hash
+Average 40.834 cycles/hash
+Average, weighted by key length freq. 40.482 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.395 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 451.037 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 375.371 cycles/op (6.7 stdv)
+Init std HashMapTest: 424.186 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 333.062 cycles/op (2.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 303.184 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 231.985 cycles/op (5.7 stdv) ....... PASS
+Init fast HashMapTest: 273.707 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 212.996 cycles/op (1.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.659565 seconds
---- Testing metrohash128 "MetroHash128, 128-bit" GOOD
+Verification value is 0x00000001 - Testing took 10.676737 seconds
+--- Testing metrohash64_2 "MetroHash64_2, 64-bit (legacy)" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17623adef7cc - 0x17623adef760). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.457 bytes/cycle - 15613.01 MiB/sec @ 3 ghz
-Alignment 6 - 5.456 bytes/cycle - 15609.51 MiB/sec @ 3 ghz
-Alignment 5 - 5.457 bytes/cycle - 15612.87 MiB/sec @ 3 ghz
-Alignment 4 - 5.457 bytes/cycle - 15612.14 MiB/sec @ 3 ghz
-Alignment 3 - 5.450 bytes/cycle - 15593.83 MiB/sec @ 3 ghz
-Alignment 2 - 5.454 bytes/cycle - 15605.34 MiB/sec @ 3 ghz
-Alignment 1 - 5.456 bytes/cycle - 15609.22 MiB/sec @ 3 ghz
-Alignment 0 - 5.546 bytes/cycle - 15866.62 MiB/sec @ 3 ghz
-Average - 5.467 bytes/cycle - 15640.32 MiB/sec @ 3 ghz
+Alignment 7 - 5.003 bytes/cycle - 14313.14 MiB/sec @ 3 ghz
+Alignment 6 - 5.013 bytes/cycle - 14342.03 MiB/sec @ 3 ghz
+Alignment 5 - 5.013 bytes/cycle - 14340.92 MiB/sec @ 3 ghz
+Alignment 4 - 5.013 bytes/cycle - 14343.33 MiB/sec @ 3 ghz
+Alignment 3 - 5.010 bytes/cycle - 14334.89 MiB/sec @ 3 ghz
+Alignment 2 - 5.011 bytes/cycle - 14337.39 MiB/sec @ 3 ghz
+Alignment 1 - 5.012 bytes/cycle - 14339.40 MiB/sec @ 3 ghz
+Alignment 0 - 5.077 bytes/cycle - 14524.00 MiB/sec @ 3 ghz
+Average - 5.019 bytes/cycle - 14359.39 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 58.48 cycles/hash
-Small key speed test - 2-byte keys - 60.00 cycles/hash
-Small key speed test - 3-byte keys - 62.96 cycles/hash
-Small key speed test - 4-byte keys - 57.00 cycles/hash
-Small key speed test - 5-byte keys - 68.00 cycles/hash
-Small key speed test - 6-byte keys - 65.93 cycles/hash
-Small key speed test - 7-byte keys - 69.91 cycles/hash
-Small key speed test - 8-byte keys - 59.93 cycles/hash
-Small key speed test - 9-byte keys - 63.00 cycles/hash
-Small key speed test - 10-byte keys - 70.00 cycles/hash
-Small key speed test - 11-byte keys - 73.94 cycles/hash
-Small key speed test - 12-byte keys - 62.77 cycles/hash
-Small key speed test - 13-byte keys - 73.83 cycles/hash
-Small key speed test - 14-byte keys - 71.98 cycles/hash
-Small key speed test - 15-byte keys - 75.12 cycles/hash
-Small key speed test - 16-byte keys - 64.85 cycles/hash
-Small key speed test - 17-byte keys - 74.79 cycles/hash
-Small key speed test - 18-byte keys - 73.59 cycles/hash
-Small key speed test - 19-byte keys - 77.00 cycles/hash
-Small key speed test - 20-byte keys - 75.00 cycles/hash
-Small key speed test - 21-byte keys - 85.93 cycles/hash
-Small key speed test - 22-byte keys - 83.99 cycles/hash
-Small key speed test - 23-byte keys - 86.52 cycles/hash
-Small key speed test - 24-byte keys - 73.00 cycles/hash
-Small key speed test - 25-byte keys - 76.00 cycles/hash
-Small key speed test - 26-byte keys - 83.67 cycles/hash
-Small key speed test - 27-byte keys - 86.56 cycles/hash
-Small key speed test - 28-byte keys - 76.83 cycles/hash
-Small key speed test - 29-byte keys - 86.58 cycles/hash
-Small key speed test - 30-byte keys - 84.99 cycles/hash
-Small key speed test - 31-byte keys - 87.82 cycles/hash
-Average 73.224 cycles/hash
+Small key speed test - 1-byte keys - 28.00 cycles/hash
+Small key speed test - 2-byte keys - 28.00 cycles/hash
+Small key speed test - 3-byte keys - 34.00 cycles/hash
+Small key speed test - 4-byte keys - 28.00 cycles/hash
+Small key speed test - 5-byte keys - 34.00 cycles/hash
+Small key speed test - 6-byte keys - 34.00 cycles/hash
+Small key speed test - 7-byte keys - 40.00 cycles/hash
+Small key speed test - 8-byte keys - 28.00 cycles/hash
+Small key speed test - 9-byte keys - 34.00 cycles/hash
+Small key speed test - 10-byte keys - 34.00 cycles/hash
+Small key speed test - 11-byte keys - 40.00 cycles/hash
+Small key speed test - 12-byte keys - 34.00 cycles/hash
+Small key speed test - 13-byte keys - 40.00 cycles/hash
+Small key speed test - 14-byte keys - 39.99 cycles/hash
+Small key speed test - 15-byte keys - 45.00 cycles/hash
+Small key speed test - 16-byte keys - 35.13 cycles/hash
+Small key speed test - 17-byte keys - 40.00 cycles/hash
+Small key speed test - 18-byte keys - 40.00 cycles/hash
+Small key speed test - 19-byte keys - 45.00 cycles/hash
+Small key speed test - 20-byte keys - 39.61 cycles/hash
+Small key speed test - 21-byte keys - 45.00 cycles/hash
+Small key speed test - 22-byte keys - 45.15 cycles/hash
+Small key speed test - 23-byte keys - 52.00 cycles/hash
+Small key speed test - 24-byte keys - 39.89 cycles/hash
+Small key speed test - 25-byte keys - 46.00 cycles/hash
+Small key speed test - 26-byte keys - 46.00 cycles/hash
+Small key speed test - 27-byte keys - 52.00 cycles/hash
+Small key speed test - 28-byte keys - 45.16 cycles/hash
+Small key speed test - 29-byte keys - 52.18 cycles/hash
+Small key speed test - 30-byte keys - 52.85 cycles/hash
+Small key speed test - 31-byte keys - 58.00 cycles/hash
+Small key speed test - 32-byte keys - 60.00 cycles/hash
+Average 41.093 cycles/hash
+Average, weighted by key length freq. 40.668 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.573 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 485.858 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 405.729 cycles/op (7.1 stdv)
+Init std HashMapTest: 427.772 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 337.863 cycles/op (1.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 348.601 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 269.225 cycles/op (4.7 stdv) ....... PASS
+Init fast HashMapTest: 278.082 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 215.525 cycles/op (1.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 16.279070 seconds
---- Testing metrohash128_1 "MetroHash128_1, 128-bit (legacy)" GOOD
+Verification value is 0x00000001 - Testing took 10.802458 seconds
+--- Testing metrohash128 "MetroHash128, 128-bit" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x176b48bf0360 - 0x176b48bf02f4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.496 bytes/cycle - 15723.53 MiB/sec @ 3 ghz
-Alignment 6 - 5.507 bytes/cycle - 15757.07 MiB/sec @ 3 ghz
-Alignment 5 - 5.518 bytes/cycle - 15786.03 MiB/sec @ 3 ghz
-Alignment 4 - 5.521 bytes/cycle - 15796.35 MiB/sec @ 3 ghz
-Alignment 3 - 5.513 bytes/cycle - 15773.80 MiB/sec @ 3 ghz
-Alignment 2 - 5.508 bytes/cycle - 15759.90 MiB/sec @ 3 ghz
-Alignment 1 - 5.509 bytes/cycle - 15761.11 MiB/sec @ 3 ghz
-Alignment 0 - 5.615 bytes/cycle - 16063.52 MiB/sec @ 3 ghz
-Average - 5.523 bytes/cycle - 15802.66 MiB/sec @ 3 ghz
+Alignment 7 - 5.515 bytes/cycle - 15779.40 MiB/sec @ 3 ghz
+Alignment 6 - 5.524 bytes/cycle - 15804.57 MiB/sec @ 3 ghz
+Alignment 5 - 5.531 bytes/cycle - 15824.32 MiB/sec @ 3 ghz
+Alignment 4 - 5.529 bytes/cycle - 15819.65 MiB/sec @ 3 ghz
+Alignment 3 - 5.526 bytes/cycle - 15811.25 MiB/sec @ 3 ghz
+Alignment 2 - 5.525 bytes/cycle - 15806.00 MiB/sec @ 3 ghz
+Alignment 1 - 5.530 bytes/cycle - 15822.17 MiB/sec @ 3 ghz
+Alignment 0 - 5.632 bytes/cycle - 16113.65 MiB/sec @ 3 ghz
+Average - 5.539 bytes/cycle - 15847.63 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 56.00 cycles/hash
+Small key speed test - 1-byte keys - 57.00 cycles/hash
Small key speed test - 2-byte keys - 59.00 cycles/hash
-Small key speed test - 3-byte keys - 61.91 cycles/hash
-Small key speed test - 4-byte keys - 56.47 cycles/hash
-Small key speed test - 5-byte keys - 67.14 cycles/hash
-Small key speed test - 6-byte keys - 64.70 cycles/hash
-Small key speed test - 7-byte keys - 68.46 cycles/hash
-Small key speed test - 8-byte keys - 61.12 cycles/hash
-Small key speed test - 9-byte keys - 63.00 cycles/hash
-Small key speed test - 10-byte keys - 69.48 cycles/hash
-Small key speed test - 11-byte keys - 72.95 cycles/hash
-Small key speed test - 12-byte keys - 62.00 cycles/hash
-Small key speed test - 13-byte keys - 72.95 cycles/hash
-Small key speed test - 14-byte keys - 70.69 cycles/hash
-Small key speed test - 15-byte keys - 76.48 cycles/hash
-Small key speed test - 16-byte keys - 64.00 cycles/hash
-Small key speed test - 17-byte keys - 75.00 cycles/hash
-Small key speed test - 18-byte keys - 72.54 cycles/hash
-Small key speed test - 19-byte keys - 73.89 cycles/hash
-Small key speed test - 20-byte keys - 75.47 cycles/hash
-Small key speed test - 21-byte keys - 84.98 cycles/hash
-Small key speed test - 22-byte keys - 82.00 cycles/hash
-Small key speed test - 23-byte keys - 85.79 cycles/hash
-Small key speed test - 24-byte keys - 73.91 cycles/hash
-Small key speed test - 25-byte keys - 76.79 cycles/hash
-Small key speed test - 26-byte keys - 82.00 cycles/hash
+Small key speed test - 3-byte keys - 61.00 cycles/hash
+Small key speed test - 4-byte keys - 56.00 cycles/hash
+Small key speed test - 5-byte keys - 66.93 cycles/hash
+Small key speed test - 6-byte keys - 64.78 cycles/hash
+Small key speed test - 7-byte keys - 68.00 cycles/hash
+Small key speed test - 8-byte keys - 58.56 cycles/hash
+Small key speed test - 9-byte keys - 62.00 cycles/hash
+Small key speed test - 10-byte keys - 68.96 cycles/hash
+Small key speed test - 11-byte keys - 72.98 cycles/hash
+Small key speed test - 12-byte keys - 61.61 cycles/hash
+Small key speed test - 13-byte keys - 72.73 cycles/hash
+Small key speed test - 14-byte keys - 71.00 cycles/hash
+Small key speed test - 15-byte keys - 73.95 cycles/hash
+Small key speed test - 16-byte keys - 63.25 cycles/hash
+Small key speed test - 17-byte keys - 73.12 cycles/hash
+Small key speed test - 18-byte keys - 74.21 cycles/hash
+Small key speed test - 19-byte keys - 83.97 cycles/hash
+Small key speed test - 20-byte keys - 73.54 cycles/hash
+Small key speed test - 21-byte keys - 83.56 cycles/hash
+Small key speed test - 22-byte keys - 81.96 cycles/hash
+Small key speed test - 23-byte keys - 84.00 cycles/hash
+Small key speed test - 24-byte keys - 72.00 cycles/hash
+Small key speed test - 25-byte keys - 74.28 cycles/hash
+Small key speed test - 26-byte keys - 81.91 cycles/hash
Small key speed test - 27-byte keys - 85.00 cycles/hash
Small key speed test - 28-byte keys - 75.00 cycles/hash
-Small key speed test - 29-byte keys - 85.71 cycles/hash
-Small key speed test - 30-byte keys - 83.23 cycles/hash
-Small key speed test - 31-byte keys - 86.77 cycles/hash
-Average 72.400 cycles/hash
+Small key speed test - 29-byte keys - 84.00 cycles/hash
+Small key speed test - 30-byte keys - 83.00 cycles/hash
+Small key speed test - 31-byte keys - 86.23 cycles/hash
+Small key speed test - 32-byte keys - 81.00 cycles/hash
+Average 72.330 cycles/hash
+Average, weighted by key length freq. 72.718 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 64.818 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 466.457 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 404.121 cycles/op (6.0 stdv)
+Init std HashMapTest: 448.903 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 369.678 cycles/op (2.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 333.063 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 266.200 cycles/op (5.6 stdv) ....... PASS
+Init fast HashMapTest: 304.934 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 266.536 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 16.115786 seconds
---- Testing metrohash128_2 "MetroHash128_2, 128-bit (legacy)" GOOD
+Verification value is 0x00000001 - Testing took 16.364833 seconds
+--- Testing metrohash128_1 "MetroHash128_1, 128-bit (legacy)" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x177900798b04 - 0x177900798abc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.423 bytes/cycle - 15514.03 MiB/sec @ 3 ghz
-Alignment 6 - 5.430 bytes/cycle - 15536.48 MiB/sec @ 3 ghz
-Alignment 5 - 5.430 bytes/cycle - 15535.91 MiB/sec @ 3 ghz
-Alignment 4 - 5.431 bytes/cycle - 15539.64 MiB/sec @ 3 ghz
-Alignment 3 - 5.430 bytes/cycle - 15534.27 MiB/sec @ 3 ghz
-Alignment 2 - 5.426 bytes/cycle - 15523.05 MiB/sec @ 3 ghz
-Alignment 1 - 5.432 bytes/cycle - 15539.67 MiB/sec @ 3 ghz
-Alignment 0 - 5.552 bytes/cycle - 15885.39 MiB/sec @ 3 ghz
-Average - 5.444 bytes/cycle - 15576.05 MiB/sec @ 3 ghz
+Alignment 7 - 5.417 bytes/cycle - 15498.89 MiB/sec @ 3 ghz
+Alignment 6 - 5.423 bytes/cycle - 15513.98 MiB/sec @ 3 ghz
+Alignment 5 - 5.422 bytes/cycle - 15512.41 MiB/sec @ 3 ghz
+Alignment 4 - 5.423 bytes/cycle - 15514.14 MiB/sec @ 3 ghz
+Alignment 3 - 5.422 bytes/cycle - 15512.96 MiB/sec @ 3 ghz
+Alignment 2 - 5.422 bytes/cycle - 15512.04 MiB/sec @ 3 ghz
+Alignment 1 - 5.422 bytes/cycle - 15511.77 MiB/sec @ 3 ghz
+Alignment 0 - 5.549 bytes/cycle - 15875.02 MiB/sec @ 3 ghz
+Average - 5.437 bytes/cycle - 15556.40 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 57.00 cycles/hash
-Small key speed test - 2-byte keys - 60.40 cycles/hash
+Small key speed test - 2-byte keys - 60.46 cycles/hash
Small key speed test - 3-byte keys - 63.00 cycles/hash
Small key speed test - 4-byte keys - 57.00 cycles/hash
Small key speed test - 5-byte keys - 68.00 cycles/hash
-Small key speed test - 6-byte keys - 66.00 cycles/hash
-Small key speed test - 7-byte keys - 71.00 cycles/hash
-Small key speed test - 8-byte keys - 60.29 cycles/hash
-Small key speed test - 9-byte keys - 64.00 cycles/hash
-Small key speed test - 10-byte keys - 71.00 cycles/hash
-Small key speed test - 11-byte keys - 74.00 cycles/hash
+Small key speed test - 6-byte keys - 65.90 cycles/hash
+Small key speed test - 7-byte keys - 69.63 cycles/hash
+Small key speed test - 8-byte keys - 60.00 cycles/hash
+Small key speed test - 9-byte keys - 63.76 cycles/hash
+Small key speed test - 10-byte keys - 70.25 cycles/hash
+Small key speed test - 11-byte keys - 73.92 cycles/hash
Small key speed test - 12-byte keys - 63.00 cycles/hash
-Small key speed test - 13-byte keys - 73.91 cycles/hash
-Small key speed test - 14-byte keys - 72.00 cycles/hash
-Small key speed test - 15-byte keys - 75.85 cycles/hash
-Small key speed test - 16-byte keys - 65.00 cycles/hash
-Small key speed test - 17-byte keys - 76.15 cycles/hash
-Small key speed test - 18-byte keys - 73.94 cycles/hash
-Small key speed test - 19-byte keys - 77.30 cycles/hash
-Small key speed test - 20-byte keys - 77.00 cycles/hash
-Small key speed test - 21-byte keys - 86.53 cycles/hash
-Small key speed test - 22-byte keys - 83.97 cycles/hash
-Small key speed test - 23-byte keys - 87.62 cycles/hash
-Small key speed test - 24-byte keys - 74.68 cycles/hash
-Small key speed test - 25-byte keys - 78.29 cycles/hash
-Small key speed test - 26-byte keys - 83.24 cycles/hash
+Small key speed test - 13-byte keys - 73.29 cycles/hash
+Small key speed test - 14-byte keys - 71.00 cycles/hash
+Small key speed test - 15-byte keys - 75.65 cycles/hash
+Small key speed test - 16-byte keys - 64.96 cycles/hash
+Small key speed test - 17-byte keys - 76.20 cycles/hash
+Small key speed test - 18-byte keys - 73.34 cycles/hash
+Small key speed test - 19-byte keys - 75.92 cycles/hash
+Small key speed test - 20-byte keys - 76.87 cycles/hash
+Small key speed test - 21-byte keys - 86.00 cycles/hash
+Small key speed test - 22-byte keys - 82.92 cycles/hash
+Small key speed test - 23-byte keys - 86.00 cycles/hash
+Small key speed test - 24-byte keys - 74.90 cycles/hash
+Small key speed test - 25-byte keys - 77.95 cycles/hash
+Small key speed test - 26-byte keys - 83.00 cycles/hash
Small key speed test - 27-byte keys - 86.00 cycles/hash
-Small key speed test - 28-byte keys - 76.00 cycles/hash
-Small key speed test - 29-byte keys - 86.94 cycles/hash
+Small key speed test - 28-byte keys - 75.00 cycles/hash
+Small key speed test - 29-byte keys - 86.86 cycles/hash
Small key speed test - 30-byte keys - 84.00 cycles/hash
-Small key speed test - 31-byte keys - 88.00 cycles/hash
-Average 73.583 cycles/hash
+Small key speed test - 31-byte keys - 87.89 cycles/hash
+Small key speed test - 32-byte keys - 82.00 cycles/hash
+Average 73.490 cycles/hash
+Average, weighted by key length freq. 73.669 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 66.339 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 485.497 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 414.056 cycles/op (7.0 stdv)
+Init std HashMapTest: 456.052 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 378.549 cycles/op (3.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 331.635 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 273.148 cycles/op (5.8 stdv) ....... PASS
+Init fast HashMapTest: 308.324 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 259.049 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 16.356091 seconds
---- Testing metrohash64crc_1 "MetroHash64crc_1 for x64 (legacy)" POOR
+Verification value is 0x00000001 - Testing took 16.645294 seconds
+--- Testing metrohash128_2 "MetroHash128_2, 128-bit (legacy)" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x1786f3d02a40 - 0x1786f3d029d4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.871 bytes/cycle - 8213.68 MiB/sec @ 3 ghz
-Alignment 6 - 2.879 bytes/cycle - 8237.64 MiB/sec @ 3 ghz
-Alignment 5 - 2.878 bytes/cycle - 8233.75 MiB/sec @ 3 ghz
-Alignment 4 - 2.877 bytes/cycle - 8230.30 MiB/sec @ 3 ghz
-Alignment 3 - 2.877 bytes/cycle - 8232.41 MiB/sec @ 3 ghz
-Alignment 2 - 2.875 bytes/cycle - 8225.71 MiB/sec @ 3 ghz
-Alignment 1 - 2.879 bytes/cycle - 8235.54 MiB/sec @ 3 ghz
-Alignment 0 - 2.694 bytes/cycle - 7708.33 MiB/sec @ 3 ghz
-Average - 2.854 bytes/cycle - 8164.67 MiB/sec @ 3 ghz
+Alignment 7 - 5.358 bytes/cycle - 15330.13 MiB/sec @ 3 ghz
+Alignment 6 - 5.373 bytes/cycle - 15371.62 MiB/sec @ 3 ghz
+Alignment 5 - 5.373 bytes/cycle - 15371.87 MiB/sec @ 3 ghz
+Alignment 4 - 5.366 bytes/cycle - 15351.59 MiB/sec @ 3 ghz
+Alignment 3 - 5.376 bytes/cycle - 15380.57 MiB/sec @ 3 ghz
+Alignment 2 - 5.372 bytes/cycle - 15368.95 MiB/sec @ 3 ghz
+Alignment 1 - 5.376 bytes/cycle - 15381.34 MiB/sec @ 3 ghz
+Alignment 0 - 5.492 bytes/cycle - 15712.40 MiB/sec @ 3 ghz
+Average - 5.386 bytes/cycle - 15408.56 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 28.00 cycles/hash
-Small key speed test - 2-byte keys - 28.30 cycles/hash
-Small key speed test - 3-byte keys - 36.27 cycles/hash
-Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 36.00 cycles/hash
-Small key speed test - 6-byte keys - 36.00 cycles/hash
-Small key speed test - 7-byte keys - 43.64 cycles/hash
-Small key speed test - 8-byte keys - 27.00 cycles/hash
-Small key speed test - 9-byte keys - 35.99 cycles/hash
-Small key speed test - 10-byte keys - 35.66 cycles/hash
-Small key speed test - 11-byte keys - 53.00 cycles/hash
-Small key speed test - 12-byte keys - 44.00 cycles/hash
-Small key speed test - 13-byte keys - 54.00 cycles/hash
-Small key speed test - 14-byte keys - 54.00 cycles/hash
-Small key speed test - 15-byte keys - 54.08 cycles/hash
-Small key speed test - 16-byte keys - 33.17 cycles/hash
-Small key speed test - 17-byte keys - 41.57 cycles/hash
-Small key speed test - 18-byte keys - 41.64 cycles/hash
-Small key speed test - 19-byte keys - 50.00 cycles/hash
-Small key speed test - 20-byte keys - 41.14 cycles/hash
-Small key speed test - 21-byte keys - 50.00 cycles/hash
-Small key speed test - 22-byte keys - 50.64 cycles/hash
-Small key speed test - 23-byte keys - 59.00 cycles/hash
-Small key speed test - 24-byte keys - 39.00 cycles/hash
-Small key speed test - 25-byte keys - 47.54 cycles/hash
-Small key speed test - 26-byte keys - 47.00 cycles/hash
-Small key speed test - 27-byte keys - 56.85 cycles/hash
-Small key speed test - 28-byte keys - 47.00 cycles/hash
-Small key speed test - 29-byte keys - 68.01 cycles/hash
-Small key speed test - 30-byte keys - 73.35 cycles/hash
-Small key speed test - 31-byte keys - 76.57 cycles/hash
-Average 45.691 cycles/hash
+Small key speed test - 1-byte keys - 58.00 cycles/hash
+Small key speed test - 2-byte keys - 61.00 cycles/hash
+Small key speed test - 3-byte keys - 63.43 cycles/hash
+Small key speed test - 4-byte keys - 58.00 cycles/hash
+Small key speed test - 5-byte keys - 69.00 cycles/hash
+Small key speed test - 6-byte keys - 66.33 cycles/hash
+Small key speed test - 7-byte keys - 70.00 cycles/hash
+Small key speed test - 8-byte keys - 61.00 cycles/hash
+Small key speed test - 9-byte keys - 64.72 cycles/hash
+Small key speed test - 10-byte keys - 71.00 cycles/hash
+Small key speed test - 11-byte keys - 74.79 cycles/hash
+Small key speed test - 12-byte keys - 63.88 cycles/hash
+Small key speed test - 13-byte keys - 75.00 cycles/hash
+Small key speed test - 14-byte keys - 72.54 cycles/hash
+Small key speed test - 15-byte keys - 76.65 cycles/hash
+Small key speed test - 16-byte keys - 64.89 cycles/hash
+Small key speed test - 17-byte keys - 76.77 cycles/hash
+Small key speed test - 18-byte keys - 74.27 cycles/hash
+Small key speed test - 19-byte keys - 75.58 cycles/hash
+Small key speed test - 20-byte keys - 77.24 cycles/hash
+Small key speed test - 21-byte keys - 87.15 cycles/hash
+Small key speed test - 22-byte keys - 83.93 cycles/hash
+Small key speed test - 23-byte keys - 87.00 cycles/hash
+Small key speed test - 24-byte keys - 75.90 cycles/hash
+Small key speed test - 25-byte keys - 79.00 cycles/hash
+Small key speed test - 26-byte keys - 84.00 cycles/hash
+Small key speed test - 27-byte keys - 87.22 cycles/hash
+Small key speed test - 28-byte keys - 76.00 cycles/hash
+Small key speed test - 29-byte keys - 88.00 cycles/hash
+Small key speed test - 30-byte keys - 85.11 cycles/hash
+Small key speed test - 31-byte keys - 88.77 cycles/hash
+Small key speed test - 32-byte keys - 83.17 cycles/hash
+Average 74.355 cycles/hash
+Average, weighted by key length freq. 74.533 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 66.891 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 449.954 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 369.372 cycles/op (7.2 stdv)
+Init std HashMapTest: 457.431 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 375.814 cycles/op (3.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.959 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 225.833 cycles/op (4.3 stdv) ....... PASS
+Init fast HashMapTest: 311.991 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 259.571 cycles/op (2.5 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.690818 seconds
---- Testing metrohash64crc_2 "MetroHash64crc_2 for x64 (legacy)" POOR
+Verification value is 0x00000001 - Testing took 16.807513 seconds
+--- Testing metrohash64crc_1 "MetroHash64crc_1 for x64 (legacy)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17950a012784 - 0x17950a012718). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.810 bytes/cycle - 8039.03 MiB/sec @ 3 ghz
-Alignment 6 - 2.813 bytes/cycle - 8048.88 MiB/sec @ 3 ghz
-Alignment 5 - 2.805 bytes/cycle - 8025.82 MiB/sec @ 3 ghz
-Alignment 4 - 2.808 bytes/cycle - 8034.34 MiB/sec @ 3 ghz
-Alignment 3 - 2.808 bytes/cycle - 8034.13 MiB/sec @ 3 ghz
-Alignment 2 - 2.808 bytes/cycle - 8034.61 MiB/sec @ 3 ghz
-Alignment 1 - 2.806 bytes/cycle - 8028.54 MiB/sec @ 3 ghz
-Alignment 0 - 2.631 bytes/cycle - 7527.69 MiB/sec @ 3 ghz
-Average - 2.786 bytes/cycle - 7971.63 MiB/sec @ 3 ghz
+Alignment 7 - 2.824 bytes/cycle - 8079.48 MiB/sec @ 3 ghz
+Alignment 6 - 2.823 bytes/cycle - 8075.54 MiB/sec @ 3 ghz
+Alignment 5 - 2.822 bytes/cycle - 8073.56 MiB/sec @ 3 ghz
+Alignment 4 - 2.821 bytes/cycle - 8072.06 MiB/sec @ 3 ghz
+Alignment 3 - 2.824 bytes/cycle - 8079.23 MiB/sec @ 3 ghz
+Alignment 2 - 2.823 bytes/cycle - 8076.24 MiB/sec @ 3 ghz
+Alignment 1 - 2.821 bytes/cycle - 8072.34 MiB/sec @ 3 ghz
+Alignment 0 - 2.642 bytes/cycle - 7558.77 MiB/sec @ 3 ghz
+Average - 2.800 bytes/cycle - 8010.90 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 29.00 cycles/hash
Small key speed test - 2-byte keys - 29.00 cycles/hash
-Small key speed test - 3-byte keys - 37.19 cycles/hash
-Small key speed test - 4-byte keys - 28.20 cycles/hash
-Small key speed test - 5-byte keys - 37.00 cycles/hash
-Small key speed test - 6-byte keys - 36.79 cycles/hash
-Small key speed test - 7-byte keys - 44.99 cycles/hash
-Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 36.66 cycles/hash
+Small key speed test - 3-byte keys - 37.00 cycles/hash
+Small key speed test - 4-byte keys - 28.00 cycles/hash
+Small key speed test - 5-byte keys - 36.99 cycles/hash
+Small key speed test - 6-byte keys - 36.15 cycles/hash
+Small key speed test - 7-byte keys - 44.66 cycles/hash
+Small key speed test - 8-byte keys - 27.99 cycles/hash
+Small key speed test - 9-byte keys - 36.00 cycles/hash
Small key speed test - 10-byte keys - 36.00 cycles/hash
-Small key speed test - 11-byte keys - 44.97 cycles/hash
-Small key speed test - 12-byte keys - 36.59 cycles/hash
-Small key speed test - 13-byte keys - 44.99 cycles/hash
-Small key speed test - 14-byte keys - 44.51 cycles/hash
+Small key speed test - 11-byte keys - 44.70 cycles/hash
+Small key speed test - 12-byte keys - 36.00 cycles/hash
+Small key speed test - 13-byte keys - 44.70 cycles/hash
+Small key speed test - 14-byte keys - 44.00 cycles/hash
Small key speed test - 15-byte keys - 53.00 cycles/hash
Small key speed test - 16-byte keys - 34.00 cycles/hash
-Small key speed test - 17-byte keys - 42.61 cycles/hash
-Small key speed test - 18-byte keys - 42.83 cycles/hash
+Small key speed test - 17-byte keys - 42.00 cycles/hash
+Small key speed test - 18-byte keys - 42.47 cycles/hash
Small key speed test - 19-byte keys - 51.00 cycles/hash
-Small key speed test - 20-byte keys - 42.14 cycles/hash
+Small key speed test - 20-byte keys - 42.23 cycles/hash
Small key speed test - 21-byte keys - 51.00 cycles/hash
-Small key speed test - 22-byte keys - 51.71 cycles/hash
-Small key speed test - 23-byte keys - 60.00 cycles/hash
-Small key speed test - 24-byte keys - 40.00 cycles/hash
-Small key speed test - 25-byte keys - 48.31 cycles/hash
-Small key speed test - 26-byte keys - 48.00 cycles/hash
+Small key speed test - 22-byte keys - 50.98 cycles/hash
+Small key speed test - 23-byte keys - 59.00 cycles/hash
+Small key speed test - 24-byte keys - 39.47 cycles/hash
+Small key speed test - 25-byte keys - 48.00 cycles/hash
+Small key speed test - 26-byte keys - 47.89 cycles/hash
Small key speed test - 27-byte keys - 57.00 cycles/hash
Small key speed test - 28-byte keys - 48.00 cycles/hash
+Small key speed test - 29-byte keys - 56.85 cycles/hash
+Small key speed test - 30-byte keys - 59.84 cycles/hash
+Small key speed test - 31-byte keys - 65.83 cycles/hash
+Small key speed test - 32-byte keys - 63.00 cycles/hash
+Average 44.430 cycles/hash
+Average, weighted by key length freq. 44.194 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 36.875 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
+
+[[[ 'Hashmap' Speed Tests ]]]
+
+std::unordered_map
+Init std HashMapTest: 430.889 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 340.321 cycles/op (3.1 stdv)
+
+greg7mdp/parallel-hashmap
+Init fast HashMapTest: 279.991 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 213.936 cycles/op (1.9 stdv) ....... PASS
+
+
+Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
+Verification value is 0x00000001 - Testing took 11.664531 seconds
+--- Testing metrohash64crc_2 "MetroHash64crc_2 for x64 (legacy)" POOR
+
+[[[ Speed Tests ]]]
+
+WARNING: timer resolution is 72 (0x48) ticks (0x179ed0e66668 - 0x179ed0e66620). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 2.793 bytes/cycle - 7991.25 MiB/sec @ 3 ghz
+Alignment 6 - 2.796 bytes/cycle - 7998.72 MiB/sec @ 3 ghz
+Alignment 5 - 2.797 bytes/cycle - 8002.21 MiB/sec @ 3 ghz
+Alignment 4 - 2.797 bytes/cycle - 8001.86 MiB/sec @ 3 ghz
+Alignment 3 - 2.799 bytes/cycle - 8008.73 MiB/sec @ 3 ghz
+Alignment 2 - 2.799 bytes/cycle - 8007.41 MiB/sec @ 3 ghz
+Alignment 1 - 2.799 bytes/cycle - 8007.16 MiB/sec @ 3 ghz
+Alignment 0 - 2.621 bytes/cycle - 7499.89 MiB/sec @ 3 ghz
+Average - 2.775 bytes/cycle - 7939.65 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 29.00 cycles/hash
+Small key speed test - 2-byte keys - 29.19 cycles/hash
+Small key speed test - 3-byte keys - 37.00 cycles/hash
+Small key speed test - 4-byte keys - 28.62 cycles/hash
+Small key speed test - 5-byte keys - 37.00 cycles/hash
+Small key speed test - 6-byte keys - 37.00 cycles/hash
+Small key speed test - 7-byte keys - 45.00 cycles/hash
+Small key speed test - 8-byte keys - 28.00 cycles/hash
+Small key speed test - 9-byte keys - 36.95 cycles/hash
+Small key speed test - 10-byte keys - 36.52 cycles/hash
+Small key speed test - 11-byte keys - 45.00 cycles/hash
+Small key speed test - 12-byte keys - 36.92 cycles/hash
+Small key speed test - 13-byte keys - 45.00 cycles/hash
+Small key speed test - 14-byte keys - 44.99 cycles/hash
+Small key speed test - 15-byte keys - 53.16 cycles/hash
+Small key speed test - 16-byte keys - 34.00 cycles/hash
+Small key speed test - 17-byte keys - 42.98 cycles/hash
+Small key speed test - 18-byte keys - 42.99 cycles/hash
+Small key speed test - 19-byte keys - 51.46 cycles/hash
+Small key speed test - 20-byte keys - 43.00 cycles/hash
+Small key speed test - 21-byte keys - 51.15 cycles/hash
+Small key speed test - 22-byte keys - 51.22 cycles/hash
+Small key speed test - 23-byte keys - 59.96 cycles/hash
+Small key speed test - 24-byte keys - 39.98 cycles/hash
+Small key speed test - 25-byte keys - 48.80 cycles/hash
+Small key speed test - 26-byte keys - 48.00 cycles/hash
+Small key speed test - 27-byte keys - 58.00 cycles/hash
+Small key speed test - 28-byte keys - 48.50 cycles/hash
Small key speed test - 29-byte keys - 57.00 cycles/hash
-Small key speed test - 30-byte keys - 59.58 cycles/hash
-Small key speed test - 31-byte keys - 66.18 cycles/hash
-Average 44.072 cycles/hash
+Small key speed test - 30-byte keys - 58.51 cycles/hash
+Small key speed test - 31-byte keys - 66.00 cycles/hash
+Small key speed test - 32-byte keys - 63.80 cycles/hash
+Average 44.835 cycles/hash
+Average, weighted by key length freq. 44.698 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 37.269 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 454.943 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.504 cycles/op (7.0 stdv)
+Init std HashMapTest: 432.940 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 347.402 cycles/op (4.3 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 303.549 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 234.539 cycles/op (7.0 stdv) ....... PASS
+Init fast HashMapTest: 291.678 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 222.010 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.503272 seconds
+Verification value is 0x00000001 - Testing took 11.780606 seconds
--- Testing cmetrohash64_1o "cmetrohash64_1 (shorter key optimized), 64-bit for x64" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 180 (0xb4) ticks (0x17a8b0c1cec8 - 0x17a8b0c1ce14). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.129 bytes/cycle - 14672.92 MiB/sec @ 3 ghz
-Alignment 6 - 5.146 bytes/cycle - 14721.97 MiB/sec @ 3 ghz
-Alignment 5 - 5.142 bytes/cycle - 14712.11 MiB/sec @ 3 ghz
-Alignment 4 - 5.140 bytes/cycle - 14706.63 MiB/sec @ 3 ghz
-Alignment 3 - 5.153 bytes/cycle - 14743.20 MiB/sec @ 3 ghz
-Alignment 2 - 5.146 bytes/cycle - 14721.68 MiB/sec @ 3 ghz
-Alignment 1 - 5.142 bytes/cycle - 14712.54 MiB/sec @ 3 ghz
-Alignment 0 - 5.204 bytes/cycle - 14888.43 MiB/sec @ 3 ghz
-Average - 5.150 bytes/cycle - 14734.93 MiB/sec @ 3 ghz
+Alignment 7 - 5.115 bytes/cycle - 14634.72 MiB/sec @ 3 ghz
+Alignment 6 - 5.125 bytes/cycle - 14663.34 MiB/sec @ 3 ghz
+Alignment 5 - 5.124 bytes/cycle - 14659.66 MiB/sec @ 3 ghz
+Alignment 4 - 5.125 bytes/cycle - 14662.50 MiB/sec @ 3 ghz
+Alignment 3 - 5.114 bytes/cycle - 14632.11 MiB/sec @ 3 ghz
+Alignment 2 - 5.125 bytes/cycle - 14663.64 MiB/sec @ 3 ghz
+Alignment 1 - 5.125 bytes/cycle - 14663.33 MiB/sec @ 3 ghz
+Alignment 0 - 5.190 bytes/cycle - 14849.18 MiB/sec @ 3 ghz
+Average - 5.131 bytes/cycle - 14678.56 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 28.99 cycles/hash
-Small key speed test - 2-byte keys - 28.99 cycles/hash
-Small key speed test - 3-byte keys - 33.00 cycles/hash
-Small key speed test - 4-byte keys - 28.99 cycles/hash
-Small key speed test - 5-byte keys - 33.00 cycles/hash
-Small key speed test - 6-byte keys - 33.00 cycles/hash
-Small key speed test - 7-byte keys - 39.16 cycles/hash
+Small key speed test - 1-byte keys - 29.00 cycles/hash
+Small key speed test - 2-byte keys - 29.00 cycles/hash
+Small key speed test - 3-byte keys - 33.18 cycles/hash
+Small key speed test - 4-byte keys - 29.00 cycles/hash
+Small key speed test - 5-byte keys - 33.28 cycles/hash
+Small key speed test - 6-byte keys - 33.43 cycles/hash
+Small key speed test - 7-byte keys - 39.29 cycles/hash
Small key speed test - 8-byte keys - 29.00 cycles/hash
-Small key speed test - 9-byte keys - 33.84 cycles/hash
-Small key speed test - 10-byte keys - 33.96 cycles/hash
+Small key speed test - 9-byte keys - 33.95 cycles/hash
+Small key speed test - 10-byte keys - 33.97 cycles/hash
Small key speed test - 11-byte keys - 40.00 cycles/hash
-Small key speed test - 12-byte keys - 33.74 cycles/hash
+Small key speed test - 12-byte keys - 33.97 cycles/hash
Small key speed test - 13-byte keys - 40.00 cycles/hash
Small key speed test - 14-byte keys - 40.00 cycles/hash
Small key speed test - 15-byte keys - 45.00 cycles/hash
-Small key speed test - 16-byte keys - 34.98 cycles/hash
-Small key speed test - 17-byte keys - 38.24 cycles/hash
-Small key speed test - 18-byte keys - 38.00 cycles/hash
-Small key speed test - 19-byte keys - 43.93 cycles/hash
-Small key speed test - 20-byte keys - 38.00 cycles/hash
-Small key speed test - 21-byte keys - 44.09 cycles/hash
-Small key speed test - 22-byte keys - 43.96 cycles/hash
-Small key speed test - 23-byte keys - 49.99 cycles/hash
-Small key speed test - 24-byte keys - 39.26 cycles/hash
-Small key speed test - 25-byte keys - 44.06 cycles/hash
-Small key speed test - 26-byte keys - 44.14 cycles/hash
+Small key speed test - 16-byte keys - 35.00 cycles/hash
+Small key speed test - 17-byte keys - 38.00 cycles/hash
+Small key speed test - 18-byte keys - 38.25 cycles/hash
+Small key speed test - 19-byte keys - 44.00 cycles/hash
+Small key speed test - 20-byte keys - 38.22 cycles/hash
+Small key speed test - 21-byte keys - 44.00 cycles/hash
+Small key speed test - 22-byte keys - 44.00 cycles/hash
+Small key speed test - 23-byte keys - 50.00 cycles/hash
+Small key speed test - 24-byte keys - 39.00 cycles/hash
+Small key speed test - 25-byte keys - 44.00 cycles/hash
+Small key speed test - 26-byte keys - 44.00 cycles/hash
Small key speed test - 27-byte keys - 50.00 cycles/hash
-Small key speed test - 28-byte keys - 44.05 cycles/hash
+Small key speed test - 28-byte keys - 44.00 cycles/hash
Small key speed test - 29-byte keys - 50.00 cycles/hash
Small key speed test - 30-byte keys - 50.00 cycles/hash
Small key speed test - 31-byte keys - 55.00 cycles/hash
-Average 39.625 cycles/hash
+Small key speed test - 32-byte keys - 60.90 cycles/hash
+Average 40.327 cycles/hash
+Average, weighted by key length freq. 39.986 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.491 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 453.637 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 361.907 cycles/op (7.4 stdv)
+Init std HashMapTest: 420.654 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 334.726 cycles/op (4.0 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 297.087 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 223.841 cycles/op (3.7 stdv) ....... PASS
+Init fast HashMapTest: 266.894 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 216.442 cycles/op (1.9 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.374092 seconds
+Verification value is 0x00000001 - Testing took 10.606522 seconds
--- Testing cmetrohash64_1 "cmetrohash64_1, 64-bit for x64" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x17b194a507d4 - 0x17b194a5078c). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 5.028 bytes/cycle - 14386.30 MiB/sec @ 3 ghz
-Alignment 6 - 5.046 bytes/cycle - 14435.84 MiB/sec @ 3 ghz
-Alignment 5 - 5.050 bytes/cycle - 14449.20 MiB/sec @ 3 ghz
-Alignment 4 - 5.040 bytes/cycle - 14420.86 MiB/sec @ 3 ghz
-Alignment 3 - 5.045 bytes/cycle - 14432.68 MiB/sec @ 3 ghz
-Alignment 2 - 5.047 bytes/cycle - 14438.87 MiB/sec @ 3 ghz
-Alignment 1 - 5.059 bytes/cycle - 14473.06 MiB/sec @ 3 ghz
-Alignment 0 - 5.101 bytes/cycle - 14594.78 MiB/sec @ 3 ghz
-Average - 5.052 bytes/cycle - 14453.95 MiB/sec @ 3 ghz
+Alignment 7 - 4.995 bytes/cycle - 14290.19 MiB/sec @ 3 ghz
+Alignment 6 - 5.003 bytes/cycle - 14313.19 MiB/sec @ 3 ghz
+Alignment 5 - 5.000 bytes/cycle - 14306.05 MiB/sec @ 3 ghz
+Alignment 4 - 5.006 bytes/cycle - 14322.57 MiB/sec @ 3 ghz
+Alignment 3 - 5.004 bytes/cycle - 14317.66 MiB/sec @ 3 ghz
+Alignment 2 - 5.006 bytes/cycle - 14321.06 MiB/sec @ 3 ghz
+Alignment 1 - 5.000 bytes/cycle - 14304.21 MiB/sec @ 3 ghz
+Alignment 0 - 5.064 bytes/cycle - 14487.09 MiB/sec @ 3 ghz
+Average - 5.010 bytes/cycle - 14332.75 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 28.00 cycles/hash
Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 33.82 cycles/hash
+Small key speed test - 3-byte keys - 34.00 cycles/hash
Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 33.96 cycles/hash
+Small key speed test - 5-byte keys - 34.00 cycles/hash
Small key speed test - 6-byte keys - 34.00 cycles/hash
-Small key speed test - 7-byte keys - 39.94 cycles/hash
+Small key speed test - 7-byte keys - 40.00 cycles/hash
Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 33.76 cycles/hash
+Small key speed test - 9-byte keys - 34.00 cycles/hash
Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 39.99 cycles/hash
+Small key speed test - 11-byte keys - 40.00 cycles/hash
Small key speed test - 12-byte keys - 34.00 cycles/hash
Small key speed test - 13-byte keys - 40.00 cycles/hash
-Small key speed test - 14-byte keys - 39.60 cycles/hash
+Small key speed test - 14-byte keys - 40.00 cycles/hash
Small key speed test - 15-byte keys - 45.00 cycles/hash
-Small key speed test - 16-byte keys - 34.98 cycles/hash
-Small key speed test - 17-byte keys - 39.97 cycles/hash
-Small key speed test - 18-byte keys - 39.98 cycles/hash
+Small key speed test - 16-byte keys - 34.19 cycles/hash
+Small key speed test - 17-byte keys - 40.00 cycles/hash
+Small key speed test - 18-byte keys - 40.00 cycles/hash
Small key speed test - 19-byte keys - 45.00 cycles/hash
Small key speed test - 20-byte keys - 39.00 cycles/hash
Small key speed test - 21-byte keys - 46.00 cycles/hash
-Small key speed test - 22-byte keys - 45.15 cycles/hash
-Small key speed test - 23-byte keys - 52.50 cycles/hash
-Small key speed test - 24-byte keys - 39.75 cycles/hash
-Small key speed test - 25-byte keys - 46.33 cycles/hash
-Small key speed test - 26-byte keys - 45.90 cycles/hash
-Small key speed test - 27-byte keys - 51.97 cycles/hash
-Small key speed test - 28-byte keys - 45.60 cycles/hash
+Small key speed test - 22-byte keys - 45.00 cycles/hash
+Small key speed test - 23-byte keys - 52.60 cycles/hash
+Small key speed test - 24-byte keys - 39.78 cycles/hash
+Small key speed test - 25-byte keys - 46.21 cycles/hash
+Small key speed test - 26-byte keys - 46.00 cycles/hash
+Small key speed test - 27-byte keys - 52.00 cycles/hash
+Small key speed test - 28-byte keys - 45.00 cycles/hash
Small key speed test - 29-byte keys - 52.00 cycles/hash
Small key speed test - 30-byte keys - 52.00 cycles/hash
-Small key speed test - 31-byte keys - 57.14 cycles/hash
-Average 40.430 cycles/hash
+Small key speed test - 31-byte keys - 57.00 cycles/hash
+Small key speed test - 32-byte keys - 60.54 cycles/hash
+Average 41.041 cycles/hash
+Average, weighted by key length freq. 40.611 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.207 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 448.497 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 378.701 cycles/op (5.9 stdv)
+Init std HashMapTest: 431.914 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 336.664 cycles/op (2.5 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 304.859 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 239.683 cycles/op (5.8 stdv) ....... PASS
+Init fast HashMapTest: 277.842 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 216.049 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.524388 seconds
+Verification value is 0x00000001 - Testing took 10.774818 seconds
--- Testing cmetrohash64_2 "cmetrohash64_2, 64-bit for x64" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17ba9ca005dc - 0x17ba9ca00570). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.981 bytes/cycle - 14250.23 MiB/sec @ 3 ghz
-Alignment 6 - 4.977 bytes/cycle - 14239.02 MiB/sec @ 3 ghz
-Alignment 5 - 4.984 bytes/cycle - 14258.39 MiB/sec @ 3 ghz
-Alignment 4 - 4.987 bytes/cycle - 14268.70 MiB/sec @ 3 ghz
-Alignment 3 - 4.996 bytes/cycle - 14293.58 MiB/sec @ 3 ghz
-Alignment 2 - 4.993 bytes/cycle - 14284.08 MiB/sec @ 3 ghz
-Alignment 1 - 4.992 bytes/cycle - 14281.10 MiB/sec @ 3 ghz
-Alignment 0 - 5.056 bytes/cycle - 14466.09 MiB/sec @ 3 ghz
-Average - 4.996 bytes/cycle - 14292.65 MiB/sec @ 3 ghz
+Alignment 7 - 5.050 bytes/cycle - 14446.88 MiB/sec @ 3 ghz
+Alignment 6 - 5.060 bytes/cycle - 14478.19 MiB/sec @ 3 ghz
+Alignment 5 - 5.062 bytes/cycle - 14481.36 MiB/sec @ 3 ghz
+Alignment 4 - 5.062 bytes/cycle - 14482.98 MiB/sec @ 3 ghz
+Alignment 3 - 5.060 bytes/cycle - 14478.03 MiB/sec @ 3 ghz
+Alignment 2 - 5.061 bytes/cycle - 14480.15 MiB/sec @ 3 ghz
+Alignment 1 - 5.061 bytes/cycle - 14480.79 MiB/sec @ 3 ghz
+Alignment 0 - 5.123 bytes/cycle - 14657.18 MiB/sec @ 3 ghz
+Average - 5.067 bytes/cycle - 14498.20 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 28.00 cycles/hash
Small key speed test - 2-byte keys - 28.00 cycles/hash
-Small key speed test - 3-byte keys - 34.00 cycles/hash
+Small key speed test - 3-byte keys - 33.55 cycles/hash
Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 34.00 cycles/hash
+Small key speed test - 5-byte keys - 33.76 cycles/hash
Small key speed test - 6-byte keys - 34.00 cycles/hash
-Small key speed test - 7-byte keys - 40.00 cycles/hash
-Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 34.00 cycles/hash
+Small key speed test - 7-byte keys - 39.72 cycles/hash
+Small key speed test - 8-byte keys - 27.99 cycles/hash
+Small key speed test - 9-byte keys - 33.00 cycles/hash
Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 40.00 cycles/hash
+Small key speed test - 11-byte keys - 39.97 cycles/hash
Small key speed test - 12-byte keys - 34.00 cycles/hash
-Small key speed test - 13-byte keys - 40.00 cycles/hash
-Small key speed test - 14-byte keys - 40.00 cycles/hash
-Small key speed test - 15-byte keys - 45.21 cycles/hash
-Small key speed test - 16-byte keys - 35.30 cycles/hash
-Small key speed test - 17-byte keys - 40.41 cycles/hash
-Small key speed test - 18-byte keys - 40.00 cycles/hash
+Small key speed test - 13-byte keys - 39.89 cycles/hash
+Small key speed test - 14-byte keys - 39.47 cycles/hash
+Small key speed test - 15-byte keys - 45.00 cycles/hash
+Small key speed test - 16-byte keys - 35.00 cycles/hash
+Small key speed test - 17-byte keys - 40.00 cycles/hash
+Small key speed test - 18-byte keys - 39.55 cycles/hash
Small key speed test - 19-byte keys - 45.00 cycles/hash
-Small key speed test - 20-byte keys - 39.75 cycles/hash
-Small key speed test - 21-byte keys - 45.34 cycles/hash
-Small key speed test - 22-byte keys - 45.70 cycles/hash
-Small key speed test - 23-byte keys - 52.00 cycles/hash
-Small key speed test - 24-byte keys - 39.94 cycles/hash
-Small key speed test - 25-byte keys - 46.69 cycles/hash
-Small key speed test - 26-byte keys - 46.00 cycles/hash
-Small key speed test - 27-byte keys - 52.43 cycles/hash
-Small key speed test - 28-byte keys - 45.70 cycles/hash
-Small key speed test - 29-byte keys - 52.92 cycles/hash
-Small key speed test - 30-byte keys - 53.00 cycles/hash
-Small key speed test - 31-byte keys - 58.58 cycles/hash
-Average 40.644 cycles/hash
+Small key speed test - 20-byte keys - 39.00 cycles/hash
+Small key speed test - 21-byte keys - 45.00 cycles/hash
+Small key speed test - 22-byte keys - 45.00 cycles/hash
+Small key speed test - 23-byte keys - 51.88 cycles/hash
+Small key speed test - 24-byte keys - 39.00 cycles/hash
+Small key speed test - 25-byte keys - 45.85 cycles/hash
+Small key speed test - 26-byte keys - 45.50 cycles/hash
+Small key speed test - 27-byte keys - 51.87 cycles/hash
+Small key speed test - 28-byte keys - 45.00 cycles/hash
+Small key speed test - 29-byte keys - 51.95 cycles/hash
+Small key speed test - 30-byte keys - 52.15 cycles/hash
+Small key speed test - 31-byte keys - 57.80 cycles/hash
+Small key speed test - 32-byte keys - 59.94 cycles/hash
+Average 40.870 cycles/hash
+Average, weighted by key length freq. 40.457 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 35.237 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 467.625 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.249 cycles/op (6.9 stdv)
+Init std HashMapTest: 426.624 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 341.412 cycles/op (2.4 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 300.733 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 224.733 cycles/op (4.2 stdv) ....... PASS
+Init fast HashMapTest: 270.640 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 219.649 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.594794 seconds
+Verification value is 0x00000001 - Testing took 10.735244 seconds
--- Testing metrohash128crc_1 "MetroHash128crc_1 for x64 (legacy)" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17c39c173fec - 0x17c39c173f80). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.800 bytes/cycle - 8010.01 MiB/sec @ 3 ghz
-Alignment 6 - 2.803 bytes/cycle - 8020.42 MiB/sec @ 3 ghz
-Alignment 5 - 2.803 bytes/cycle - 8020.82 MiB/sec @ 3 ghz
-Alignment 4 - 2.803 bytes/cycle - 8020.67 MiB/sec @ 3 ghz
-Alignment 3 - 2.803 bytes/cycle - 8019.48 MiB/sec @ 3 ghz
-Alignment 2 - 2.803 bytes/cycle - 8020.25 MiB/sec @ 3 ghz
-Alignment 1 - 2.803 bytes/cycle - 8019.61 MiB/sec @ 3 ghz
-Alignment 0 - 2.643 bytes/cycle - 7561.15 MiB/sec @ 3 ghz
-Average - 2.783 bytes/cycle - 7961.55 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 58.31 cycles/hash
-Small key speed test - 2-byte keys - 60.99 cycles/hash
-Small key speed test - 3-byte keys - 70.91 cycles/hash
-Small key speed test - 4-byte keys - 57.12 cycles/hash
-Small key speed test - 5-byte keys - 67.43 cycles/hash
-Small key speed test - 6-byte keys - 73.00 cycles/hash
-Small key speed test - 7-byte keys - 82.97 cycles/hash
-Small key speed test - 8-byte keys - 60.42 cycles/hash
-Small key speed test - 9-byte keys - 70.50 cycles/hash
-Small key speed test - 10-byte keys - 70.00 cycles/hash
-Small key speed test - 11-byte keys - 79.00 cycles/hash
-Small key speed test - 12-byte keys - 69.63 cycles/hash
-Small key speed test - 13-byte keys - 79.00 cycles/hash
-Small key speed test - 14-byte keys - 85.20 cycles/hash
-Small key speed test - 15-byte keys - 92.99 cycles/hash
-Small key speed test - 16-byte keys - 65.00 cycles/hash
-Small key speed test - 17-byte keys - 74.00 cycles/hash
-Small key speed test - 18-byte keys - 80.62 cycles/hash
-Small key speed test - 19-byte keys - 88.49 cycles/hash
-Small key speed test - 20-byte keys - 74.00 cycles/hash
-Small key speed test - 21-byte keys - 83.26 cycles/hash
-Small key speed test - 22-byte keys - 89.97 cycles/hash
-Small key speed test - 23-byte keys - 98.99 cycles/hash
-Small key speed test - 24-byte keys - 75.52 cycles/hash
-Small key speed test - 25-byte keys - 83.96 cycles/hash
-Small key speed test - 26-byte keys - 83.86 cycles/hash
-Small key speed test - 27-byte keys - 91.42 cycles/hash
-Small key speed test - 28-byte keys - 84.00 cycles/hash
-Small key speed test - 29-byte keys - 92.46 cycles/hash
-Small key speed test - 30-byte keys - 97.16 cycles/hash
-Small key speed test - 31-byte keys - 106.18 cycles/hash
-Average 78.914 cycles/hash
+Alignment 7 - 2.876 bytes/cycle - 8228.69 MiB/sec @ 3 ghz
+Alignment 6 - 2.885 bytes/cycle - 8255.19 MiB/sec @ 3 ghz
+Alignment 5 - 2.885 bytes/cycle - 8254.45 MiB/sec @ 3 ghz
+Alignment 4 - 2.885 bytes/cycle - 8254.81 MiB/sec @ 3 ghz
+Alignment 3 - 2.878 bytes/cycle - 8232.85 MiB/sec @ 3 ghz
+Alignment 2 - 2.877 bytes/cycle - 8232.42 MiB/sec @ 3 ghz
+Alignment 1 - 2.880 bytes/cycle - 8239.70 MiB/sec @ 3 ghz
+Alignment 0 - 2.712 bytes/cycle - 7758.01 MiB/sec @ 3 ghz
+Average - 2.860 bytes/cycle - 8182.02 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 57.00 cycles/hash
+Small key speed test - 2-byte keys - 59.23 cycles/hash
+Small key speed test - 3-byte keys - 69.00 cycles/hash
+Small key speed test - 4-byte keys - 56.00 cycles/hash
+Small key speed test - 5-byte keys - 65.77 cycles/hash
+Small key speed test - 6-byte keys - 71.75 cycles/hash
+Small key speed test - 7-byte keys - 81.00 cycles/hash
+Small key speed test - 8-byte keys - 59.00 cycles/hash
+Small key speed test - 9-byte keys - 68.82 cycles/hash
+Small key speed test - 10-byte keys - 68.63 cycles/hash
+Small key speed test - 11-byte keys - 77.00 cycles/hash
+Small key speed test - 12-byte keys - 67.99 cycles/hash
+Small key speed test - 13-byte keys - 77.00 cycles/hash
+Small key speed test - 14-byte keys - 83.67 cycles/hash
+Small key speed test - 15-byte keys - 91.00 cycles/hash
+Small key speed test - 16-byte keys - 63.28 cycles/hash
+Small key speed test - 17-byte keys - 73.00 cycles/hash
+Small key speed test - 18-byte keys - 78.92 cycles/hash
+Small key speed test - 19-byte keys - 86.69 cycles/hash
+Small key speed test - 20-byte keys - 72.99 cycles/hash
+Small key speed test - 21-byte keys - 80.17 cycles/hash
+Small key speed test - 22-byte keys - 87.68 cycles/hash
+Small key speed test - 23-byte keys - 96.52 cycles/hash
+Small key speed test - 24-byte keys - 73.96 cycles/hash
+Small key speed test - 25-byte keys - 80.94 cycles/hash
+Small key speed test - 26-byte keys - 81.00 cycles/hash
+Small key speed test - 27-byte keys - 89.98 cycles/hash
+Small key speed test - 28-byte keys - 82.92 cycles/hash
+Small key speed test - 29-byte keys - 90.96 cycles/hash
+Small key speed test - 30-byte keys - 96.00 cycles/hash
+Small key speed test - 31-byte keys - 103.20 cycles/hash
+Small key speed test - 32-byte keys - 85.00 cycles/hash
+Average 77.377 cycles/hash
+Average, weighted by key length freq. 77.868 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 68.593 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 485.886 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 412.216 cycles/op (7.2 stdv)
+Init std HashMapTest: 446.355 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 368.242 cycles/op (2.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 347.449 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 276.208 cycles/op (5.3 stdv) ....... PASS
+Init fast HashMapTest: 312.131 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 256.796 cycles/op (1.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 17.654594 seconds
+Verification value is 0x00000001 - Testing took 17.579559 seconds
--- Testing metrohash128crc_2 "MetroHash128crc_2 for x64 (legacy)" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17d259181724 - 0x17d2591816b8). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 2.821 bytes/cycle - 8070.75 MiB/sec @ 3 ghz
-Alignment 6 - 2.822 bytes/cycle - 8073.75 MiB/sec @ 3 ghz
-Alignment 5 - 2.821 bytes/cycle - 8070.71 MiB/sec @ 3 ghz
-Alignment 4 - 2.822 bytes/cycle - 8073.51 MiB/sec @ 3 ghz
-Alignment 3 - 2.823 bytes/cycle - 8076.93 MiB/sec @ 3 ghz
-Alignment 2 - 2.823 bytes/cycle - 8076.14 MiB/sec @ 3 ghz
-Alignment 1 - 2.832 bytes/cycle - 8101.09 MiB/sec @ 3 ghz
-Alignment 0 - 2.652 bytes/cycle - 7586.90 MiB/sec @ 3 ghz
-Average - 2.802 bytes/cycle - 8016.22 MiB/sec @ 3 ghz
+Alignment 7 - 2.815 bytes/cycle - 8053.37 MiB/sec @ 3 ghz
+Alignment 6 - 2.817 bytes/cycle - 8058.22 MiB/sec @ 3 ghz
+Alignment 5 - 2.817 bytes/cycle - 8059.52 MiB/sec @ 3 ghz
+Alignment 4 - 2.817 bytes/cycle - 8059.15 MiB/sec @ 3 ghz
+Alignment 3 - 2.817 bytes/cycle - 8058.25 MiB/sec @ 3 ghz
+Alignment 2 - 2.816 bytes/cycle - 8055.91 MiB/sec @ 3 ghz
+Alignment 1 - 2.815 bytes/cycle - 8054.16 MiB/sec @ 3 ghz
+Alignment 0 - 2.647 bytes/cycle - 7572.06 MiB/sec @ 3 ghz
+Average - 2.795 bytes/cycle - 7996.33 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 58.00 cycles/hash
-Small key speed test - 2-byte keys - 61.00 cycles/hash
-Small key speed test - 3-byte keys - 70.00 cycles/hash
+Small key speed test - 1-byte keys - 58.15 cycles/hash
+Small key speed test - 2-byte keys - 60.96 cycles/hash
+Small key speed test - 3-byte keys - 70.72 cycles/hash
Small key speed test - 4-byte keys - 57.00 cycles/hash
Small key speed test - 5-byte keys - 67.00 cycles/hash
-Small key speed test - 6-byte keys - 72.89 cycles/hash
-Small key speed test - 7-byte keys - 82.33 cycles/hash
+Small key speed test - 6-byte keys - 72.98 cycles/hash
+Small key speed test - 7-byte keys - 82.77 cycles/hash
Small key speed test - 8-byte keys - 60.00 cycles/hash
Small key speed test - 9-byte keys - 70.00 cycles/hash
-Small key speed test - 10-byte keys - 69.93 cycles/hash
-Small key speed test - 11-byte keys - 78.66 cycles/hash
+Small key speed test - 10-byte keys - 69.98 cycles/hash
+Small key speed test - 11-byte keys - 78.82 cycles/hash
Small key speed test - 12-byte keys - 69.00 cycles/hash
-Small key speed test - 13-byte keys - 78.83 cycles/hash
+Small key speed test - 13-byte keys - 78.81 cycles/hash
Small key speed test - 14-byte keys - 85.00 cycles/hash
-Small key speed test - 15-byte keys - 92.94 cycles/hash
-Small key speed test - 16-byte keys - 64.51 cycles/hash
-Small key speed test - 17-byte keys - 73.96 cycles/hash
-Small key speed test - 18-byte keys - 80.14 cycles/hash
+Small key speed test - 15-byte keys - 92.98 cycles/hash
+Small key speed test - 16-byte keys - 64.90 cycles/hash
+Small key speed test - 17-byte keys - 73.94 cycles/hash
+Small key speed test - 18-byte keys - 80.16 cycles/hash
Small key speed test - 19-byte keys - 88.00 cycles/hash
-Small key speed test - 20-byte keys - 73.98 cycles/hash
-Small key speed test - 21-byte keys - 82.96 cycles/hash
-Small key speed test - 22-byte keys - 89.59 cycles/hash
-Small key speed test - 23-byte keys - 98.32 cycles/hash
-Small key speed test - 24-byte keys - 75.16 cycles/hash
-Small key speed test - 25-byte keys - 83.77 cycles/hash
-Small key speed test - 26-byte keys - 83.54 cycles/hash
-Small key speed test - 27-byte keys - 91.00 cycles/hash
-Small key speed test - 28-byte keys - 83.88 cycles/hash
-Small key speed test - 29-byte keys - 91.99 cycles/hash
+Small key speed test - 20-byte keys - 73.94 cycles/hash
+Small key speed test - 21-byte keys - 81.75 cycles/hash
+Small key speed test - 22-byte keys - 89.80 cycles/hash
+Small key speed test - 23-byte keys - 98.79 cycles/hash
+Small key speed test - 24-byte keys - 75.10 cycles/hash
+Small key speed test - 25-byte keys - 82.71 cycles/hash
+Small key speed test - 26-byte keys - 83.61 cycles/hash
+Small key speed test - 27-byte keys - 91.21 cycles/hash
+Small key speed test - 28-byte keys - 83.99 cycles/hash
+Small key speed test - 29-byte keys - 91.95 cycles/hash
Small key speed test - 30-byte keys - 97.00 cycles/hash
-Small key speed test - 31-byte keys - 105.99 cycles/hash
-Average 78.593 cycles/hash
+Small key speed test - 31-byte keys - 104.88 cycles/hash
+Small key speed test - 32-byte keys - 86.16 cycles/hash
+Average 78.815 cycles/hash
+Average, weighted by key length freq. 79.332 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 70.046 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 496.083 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 413.950 cycles/op (8.4 stdv)
+Init std HashMapTest: 457.395 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 378.564 cycles/op (3.1 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 351.664 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 274.523 cycles/op (4.6 stdv) ....... PASS
+Init fast HashMapTest: 319.215 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 262.534 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 17.561741 seconds
---- Testing City64noSeed "Google CityHash64 without seed (default version, misses one final avalanche)" POOR
+Verification value is 0x00000001 - Testing took 17.928153 seconds
+--- Testing City64noSeed "Google CityHash64 without seed (v1.1)(default version, misses one final avalanche)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17e15faa79d4 - 0x17e15faa7968). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.835 bytes/cycle - 13834.19 MiB/sec @ 3 ghz
-Alignment 6 - 4.849 bytes/cycle - 13873.46 MiB/sec @ 3 ghz
-Alignment 5 - 4.849 bytes/cycle - 13874.29 MiB/sec @ 3 ghz
-Alignment 4 - 4.857 bytes/cycle - 13896.43 MiB/sec @ 3 ghz
-Alignment 3 - 4.850 bytes/cycle - 13875.82 MiB/sec @ 3 ghz
-Alignment 2 - 4.850 bytes/cycle - 13875.94 MiB/sec @ 3 ghz
-Alignment 1 - 4.849 bytes/cycle - 13872.76 MiB/sec @ 3 ghz
-Alignment 0 - 4.928 bytes/cycle - 14098.23 MiB/sec @ 3 ghz
-Average - 4.858 bytes/cycle - 13900.14 MiB/sec @ 3 ghz
+Alignment 7 - 4.886 bytes/cycle - 13979.78 MiB/sec @ 3 ghz
+Alignment 6 - 4.893 bytes/cycle - 13998.32 MiB/sec @ 3 ghz
+Alignment 5 - 4.891 bytes/cycle - 13994.36 MiB/sec @ 3 ghz
+Alignment 4 - 4.900 bytes/cycle - 14020.37 MiB/sec @ 3 ghz
+Alignment 3 - 4.892 bytes/cycle - 13995.08 MiB/sec @ 3 ghz
+Alignment 2 - 4.892 bytes/cycle - 13995.46 MiB/sec @ 3 ghz
+Alignment 1 - 4.893 bytes/cycle - 13997.70 MiB/sec @ 3 ghz
+Alignment 0 - 4.965 bytes/cycle - 14205.11 MiB/sec @ 3 ghz
+Average - 4.901 bytes/cycle - 14023.27 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 25.00 cycles/hash
-Small key speed test - 2-byte keys - 25.28 cycles/hash
-Small key speed test - 3-byte keys - 25.21 cycles/hash
-Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 28.00 cycles/hash
-Small key speed test - 6-byte keys - 28.00 cycles/hash
-Small key speed test - 7-byte keys - 28.00 cycles/hash
-Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 30.00 cycles/hash
-Small key speed test - 10-byte keys - 30.00 cycles/hash
-Small key speed test - 11-byte keys - 30.00 cycles/hash
-Small key speed test - 12-byte keys - 30.00 cycles/hash
-Small key speed test - 13-byte keys - 30.00 cycles/hash
-Small key speed test - 14-byte keys - 30.00 cycles/hash
-Small key speed test - 15-byte keys - 30.00 cycles/hash
-Small key speed test - 16-byte keys - 30.00 cycles/hash
-Small key speed test - 17-byte keys - 35.82 cycles/hash
-Small key speed test - 18-byte keys - 35.92 cycles/hash
-Small key speed test - 19-byte keys - 35.83 cycles/hash
-Small key speed test - 20-byte keys - 35.94 cycles/hash
-Small key speed test - 21-byte keys - 37.15 cycles/hash
-Small key speed test - 22-byte keys - 37.15 cycles/hash
-Small key speed test - 23-byte keys - 37.16 cycles/hash
-Small key speed test - 24-byte keys - 35.97 cycles/hash
-Small key speed test - 25-byte keys - 36.00 cycles/hash
-Small key speed test - 26-byte keys - 36.00 cycles/hash
-Small key speed test - 27-byte keys - 36.00 cycles/hash
-Small key speed test - 28-byte keys - 36.00 cycles/hash
-Small key speed test - 29-byte keys - 36.00 cycles/hash
-Small key speed test - 30-byte keys - 36.00 cycles/hash
-Small key speed test - 31-byte keys - 36.00 cycles/hash
-Average 32.207 cycles/hash
+Small key speed test - 1-byte keys - 26.00 cycles/hash
+Small key speed test - 2-byte keys - 26.00 cycles/hash
+Small key speed test - 3-byte keys - 26.00 cycles/hash
+Small key speed test - 4-byte keys - 30.00 cycles/hash
+Small key speed test - 5-byte keys - 30.00 cycles/hash
+Small key speed test - 6-byte keys - 30.00 cycles/hash
+Small key speed test - 7-byte keys - 30.00 cycles/hash
+Small key speed test - 8-byte keys - 34.00 cycles/hash
+Small key speed test - 9-byte keys - 34.00 cycles/hash
+Small key speed test - 10-byte keys - 34.00 cycles/hash
+Small key speed test - 11-byte keys - 34.00 cycles/hash
+Small key speed test - 12-byte keys - 34.00 cycles/hash
+Small key speed test - 13-byte keys - 34.00 cycles/hash
+Small key speed test - 14-byte keys - 34.00 cycles/hash
+Small key speed test - 15-byte keys - 34.00 cycles/hash
+Small key speed test - 16-byte keys - 34.00 cycles/hash
+Small key speed test - 17-byte keys - 35.18 cycles/hash
+Small key speed test - 18-byte keys - 35.00 cycles/hash
+Small key speed test - 19-byte keys - 35.15 cycles/hash
+Small key speed test - 20-byte keys - 35.27 cycles/hash
+Small key speed test - 21-byte keys - 35.00 cycles/hash
+Small key speed test - 22-byte keys - 35.00 cycles/hash
+Small key speed test - 23-byte keys - 35.13 cycles/hash
+Small key speed test - 24-byte keys - 35.00 cycles/hash
+Small key speed test - 25-byte keys - 35.17 cycles/hash
+Small key speed test - 26-byte keys - 35.00 cycles/hash
+Small key speed test - 27-byte keys - 35.00 cycles/hash
+Small key speed test - 28-byte keys - 35.25 cycles/hash
+Small key speed test - 29-byte keys - 35.68 cycles/hash
+Small key speed test - 30-byte keys - 35.68 cycles/hash
+Small key speed test - 31-byte keys - 35.70 cycles/hash
+Small key speed test - 32-byte keys - 35.68 cycles/hash
+Average 33.372 cycles/hash
+Average, weighted by key length freq. 34.422 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 33.740 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 443.913 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 378.683 cycles/op (5.4 stdv)
+Init std HashMapTest: 411.713 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 336.719 cycles/op (2.3 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 311.982 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.862 cycles/op (4.5 stdv) ....... PASS
+Init fast HashMapTest: 278.740 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 223.591 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.174954 seconds
---- Testing City64 "Google CityHash64WithSeed (old)" POOR
+Verification value is 0x00000001 - Testing took 9.395452 seconds
+--- Testing City64 "Google CityHash64WithSeed (v1.1)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17e93fc94958 - 0x17e93fc948ec). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.889 bytes/cycle - 13988.65 MiB/sec @ 3 ghz
-Alignment 6 - 4.887 bytes/cycle - 13982.27 MiB/sec @ 3 ghz
-Alignment 5 - 4.899 bytes/cycle - 14015.72 MiB/sec @ 3 ghz
-Alignment 4 - 4.893 bytes/cycle - 13999.59 MiB/sec @ 3 ghz
-Alignment 3 - 4.883 bytes/cycle - 13971.76 MiB/sec @ 3 ghz
-Alignment 2 - 4.885 bytes/cycle - 13976.06 MiB/sec @ 3 ghz
-Alignment 1 - 4.894 bytes/cycle - 14000.86 MiB/sec @ 3 ghz
-Alignment 0 - 4.949 bytes/cycle - 14160.13 MiB/sec @ 3 ghz
-Average - 4.898 bytes/cycle - 14011.88 MiB/sec @ 3 ghz
+Alignment 7 - 5.011 bytes/cycle - 14337.72 MiB/sec @ 3 ghz
+Alignment 6 - 5.021 bytes/cycle - 14365.95 MiB/sec @ 3 ghz
+Alignment 5 - 5.018 bytes/cycle - 14357.95 MiB/sec @ 3 ghz
+Alignment 4 - 5.030 bytes/cycle - 14389.62 MiB/sec @ 3 ghz
+Alignment 3 - 5.020 bytes/cycle - 14361.36 MiB/sec @ 3 ghz
+Alignment 2 - 5.021 bytes/cycle - 14366.52 MiB/sec @ 3 ghz
+Alignment 1 - 5.022 bytes/cycle - 14367.91 MiB/sec @ 3 ghz
+Alignment 0 - 5.094 bytes/cycle - 14573.72 MiB/sec @ 3 ghz
+Average - 5.030 bytes/cycle - 14390.09 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 39.93 cycles/hash
-Small key speed test - 2-byte keys - 39.90 cycles/hash
-Small key speed test - 3-byte keys - 39.87 cycles/hash
-Small key speed test - 4-byte keys - 42.00 cycles/hash
-Small key speed test - 5-byte keys - 42.00 cycles/hash
-Small key speed test - 6-byte keys - 42.00 cycles/hash
-Small key speed test - 7-byte keys - 42.00 cycles/hash
-Small key speed test - 8-byte keys - 42.00 cycles/hash
-Small key speed test - 9-byte keys - 44.00 cycles/hash
-Small key speed test - 10-byte keys - 44.00 cycles/hash
-Small key speed test - 11-byte keys - 44.00 cycles/hash
-Small key speed test - 12-byte keys - 44.00 cycles/hash
-Small key speed test - 13-byte keys - 44.00 cycles/hash
-Small key speed test - 14-byte keys - 44.00 cycles/hash
-Small key speed test - 15-byte keys - 44.00 cycles/hash
-Small key speed test - 16-byte keys - 44.15 cycles/hash
-Small key speed test - 17-byte keys - 48.00 cycles/hash
-Small key speed test - 18-byte keys - 48.41 cycles/hash
-Small key speed test - 19-byte keys - 48.00 cycles/hash
-Small key speed test - 20-byte keys - 48.00 cycles/hash
-Small key speed test - 21-byte keys - 50.00 cycles/hash
-Small key speed test - 22-byte keys - 50.00 cycles/hash
-Small key speed test - 23-byte keys - 50.00 cycles/hash
-Small key speed test - 24-byte keys - 48.98 cycles/hash
-Small key speed test - 25-byte keys - 49.00 cycles/hash
-Small key speed test - 26-byte keys - 49.00 cycles/hash
-Small key speed test - 27-byte keys - 49.00 cycles/hash
-Small key speed test - 28-byte keys - 48.91 cycles/hash
-Small key speed test - 29-byte keys - 48.97 cycles/hash
-Small key speed test - 30-byte keys - 48.93 cycles/hash
-Small key speed test - 31-byte keys - 48.87 cycles/hash
-Average 45.675 cycles/hash
+Small key speed test - 1-byte keys - 38.18 cycles/hash
+Small key speed test - 2-byte keys - 38.15 cycles/hash
+Small key speed test - 3-byte keys - 38.13 cycles/hash
+Small key speed test - 4-byte keys - 43.14 cycles/hash
+Small key speed test - 5-byte keys - 43.00 cycles/hash
+Small key speed test - 6-byte keys - 43.00 cycles/hash
+Small key speed test - 7-byte keys - 43.00 cycles/hash
+Small key speed test - 8-byte keys - 47.00 cycles/hash
+Small key speed test - 9-byte keys - 47.00 cycles/hash
+Small key speed test - 10-byte keys - 47.00 cycles/hash
+Small key speed test - 11-byte keys - 47.00 cycles/hash
+Small key speed test - 12-byte keys - 47.00 cycles/hash
+Small key speed test - 13-byte keys - 47.00 cycles/hash
+Small key speed test - 14-byte keys - 47.00 cycles/hash
+Small key speed test - 15-byte keys - 47.00 cycles/hash
+Small key speed test - 16-byte keys - 47.00 cycles/hash
+Small key speed test - 17-byte keys - 48.98 cycles/hash
+Small key speed test - 18-byte keys - 48.99 cycles/hash
+Small key speed test - 19-byte keys - 48.99 cycles/hash
+Small key speed test - 20-byte keys - 48.99 cycles/hash
+Small key speed test - 21-byte keys - 48.99 cycles/hash
+Small key speed test - 22-byte keys - 48.99 cycles/hash
+Small key speed test - 23-byte keys - 48.98 cycles/hash
+Small key speed test - 24-byte keys - 49.00 cycles/hash
+Small key speed test - 25-byte keys - 48.99 cycles/hash
+Small key speed test - 26-byte keys - 48.99 cycles/hash
+Small key speed test - 27-byte keys - 48.98 cycles/hash
+Small key speed test - 28-byte keys - 48.99 cycles/hash
+Small key speed test - 29-byte keys - 49.16 cycles/hash
+Small key speed test - 30-byte keys - 49.21 cycles/hash
+Small key speed test - 31-byte keys - 49.18 cycles/hash
+Small key speed test - 32-byte keys - 49.00 cycles/hash
+Average 46.689 cycles/hash
+Average, weighted by key length freq. 47.794 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 46.749 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 460.069 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 380.504 cycles/op (7.3 stdv)
+Init std HashMapTest: 426.974 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 346.395 cycles/op (3.3 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 309.235 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.037 cycles/op (5.4 stdv) ....... PASS
+Init fast HashMapTest: 286.873 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 231.989 cycles/op (2.4 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.488134 seconds
+Verification value is 0x00000001 - Testing took 11.734037 seconds
--- Testing aesnihash "majek's seeded aesnihash with aesenc, 64-bit for x64" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17f31617a984 - 0x17f31617a918). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 1.889 bytes/cycle - 5403.85 MiB/sec @ 3 ghz
-Alignment 6 - 1.889 bytes/cycle - 5405.56 MiB/sec @ 3 ghz
-Alignment 5 - 1.890 bytes/cycle - 5407.16 MiB/sec @ 3 ghz
-Alignment 4 - 1.890 bytes/cycle - 5406.31 MiB/sec @ 3 ghz
-Alignment 3 - 1.893 bytes/cycle - 5414.68 MiB/sec @ 3 ghz
-Alignment 2 - 1.893 bytes/cycle - 5415.25 MiB/sec @ 3 ghz
-Alignment 1 - 1.892 bytes/cycle - 5411.73 MiB/sec @ 3 ghz
-Alignment 0 - 1.893 bytes/cycle - 5416.34 MiB/sec @ 3 ghz
-Average - 1.891 bytes/cycle - 5410.11 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 52.67 cycles/hash
-Small key speed test - 2-byte keys - 52.42 cycles/hash
-Small key speed test - 3-byte keys - 52.00 cycles/hash
-Small key speed test - 4-byte keys - 51.23 cycles/hash
-Small key speed test - 5-byte keys - 58.00 cycles/hash
-Small key speed test - 6-byte keys - 57.96 cycles/hash
-Small key speed test - 7-byte keys - 57.94 cycles/hash
-Small key speed test - 8-byte keys - 52.29 cycles/hash
-Small key speed test - 9-byte keys - 52.95 cycles/hash
-Small key speed test - 10-byte keys - 51.98 cycles/hash
-Small key speed test - 11-byte keys - 51.26 cycles/hash
-Small key speed test - 12-byte keys - 58.41 cycles/hash
-Small key speed test - 13-byte keys - 58.14 cycles/hash
-Small key speed test - 14-byte keys - 57.95 cycles/hash
-Small key speed test - 15-byte keys - 59.17 cycles/hash
+Alignment 7 - 1.589 bytes/cycle - 4546.58 MiB/sec @ 3 ghz
+Alignment 6 - 1.921 bytes/cycle - 5497.08 MiB/sec @ 3 ghz
+Alignment 5 - 1.916 bytes/cycle - 5482.28 MiB/sec @ 3 ghz
+Alignment 4 - 1.915 bytes/cycle - 5479.11 MiB/sec @ 3 ghz
+Alignment 3 - 1.916 bytes/cycle - 5480.32 MiB/sec @ 3 ghz
+Alignment 2 - 1.915 bytes/cycle - 5480.25 MiB/sec @ 3 ghz
+Alignment 1 - 1.915 bytes/cycle - 5478.84 MiB/sec @ 3 ghz
+Alignment 0 - 1.916 bytes/cycle - 5480.32 MiB/sec @ 3 ghz
+Average - 1.875 bytes/cycle - 5365.60 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 52.00 cycles/hash
+Small key speed test - 2-byte keys - 51.97 cycles/hash
+Small key speed test - 3-byte keys - 51.43 cycles/hash
+Small key speed test - 4-byte keys - 50.79 cycles/hash
+Small key speed test - 5-byte keys - 57.53 cycles/hash
+Small key speed test - 6-byte keys - 57.00 cycles/hash
+Small key speed test - 7-byte keys - 57.00 cycles/hash
+Small key speed test - 8-byte keys - 51.97 cycles/hash
+Small key speed test - 9-byte keys - 52.00 cycles/hash
+Small key speed test - 10-byte keys - 51.18 cycles/hash
+Small key speed test - 11-byte keys - 50.95 cycles/hash
+Small key speed test - 12-byte keys - 57.54 cycles/hash
+Small key speed test - 13-byte keys - 57.00 cycles/hash
+Small key speed test - 14-byte keys - 57.00 cycles/hash
+Small key speed test - 15-byte keys - 58.55 cycles/hash
Small key speed test - 16-byte keys - 33.00 cycles/hash
-Small key speed test - 17-byte keys - 58.46 cycles/hash
-Small key speed test - 18-byte keys - 64.55 cycles/hash
-Small key speed test - 19-byte keys - 64.40 cycles/hash
-Small key speed test - 20-byte keys - 64.50 cycles/hash
-Small key speed test - 21-byte keys - 65.53 cycles/hash
-Small key speed test - 22-byte keys - 64.51 cycles/hash
-Small key speed test - 23-byte keys - 64.54 cycles/hash
-Small key speed test - 24-byte keys - 58.58 cycles/hash
-Small key speed test - 25-byte keys - 65.14 cycles/hash
-Small key speed test - 26-byte keys - 65.29 cycles/hash
-Small key speed test - 27-byte keys - 65.48 cycles/hash
-Small key speed test - 28-byte keys - 65.43 cycles/hash
-Small key speed test - 29-byte keys - 64.51 cycles/hash
-Small key speed test - 30-byte keys - 64.58 cycles/hash
-Small key speed test - 31-byte keys - 64.52 cycles/hash
-Average 58.626 cycles/hash
+Small key speed test - 17-byte keys - 57.50 cycles/hash
+Small key speed test - 18-byte keys - 63.54 cycles/hash
+Small key speed test - 19-byte keys - 63.44 cycles/hash
+Small key speed test - 20-byte keys - 63.82 cycles/hash
+Small key speed test - 21-byte keys - 64.00 cycles/hash
+Small key speed test - 22-byte keys - 63.44 cycles/hash
+Small key speed test - 23-byte keys - 63.46 cycles/hash
+Small key speed test - 24-byte keys - 57.50 cycles/hash
+Small key speed test - 25-byte keys - 64.35 cycles/hash
+Small key speed test - 26-byte keys - 63.44 cycles/hash
+Small key speed test - 27-byte keys - 63.82 cycles/hash
+Small key speed test - 28-byte keys - 64.11 cycles/hash
+Small key speed test - 29-byte keys - 63.44 cycles/hash
+Small key speed test - 30-byte keys - 63.46 cycles/hash
+Small key speed test - 31-byte keys - 63.45 cycles/hash
+Small key speed test - 32-byte keys - 41.12 cycles/hash
+Average 57.213 cycles/hash
+Average, weighted by key length freq. 56.670 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 45.609 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 480.170 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 407.252 cycles/op (7.0 stdv)
+Init std HashMapTest: 450.494 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 367.807 cycles/op (2.6 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 338.339 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 272.334 cycles/op (5.0 stdv) ....... PASS
+Init fast HashMapTest: 307.561 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 255.870 cycles/op (2.8 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.455195 seconds
---- Testing falkhash "falkhash.asm with aesenc, 64-bit for x64" POOR
+Verification value is 0x00000001 - Testing took 14.474757 seconds
+--- Testing aesni "aesni 128bit" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x17ff37e03b80 - 0x17ff37e03b14). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 17.536 bytes/cycle - 50172.19 MiB/sec @ 3 ghz
-Alignment 6 - 17.553 bytes/cycle - 50218.51 MiB/sec @ 3 ghz
-Alignment 5 - 17.555 bytes/cycle - 50224.97 MiB/sec @ 3 ghz
-Alignment 4 - 17.666 bytes/cycle - 50542.25 MiB/sec @ 3 ghz
-Alignment 3 - 17.709 bytes/cycle - 50665.27 MiB/sec @ 3 ghz
-Alignment 2 - 17.673 bytes/cycle - 50562.30 MiB/sec @ 3 ghz
-Alignment 1 - 17.682 bytes/cycle - 50588.38 MiB/sec @ 3 ghz
-Alignment 0 - 18.783 bytes/cycle - 53737.66 MiB/sec @ 3 ghz
-Average - 17.769 bytes/cycle - 50838.94 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 108.90 cycles/hash
-Small key speed test - 2-byte keys - 108.82 cycles/hash
-Small key speed test - 3-byte keys - 108.00 cycles/hash
-Small key speed test - 4-byte keys - 108.00 cycles/hash
-Small key speed test - 5-byte keys - 112.59 cycles/hash
-Small key speed test - 6-byte keys - 115.00 cycles/hash
-Small key speed test - 7-byte keys - 115.74 cycles/hash
-Small key speed test - 8-byte keys - 115.56 cycles/hash
-Small key speed test - 9-byte keys - 116.56 cycles/hash
-Small key speed test - 10-byte keys - 115.86 cycles/hash
-Small key speed test - 11-byte keys - 115.93 cycles/hash
-Small key speed test - 12-byte keys - 121.92 cycles/hash
-Small key speed test - 13-byte keys - 119.48 cycles/hash
-Small key speed test - 14-byte keys - 119.56 cycles/hash
-Small key speed test - 15-byte keys - 121.75 cycles/hash
-Small key speed test - 16-byte keys - 125.41 cycles/hash
-Small key speed test - 17-byte keys - 125.51 cycles/hash
-Small key speed test - 18-byte keys - 129.44 cycles/hash
-Small key speed test - 19-byte keys - 129.58 cycles/hash
-Small key speed test - 20-byte keys - 129.70 cycles/hash
-Small key speed test - 21-byte keys - 129.44 cycles/hash
-Small key speed test - 22-byte keys - 129.69 cycles/hash
-Small key speed test - 23-byte keys - 128.89 cycles/hash
-Small key speed test - 24-byte keys - 129.65 cycles/hash
-Small key speed test - 25-byte keys - 130.52 cycles/hash
-Small key speed test - 26-byte keys - 129.87 cycles/hash
-Small key speed test - 27-byte keys - 136.69 cycles/hash
-Small key speed test - 28-byte keys - 136.72 cycles/hash
-Small key speed test - 29-byte keys - 137.42 cycles/hash
-Small key speed test - 30-byte keys - 136.00 cycles/hash
-Small key speed test - 31-byte keys - 136.68 cycles/hash
-Average 123.383 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 556.494 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 468.534 cycles/op (6.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 383.696 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 330.159 cycles/op (5.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 24.885456 seconds
---- Testing MeowHash32low "MeowHash (requires x64 AES-NI)" POOR
+Alignment 7 - 11.183 bytes/cycle - 31995.72 MiB/sec @ 3 ghz
+Alignment 6 - 10.734 bytes/cycle - 30710.83 MiB/sec @ 3 ghz
+Alignment 5 - 10.741 bytes/cycle - 30728.92 MiB/sec @ 3 ghz
+Alignment 4 - 10.727 bytes/cycle - 30690.89 MiB/sec @ 3 ghz
+Alignment 3 - 11.396 bytes/cycle - 32603.12 MiB/sec @ 3 ghz
+Alignment 2 - 11.402 bytes/cycle - 32619.96 MiB/sec @ 3 ghz
+Alignment 1 - 11.251 bytes/cycle - 32188.50 MiB/sec @ 3 ghz
+Alignment 0 - 9.769 bytes/cycle - 27949.86 MiB/sec @ 3 ghz
+Average - 10.900 bytes/cycle - 31185.98 MiB/sec @ 3 ghz
-[[[ Speed Tests ]]]
+Small key speed test - 1-byte keys - 27.00 cycles/hash
+Small key speed test - 2-byte keys - 27.00 cycles/hash
+Small key speed test - 3-byte keys - 27.00 cycles/hash
+Small key speed test - 4-byte keys - 25.42 cycles/hash
+Small key speed test - 5-byte keys - 27.00 cycles/hash
+Small key speed test - 6-byte keys - 27.00 cycles/hash
+Small key speed test - 7-byte keys - 26.98 cycles/hash
+Small key speed test - 8-byte keys - 25.00 cycles/hash
+Small key speed test - 9-byte keys - 27.00 cycles/hash
+Small key speed test - 10-byte keys - 27.00 cycles/hash
+Small key speed test - 11-byte keys - 27.00 cycles/hash
+Small key speed test - 12-byte keys - 27.00 cycles/hash
+Small key speed test - 13-byte keys - 27.00 cycles/hash
+Small key speed test - 14-byte keys - 27.00 cycles/hash
+Small key speed test - 15-byte keys - 27.00 cycles/hash
+Small key speed test - 16-byte keys - 25.85 cycles/hash
+Small key speed test - 17-byte keys - 32.00 cycles/hash
+Small key speed test - 18-byte keys - 32.00 cycles/hash
+Small key speed test - 19-byte keys - 32.00 cycles/hash
+Small key speed test - 20-byte keys - 33.00 cycles/hash
+Small key speed test - 21-byte keys - 32.00 cycles/hash
+Small key speed test - 22-byte keys - 32.00 cycles/hash
+Small key speed test - 23-byte keys - 32.00 cycles/hash
+Small key speed test - 24-byte keys - 32.00 cycles/hash
+Small key speed test - 25-byte keys - 32.00 cycles/hash
+Small key speed test - 26-byte keys - 32.00 cycles/hash
+Small key speed test - 27-byte keys - 32.00 cycles/hash
+Small key speed test - 28-byte keys - 32.00 cycles/hash
+Small key speed test - 29-byte keys - 32.00 cycles/hash
+Small key speed test - 30-byte keys - 32.00 cycles/hash
+Small key speed test - 31-byte keys - 32.00 cycles/hash
+Small key speed test - 32-byte keys - 34.00 cycles/hash
+Average 29.445 cycles/hash
+Average, weighted by key length freq. 29.123 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 26.531 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
-Bulk speed test - 262144-byte keys
-Alignment 7 - 9.987 bytes/cycle - 28573.57 MiB/sec @ 3 ghz
-Alignment 6 - 10.010 bytes/cycle - 28639.90 MiB/sec @ 3 ghz
-Alignment 5 - 10.059 bytes/cycle - 28780.27 MiB/sec @ 3 ghz
-Alignment 4 - 10.066 bytes/cycle - 28799.15 MiB/sec @ 3 ghz
-Alignment 3 - 10.014 bytes/cycle - 28650.46 MiB/sec @ 3 ghz
-Alignment 2 - 10.007 bytes/cycle - 28630.02 MiB/sec @ 3 ghz
-Alignment 1 - 11.641 bytes/cycle - 33305.94 MiB/sec @ 3 ghz
-Alignment 0 - 12.109 bytes/cycle - 34644.58 MiB/sec @ 3 ghz
-Average - 10.487 bytes/cycle - 30002.99 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 64.95 cycles/hash
-Small key speed test - 2-byte keys - 65.00 cycles/hash
-Small key speed test - 3-byte keys - 64.91 cycles/hash
-Small key speed test - 4-byte keys - 64.91 cycles/hash
-Small key speed test - 5-byte keys - 65.11 cycles/hash
-Small key speed test - 6-byte keys - 65.04 cycles/hash
-Small key speed test - 7-byte keys - 65.08 cycles/hash
-Small key speed test - 8-byte keys - 64.96 cycles/hash
-Small key speed test - 9-byte keys - 65.02 cycles/hash
-Small key speed test - 10-byte keys - 64.98 cycles/hash
-Small key speed test - 11-byte keys - 65.03 cycles/hash
-Small key speed test - 12-byte keys - 65.03 cycles/hash
-Small key speed test - 13-byte keys - 64.96 cycles/hash
-Small key speed test - 14-byte keys - 65.01 cycles/hash
-Small key speed test - 15-byte keys - 65.19 cycles/hash
-Small key speed test - 16-byte keys - 64.97 cycles/hash
-Small key speed test - 17-byte keys - 64.63 cycles/hash
-Small key speed test - 18-byte keys - 64.68 cycles/hash
-Small key speed test - 19-byte keys - 64.67 cycles/hash
-Small key speed test - 20-byte keys - 64.69 cycles/hash
-Small key speed test - 21-byte keys - 64.58 cycles/hash
-Small key speed test - 22-byte keys - 64.60 cycles/hash
-Small key speed test - 23-byte keys - 64.47 cycles/hash
-Small key speed test - 24-byte keys - 64.47 cycles/hash
-Small key speed test - 25-byte keys - 64.50 cycles/hash
-Small key speed test - 26-byte keys - 64.56 cycles/hash
-Small key speed test - 27-byte keys - 64.57 cycles/hash
-Small key speed test - 28-byte keys - 64.64 cycles/hash
-Small key speed test - 29-byte keys - 64.63 cycles/hash
-Small key speed test - 30-byte keys - 64.66 cycles/hash
-Small key speed test - 31-byte keys - 64.62 cycles/hash
-Average 64.810 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 465.502 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 403.779 cycles/op (5.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 357.677 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 297.764 cycles/op (5.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.688693 seconds
---- Testing MeowHash64low "MeowHash (requires x64 AES-NI)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 9.936 bytes/cycle - 28426.36 MiB/sec @ 3 ghz
-Alignment 6 - 9.931 bytes/cycle - 28411.54 MiB/sec @ 3 ghz
-Alignment 5 - 9.976 bytes/cycle - 28541.90 MiB/sec @ 3 ghz
-Alignment 4 - 9.981 bytes/cycle - 28557.20 MiB/sec @ 3 ghz
-Alignment 3 - 9.943 bytes/cycle - 28445.77 MiB/sec @ 3 ghz
-Alignment 2 - 9.943 bytes/cycle - 28447.33 MiB/sec @ 3 ghz
-Alignment 1 - 11.564 bytes/cycle - 33086.22 MiB/sec @ 3 ghz
-Alignment 0 - 12.034 bytes/cycle - 34428.77 MiB/sec @ 3 ghz
-Average - 10.413 bytes/cycle - 29793.14 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 65.61 cycles/hash
-Small key speed test - 2-byte keys - 65.66 cycles/hash
-Small key speed test - 3-byte keys - 65.49 cycles/hash
-Small key speed test - 4-byte keys - 65.66 cycles/hash
-Small key speed test - 5-byte keys - 65.67 cycles/hash
-Small key speed test - 6-byte keys - 65.55 cycles/hash
-Small key speed test - 7-byte keys - 65.57 cycles/hash
-Small key speed test - 8-byte keys - 65.45 cycles/hash
-Small key speed test - 9-byte keys - 65.48 cycles/hash
-Small key speed test - 10-byte keys - 65.46 cycles/hash
-Small key speed test - 11-byte keys - 65.30 cycles/hash
-Small key speed test - 12-byte keys - 65.52 cycles/hash
-Small key speed test - 13-byte keys - 65.56 cycles/hash
-Small key speed test - 14-byte keys - 65.55 cycles/hash
-Small key speed test - 15-byte keys - 65.47 cycles/hash
-Small key speed test - 16-byte keys - 65.00 cycles/hash
-Small key speed test - 17-byte keys - 64.90 cycles/hash
-Small key speed test - 18-byte keys - 64.94 cycles/hash
-Small key speed test - 19-byte keys - 64.95 cycles/hash
-Small key speed test - 20-byte keys - 64.92 cycles/hash
-Small key speed test - 21-byte keys - 64.98 cycles/hash
-Small key speed test - 22-byte keys - 65.00 cycles/hash
-Small key speed test - 23-byte keys - 64.89 cycles/hash
-Small key speed test - 24-byte keys - 64.95 cycles/hash
-Small key speed test - 25-byte keys - 65.00 cycles/hash
-Small key speed test - 26-byte keys - 65.00 cycles/hash
-Small key speed test - 27-byte keys - 64.98 cycles/hash
-Small key speed test - 28-byte keys - 64.98 cycles/hash
-Small key speed test - 29-byte keys - 65.00 cycles/hash
-Small key speed test - 30-byte keys - 65.00 cycles/hash
-Small key speed test - 31-byte keys - 65.00 cycles/hash
-Average 65.242 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 491.254 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 412.305 cycles/op (9.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 352.783 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 285.783 cycles/op (4.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.758172 seconds
---- Testing MeowHash "MeowHash (requires x64 AES-NI)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 9.833 bytes/cycle - 28132.45 MiB/sec @ 3 ghz
-Alignment 6 - 9.850 bytes/cycle - 28179.84 MiB/sec @ 3 ghz
-Alignment 5 - 9.907 bytes/cycle - 28344.03 MiB/sec @ 3 ghz
-Alignment 4 - 9.916 bytes/cycle - 28369.15 MiB/sec @ 3 ghz
-Alignment 3 - 9.838 bytes/cycle - 28147.38 MiB/sec @ 3 ghz
-Alignment 2 - 9.844 bytes/cycle - 28164.47 MiB/sec @ 3 ghz
-Alignment 1 - 11.451 bytes/cycle - 32760.27 MiB/sec @ 3 ghz
-Alignment 0 - 11.911 bytes/cycle - 34078.28 MiB/sec @ 3 ghz
-Average - 10.319 bytes/cycle - 29521.98 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 66.24 cycles/hash
-Small key speed test - 2-byte keys - 66.06 cycles/hash
-Small key speed test - 3-byte keys - 66.10 cycles/hash
-Small key speed test - 4-byte keys - 66.04 cycles/hash
-Small key speed test - 5-byte keys - 65.97 cycles/hash
-Small key speed test - 6-byte keys - 66.11 cycles/hash
-Small key speed test - 7-byte keys - 66.06 cycles/hash
-Small key speed test - 8-byte keys - 66.00 cycles/hash
-Small key speed test - 9-byte keys - 66.11 cycles/hash
-Small key speed test - 10-byte keys - 66.11 cycles/hash
-Small key speed test - 11-byte keys - 66.10 cycles/hash
-Small key speed test - 12-byte keys - 66.03 cycles/hash
-Small key speed test - 13-byte keys - 66.06 cycles/hash
-Small key speed test - 14-byte keys - 66.10 cycles/hash
-Small key speed test - 15-byte keys - 66.06 cycles/hash
-Small key speed test - 16-byte keys - 65.96 cycles/hash
-Small key speed test - 17-byte keys - 65.71 cycles/hash
-Small key speed test - 18-byte keys - 65.74 cycles/hash
-Small key speed test - 19-byte keys - 65.79 cycles/hash
-Small key speed test - 20-byte keys - 65.75 cycles/hash
-Small key speed test - 21-byte keys - 65.61 cycles/hash
-Small key speed test - 22-byte keys - 65.77 cycles/hash
-Small key speed test - 23-byte keys - 65.41 cycles/hash
-Small key speed test - 24-byte keys - 65.00 cycles/hash
-Small key speed test - 25-byte keys - 65.41 cycles/hash
-Small key speed test - 26-byte keys - 65.51 cycles/hash
-Small key speed test - 27-byte keys - 65.59 cycles/hash
-Small key speed test - 28-byte keys - 65.56 cycles/hash
-Small key speed test - 29-byte keys - 65.69 cycles/hash
-Small key speed test - 30-byte keys - 65.53 cycles/hash
-Small key speed test - 31-byte keys - 65.60 cycles/hash
-Average 65.832 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 491.053 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 419.363 cycles/op (4.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 363.440 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 287.283 cycles/op (3.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.934383 seconds
---- Testing t1ha1_64le "Fast Positive Hash (portable, aims 64-bit, little-endian)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.662 bytes/cycle - 13336.86 MiB/sec @ 3 ghz
-Alignment 6 - 4.672 bytes/cycle - 13367.97 MiB/sec @ 3 ghz
-Alignment 5 - 4.670 bytes/cycle - 13359.92 MiB/sec @ 3 ghz
-Alignment 4 - 4.666 bytes/cycle - 13350.48 MiB/sec @ 3 ghz
-Alignment 3 - 4.672 bytes/cycle - 13368.00 MiB/sec @ 3 ghz
-Alignment 2 - 4.689 bytes/cycle - 13415.69 MiB/sec @ 3 ghz
-Alignment 1 - 4.667 bytes/cycle - 13353.42 MiB/sec @ 3 ghz
-Alignment 0 - 4.684 bytes/cycle - 13400.95 MiB/sec @ 3 ghz
-Average - 4.673 bytes/cycle - 13369.16 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 30.00 cycles/hash
-Small key speed test - 2-byte keys - 30.00 cycles/hash
-Small key speed test - 3-byte keys - 30.00 cycles/hash
-Small key speed test - 4-byte keys - 29.64 cycles/hash
-Small key speed test - 5-byte keys - 29.52 cycles/hash
-Small key speed test - 6-byte keys - 29.60 cycles/hash
-Small key speed test - 7-byte keys - 29.81 cycles/hash
-Small key speed test - 8-byte keys - 29.00 cycles/hash
-Small key speed test - 9-byte keys - 30.20 cycles/hash
-Small key speed test - 10-byte keys - 30.00 cycles/hash
-Small key speed test - 11-byte keys - 30.16 cycles/hash
-Small key speed test - 12-byte keys - 30.17 cycles/hash
-Small key speed test - 13-byte keys - 30.00 cycles/hash
-Small key speed test - 14-byte keys - 30.13 cycles/hash
-Small key speed test - 15-byte keys - 30.00 cycles/hash
-Small key speed test - 16-byte keys - 30.00 cycles/hash
-Small key speed test - 17-byte keys - 32.80 cycles/hash
-Small key speed test - 18-byte keys - 32.63 cycles/hash
-Small key speed test - 19-byte keys - 32.21 cycles/hash
-Small key speed test - 20-byte keys - 32.29 cycles/hash
-Small key speed test - 21-byte keys - 33.00 cycles/hash
-Small key speed test - 22-byte keys - 33.00 cycles/hash
-Small key speed test - 23-byte keys - 33.00 cycles/hash
-Small key speed test - 24-byte keys - 32.86 cycles/hash
-Small key speed test - 25-byte keys - 34.00 cycles/hash
-Small key speed test - 26-byte keys - 34.00 cycles/hash
-Small key speed test - 27-byte keys - 34.00 cycles/hash
-Small key speed test - 28-byte keys - 34.00 cycles/hash
-Small key speed test - 29-byte keys - 34.00 cycles/hash
-Small key speed test - 30-byte keys - 34.00 cycles/hash
-Small key speed test - 31-byte keys - 34.00 cycles/hash
-Average 31.549 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 449.803 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 370.582 cycles/op (7.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 312.109 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 242.731 cycles/op (6.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.045000 seconds
---- Testing t1ha1_64be "Fast Positive Hash (portable, aims 64-bit, big-endian)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.039 bytes/cycle - 11554.42 MiB/sec @ 3 ghz
-Alignment 6 - 4.049 bytes/cycle - 11582.87 MiB/sec @ 3 ghz
-Alignment 5 - 4.054 bytes/cycle - 11598.51 MiB/sec @ 3 ghz
-Alignment 4 - 4.052 bytes/cycle - 11594.10 MiB/sec @ 3 ghz
-Alignment 3 - 4.047 bytes/cycle - 11577.58 MiB/sec @ 3 ghz
-Alignment 2 - 4.052 bytes/cycle - 11593.43 MiB/sec @ 3 ghz
-Alignment 1 - 4.052 bytes/cycle - 11591.51 MiB/sec @ 3 ghz
-Alignment 0 - 4.070 bytes/cycle - 11643.21 MiB/sec @ 3 ghz
-Average - 4.052 bytes/cycle - 11591.96 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.00 cycles/hash
-Small key speed test - 2-byte keys - 32.00 cycles/hash
-Small key speed test - 3-byte keys - 31.98 cycles/hash
-Small key speed test - 4-byte keys - 31.14 cycles/hash
-Small key speed test - 5-byte keys - 31.17 cycles/hash
-Small key speed test - 6-byte keys - 31.15 cycles/hash
-Small key speed test - 7-byte keys - 31.16 cycles/hash
-Small key speed test - 8-byte keys - 30.93 cycles/hash
-Small key speed test - 9-byte keys - 31.00 cycles/hash
-Small key speed test - 10-byte keys - 31.00 cycles/hash
-Small key speed test - 11-byte keys - 31.00 cycles/hash
-Small key speed test - 12-byte keys - 31.00 cycles/hash
-Small key speed test - 13-byte keys - 31.00 cycles/hash
-Small key speed test - 14-byte keys - 31.00 cycles/hash
-Small key speed test - 15-byte keys - 31.00 cycles/hash
-Small key speed test - 16-byte keys - 31.00 cycles/hash
-Small key speed test - 17-byte keys - 33.00 cycles/hash
-Small key speed test - 18-byte keys - 33.00 cycles/hash
-Small key speed test - 19-byte keys - 33.00 cycles/hash
-Small key speed test - 20-byte keys - 33.00 cycles/hash
-Small key speed test - 21-byte keys - 33.98 cycles/hash
-Small key speed test - 22-byte keys - 33.99 cycles/hash
-Small key speed test - 23-byte keys - 34.00 cycles/hash
-Small key speed test - 24-byte keys - 33.52 cycles/hash
-Small key speed test - 25-byte keys - 35.27 cycles/hash
-Small key speed test - 26-byte keys - 35.12 cycles/hash
-Small key speed test - 27-byte keys - 35.14 cycles/hash
-Small key speed test - 28-byte keys - 35.15 cycles/hash
-Small key speed test - 29-byte keys - 35.12 cycles/hash
-Small key speed test - 30-byte keys - 35.16 cycles/hash
-Small key speed test - 31-byte keys - 35.30 cycles/hash
-Average 32.686 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 447.062 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 375.987 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.985 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.096 cycles/op (4.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.371980 seconds
---- Testing t1ha0_32le "Fast Positive Hash (portable, aims 32-bit, little-endian)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.527 bytes/cycle - 7228.56 MiB/sec @ 3 ghz
-Alignment 6 - 2.531 bytes/cycle - 7241.84 MiB/sec @ 3 ghz
-Alignment 5 - 2.524 bytes/cycle - 7222.62 MiB/sec @ 3 ghz
-Alignment 4 - 2.538 bytes/cycle - 7261.27 MiB/sec @ 3 ghz
-Alignment 3 - 2.534 bytes/cycle - 7249.02 MiB/sec @ 3 ghz
-Alignment 2 - 2.537 bytes/cycle - 7258.58 MiB/sec @ 3 ghz
-Alignment 1 - 2.535 bytes/cycle - 7251.44 MiB/sec @ 3 ghz
-Alignment 0 - 2.535 bytes/cycle - 7253.14 MiB/sec @ 3 ghz
-Average - 2.533 bytes/cycle - 7245.81 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 36.99 cycles/hash
-Small key speed test - 2-byte keys - 36.99 cycles/hash
-Small key speed test - 3-byte keys - 37.00 cycles/hash
-Small key speed test - 4-byte keys - 36.17 cycles/hash
-Small key speed test - 5-byte keys - 38.84 cycles/hash
-Small key speed test - 6-byte keys - 38.83 cycles/hash
-Small key speed test - 7-byte keys - 38.85 cycles/hash
-Small key speed test - 8-byte keys - 38.83 cycles/hash
-Small key speed test - 9-byte keys - 43.00 cycles/hash
-Small key speed test - 10-byte keys - 43.00 cycles/hash
-Small key speed test - 11-byte keys - 43.46 cycles/hash
-Small key speed test - 12-byte keys - 43.45 cycles/hash
-Small key speed test - 13-byte keys - 49.00 cycles/hash
-Small key speed test - 14-byte keys - 49.00 cycles/hash
-Small key speed test - 15-byte keys - 48.98 cycles/hash
-Small key speed test - 16-byte keys - 49.00 cycles/hash
-Small key speed test - 17-byte keys - 50.63 cycles/hash
-Small key speed test - 18-byte keys - 50.26 cycles/hash
-Small key speed test - 19-byte keys - 50.22 cycles/hash
-Small key speed test - 20-byte keys - 50.17 cycles/hash
-Small key speed test - 21-byte keys - 55.00 cycles/hash
-Small key speed test - 22-byte keys - 55.00 cycles/hash
-Small key speed test - 23-byte keys - 55.00 cycles/hash
-Small key speed test - 24-byte keys - 55.00 cycles/hash
-Small key speed test - 25-byte keys - 59.80 cycles/hash
-Small key speed test - 26-byte keys - 59.66 cycles/hash
-Small key speed test - 27-byte keys - 59.63 cycles/hash
-Small key speed test - 28-byte keys - 59.64 cycles/hash
-Small key speed test - 29-byte keys - 64.95 cycles/hash
-Small key speed test - 30-byte keys - 65.00 cycles/hash
-Small key speed test - 31-byte keys - 64.96 cycles/hash
-Average 49.236 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 458.934 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.383 cycles/op (6.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 320.224 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 258.056 cycles/op (5.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.470633 seconds
---- Testing t1ha0_32be "Fast Positive Hash (portable, aims 32-bit, big-endian)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.358 bytes/cycle - 6747.35 MiB/sec @ 3 ghz
-Alignment 6 - 2.365 bytes/cycle - 6766.44 MiB/sec @ 3 ghz
-Alignment 5 - 2.356 bytes/cycle - 6741.99 MiB/sec @ 3 ghz
-Alignment 4 - 2.367 bytes/cycle - 6771.32 MiB/sec @ 3 ghz
-Alignment 3 - 2.361 bytes/cycle - 6755.38 MiB/sec @ 3 ghz
-Alignment 2 - 2.357 bytes/cycle - 6743.59 MiB/sec @ 3 ghz
-Alignment 1 - 2.357 bytes/cycle - 6744.81 MiB/sec @ 3 ghz
-Alignment 0 - 2.364 bytes/cycle - 6764.58 MiB/sec @ 3 ghz
-Average - 2.361 bytes/cycle - 6754.43 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 37.41 cycles/hash
-Small key speed test - 2-byte keys - 37.46 cycles/hash
-Small key speed test - 3-byte keys - 37.46 cycles/hash
-Small key speed test - 4-byte keys - 37.00 cycles/hash
-Small key speed test - 5-byte keys - 40.00 cycles/hash
-Small key speed test - 6-byte keys - 40.00 cycles/hash
-Small key speed test - 7-byte keys - 40.00 cycles/hash
-Small key speed test - 8-byte keys - 40.00 cycles/hash
-Small key speed test - 9-byte keys - 45.00 cycles/hash
-Small key speed test - 10-byte keys - 45.00 cycles/hash
-Small key speed test - 11-byte keys - 45.00 cycles/hash
-Small key speed test - 12-byte keys - 45.00 cycles/hash
-Small key speed test - 13-byte keys - 49.54 cycles/hash
-Small key speed test - 14-byte keys - 49.67 cycles/hash
-Small key speed test - 15-byte keys - 49.67 cycles/hash
-Small key speed test - 16-byte keys - 49.00 cycles/hash
-Small key speed test - 17-byte keys - 53.00 cycles/hash
-Small key speed test - 18-byte keys - 53.00 cycles/hash
-Small key speed test - 19-byte keys - 53.00 cycles/hash
-Small key speed test - 20-byte keys - 53.00 cycles/hash
-Small key speed test - 21-byte keys - 56.25 cycles/hash
-Small key speed test - 22-byte keys - 56.00 cycles/hash
-Small key speed test - 23-byte keys - 56.12 cycles/hash
-Small key speed test - 24-byte keys - 56.11 cycles/hash
-Small key speed test - 25-byte keys - 62.00 cycles/hash
-Small key speed test - 26-byte keys - 62.11 cycles/hash
-Small key speed test - 27-byte keys - 62.00 cycles/hash
-Small key speed test - 28-byte keys - 62.00 cycles/hash
-Small key speed test - 29-byte keys - 66.11 cycles/hash
-Small key speed test - 30-byte keys - 66.00 cycles/hash
-Small key speed test - 31-byte keys - 66.00 cycles/hash
-Average 50.643 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 468.407 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 390.661 cycles/op (5.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 322.498 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 253.148 cycles/op (7.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.888481 seconds
---- Testing tifuhash_64 "Tiny Floatingpoint Unique Hash with continued egyptian fractions" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.055 bytes/cycle - 158.25 MiB/sec @ 3 ghz
-Alignment 6 - 0.055 bytes/cycle - 158.13 MiB/sec @ 3 ghz
-Alignment 5 - 0.055 bytes/cycle - 157.99 MiB/sec @ 3 ghz
-Alignment 4 - 0.055 bytes/cycle - 158.10 MiB/sec @ 3 ghz
-Alignment 3 - 0.055 bytes/cycle - 158.10 MiB/sec @ 3 ghz
-Alignment 2 - 0.055 bytes/cycle - 158.18 MiB/sec @ 3 ghz
-Alignment 1 - 0.055 bytes/cycle - 158.16 MiB/sec @ 3 ghz
-Alignment 0 - 0.055 bytes/cycle - 158.33 MiB/sec @ 3 ghz
-Average - 0.055 bytes/cycle - 158.15 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 229.08 cycles/hash
-Small key speed test - 2-byte keys - 242.04 cycles/hash
-Small key speed test - 3-byte keys - 266.92 cycles/hash
-Small key speed test - 4-byte keys - 279.27 cycles/hash
-Small key speed test - 5-byte keys - 297.90 cycles/hash
-Small key speed test - 6-byte keys - 317.19 cycles/hash
-Small key speed test - 7-byte keys - 335.94 cycles/hash
-Small key speed test - 8-byte keys - 352.42 cycles/hash
-Small key speed test - 9-byte keys - 368.79 cycles/hash
-Small key speed test - 10-byte keys - 387.05 cycles/hash
-Small key speed test - 11-byte keys - 405.45 cycles/hash
-Small key speed test - 12-byte keys - 422.28 cycles/hash
-Small key speed test - 13-byte keys - 439.90 cycles/hash
-Small key speed test - 14-byte keys - 460.66 cycles/hash
-Small key speed test - 15-byte keys - 477.32 cycles/hash
-Small key speed test - 16-byte keys - 497.08 cycles/hash
-Small key speed test - 17-byte keys - 514.30 cycles/hash
-Small key speed test - 18-byte keys - 531.87 cycles/hash
-Small key speed test - 19-byte keys - 548.05 cycles/hash
-Small key speed test - 20-byte keys - 566.06 cycles/hash
-Small key speed test - 21-byte keys - 584.57 cycles/hash
-Small key speed test - 22-byte keys - 603.30 cycles/hash
-Small key speed test - 23-byte keys - 622.21 cycles/hash
-Small key speed test - 24-byte keys - 640.27 cycles/hash
-Small key speed test - 25-byte keys - 656.14 cycles/hash
-Small key speed test - 26-byte keys - 672.93 cycles/hash
-Small key speed test - 27-byte keys - 691.63 cycles/hash
-Small key speed test - 28-byte keys - 708.13 cycles/hash
-Small key speed test - 29-byte keys - 726.98 cycles/hash
-Small key speed test - 30-byte keys - 743.70 cycles/hash
-Small key speed test - 31-byte keys - 762.48 cycles/hash
-Average 495.223 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 791.296 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 690.415 cycles/op (4.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 599.191 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 555.809 cycles/op (3.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 125.306941 seconds
---- Testing beamsplitter "A possibly universal hash made with a 10x64 s-box." GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.198 bytes/cycle - 566.35 MiB/sec @ 3 ghz
-Alignment 6 - 0.196 bytes/cycle - 561.58 MiB/sec @ 3 ghz
-Alignment 5 - 0.198 bytes/cycle - 566.08 MiB/sec @ 3 ghz
-Alignment 4 - 0.198 bytes/cycle - 566.31 MiB/sec @ 3 ghz
-Alignment 3 - 0.198 bytes/cycle - 566.17 MiB/sec @ 3 ghz
-Alignment 2 - 0.198 bytes/cycle - 565.85 MiB/sec @ 3 ghz
-Alignment 1 - 0.198 bytes/cycle - 565.84 MiB/sec @ 3 ghz
-Alignment 0 - 0.198 bytes/cycle - 565.82 MiB/sec @ 3 ghz
-Average - 0.198 bytes/cycle - 565.50 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 437.72 cycles/hash
-Small key speed test - 2-byte keys - 557.74 cycles/hash
-Small key speed test - 3-byte keys - 608.84 cycles/hash
-Small key speed test - 4-byte keys - 801.61 cycles/hash
-Small key speed test - 5-byte keys - 926.05 cycles/hash
-Small key speed test - 6-byte keys - 974.63 cycles/hash
-Small key speed test - 7-byte keys - 1167.38 cycles/hash
-Small key speed test - 8-byte keys - 222.64 cycles/hash
-Small key speed test - 9-byte keys - 374.75 cycles/hash
-Small key speed test - 10-byte keys - 507.27 cycles/hash
-Small key speed test - 11-byte keys - 699.58 cycles/hash
-Small key speed test - 12-byte keys - 1037.72 cycles/hash
-Small key speed test - 13-byte keys - 955.88 cycles/hash
-Small key speed test - 14-byte keys - 1145.42 cycles/hash
-Small key speed test - 15-byte keys - 1264.24 cycles/hash
-Small key speed test - 16-byte keys - 369.82 cycles/hash
-Small key speed test - 17-byte keys - 531.99 cycles/hash
-Small key speed test - 18-byte keys - 706.02 cycles/hash
-Small key speed test - 19-byte keys - 826.04 cycles/hash
-Small key speed test - 20-byte keys - 977.86 cycles/hash
-Small key speed test - 21-byte keys - 1143.84 cycles/hash
-Small key speed test - 22-byte keys - 1268.01 cycles/hash
-Small key speed test - 23-byte keys - 1421.71 cycles/hash
-Small key speed test - 24-byte keys - 371.35 cycles/hash
-Small key speed test - 25-byte keys - 520.22 cycles/hash
-Small key speed test - 26-byte keys - 600.55 cycles/hash
-Small key speed test - 27-byte keys - 683.79 cycles/hash
-Small key speed test - 28-byte keys - 1051.58 cycles/hash
-Small key speed test - 29-byte keys - 1178.80 cycles/hash
-Small key speed test - 30-byte keys - 952.77 cycles/hash
-Small key speed test - 31-byte keys - 1491.57 cycles/hash
-Average 831.528 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 1210.109 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 1098.824 cycles/op (15.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 1050.687 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 944.435 cycles/op (19.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 156.710037 seconds
---- Testing DISCoHAsH "DISCoHAsH 64" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.382 bytes/cycle - 3953.29 MiB/sec @ 3 ghz
-Alignment 6 - 1.383 bytes/cycle - 3956.99 MiB/sec @ 3 ghz
-Alignment 5 - 1.381 bytes/cycle - 3952.12 MiB/sec @ 3 ghz
-Alignment 4 - 1.383 bytes/cycle - 3956.00 MiB/sec @ 3 ghz
-Alignment 3 - 1.383 bytes/cycle - 3956.68 MiB/sec @ 3 ghz
-Alignment 2 - 1.384 bytes/cycle - 3959.74 MiB/sec @ 3 ghz
-Alignment 1 - 1.382 bytes/cycle - 3953.79 MiB/sec @ 3 ghz
-Alignment 0 - 1.393 bytes/cycle - 3984.00 MiB/sec @ 3 ghz
-Average - 1.384 bytes/cycle - 3959.08 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 142.00 cycles/hash
-Small key speed test - 2-byte keys - 160.23 cycles/hash
-Small key speed test - 3-byte keys - 179.22 cycles/hash
-Small key speed test - 4-byte keys - 213.00 cycles/hash
-Small key speed test - 5-byte keys - 230.41 cycles/hash
-Small key speed test - 6-byte keys - 251.39 cycles/hash
-Small key speed test - 7-byte keys - 285.29 cycles/hash
-Small key speed test - 8-byte keys - 116.73 cycles/hash
-Small key speed test - 9-byte keys - 127.75 cycles/hash
-Small key speed test - 10-byte keys - 148.86 cycles/hash
-Small key speed test - 11-byte keys - 177.43 cycles/hash
-Small key speed test - 12-byte keys - 195.76 cycles/hash
-Small key speed test - 13-byte keys - 230.50 cycles/hash
-Small key speed test - 14-byte keys - 259.17 cycles/hash
-Small key speed test - 15-byte keys - 277.80 cycles/hash
-Small key speed test - 16-byte keys - 137.65 cycles/hash
-Small key speed test - 17-byte keys - 163.54 cycles/hash
-Small key speed test - 18-byte keys - 190.91 cycles/hash
-Small key speed test - 19-byte keys - 210.39 cycles/hash
-Small key speed test - 20-byte keys - 227.98 cycles/hash
-Small key speed test - 21-byte keys - 256.94 cycles/hash
-Small key speed test - 22-byte keys - 274.89 cycles/hash
-Small key speed test - 23-byte keys - 294.86 cycles/hash
-Small key speed test - 24-byte keys - 137.76 cycles/hash
-Small key speed test - 25-byte keys - 156.17 cycles/hash
-Small key speed test - 26-byte keys - 170.91 cycles/hash
-Small key speed test - 27-byte keys - 173.40 cycles/hash
-Small key speed test - 28-byte keys - 184.57 cycles/hash
-Small key speed test - 29-byte keys - 196.23 cycles/hash
-Small key speed test - 30-byte keys - 202.70 cycles/hash
-Small key speed test - 31-byte keys - 223.00 cycles/hash
-Average 199.917 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 616.509 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 544.789 cycles/op (4.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 474.436 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 413.427 cycles/op (6.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 39.839452 seconds
---- Testing fasthash32 "fast-hash 32bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.120 bytes/cycle - 6065.65 MiB/sec @ 3 ghz
-Alignment 6 - 2.124 bytes/cycle - 6075.95 MiB/sec @ 3 ghz
-Alignment 5 - 2.124 bytes/cycle - 6075.97 MiB/sec @ 3 ghz
-Alignment 4 - 2.124 bytes/cycle - 6075.95 MiB/sec @ 3 ghz
-Alignment 3 - 2.124 bytes/cycle - 6075.96 MiB/sec @ 3 ghz
-Alignment 2 - 2.125 bytes/cycle - 6080.12 MiB/sec @ 3 ghz
-Alignment 1 - 2.124 bytes/cycle - 6075.95 MiB/sec @ 3 ghz
-Alignment 0 - 2.124 bytes/cycle - 6077.48 MiB/sec @ 3 ghz
-Average - 2.123 bytes/cycle - 6075.38 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 34.00 cycles/hash
-Small key speed test - 2-byte keys - 35.68 cycles/hash
-Small key speed test - 3-byte keys - 37.00 cycles/hash
-Small key speed test - 4-byte keys - 37.69 cycles/hash
-Small key speed test - 5-byte keys - 38.00 cycles/hash
-Small key speed test - 6-byte keys - 39.00 cycles/hash
-Small key speed test - 7-byte keys - 39.91 cycles/hash
-Small key speed test - 8-byte keys - 32.00 cycles/hash
-Small key speed test - 9-byte keys - 37.00 cycles/hash
-Small key speed test - 10-byte keys - 37.84 cycles/hash
-Small key speed test - 11-byte keys - 38.00 cycles/hash
-Small key speed test - 12-byte keys - 39.00 cycles/hash
-Small key speed test - 13-byte keys - 39.52 cycles/hash
-Small key speed test - 14-byte keys - 41.00 cycles/hash
-Small key speed test - 15-byte keys - 41.96 cycles/hash
-Small key speed test - 16-byte keys - 36.00 cycles/hash
-Small key speed test - 17-byte keys - 41.00 cycles/hash
-Small key speed test - 18-byte keys - 41.00 cycles/hash
-Small key speed test - 19-byte keys - 41.00 cycles/hash
-Small key speed test - 20-byte keys - 41.00 cycles/hash
-Small key speed test - 21-byte keys - 43.00 cycles/hash
-Small key speed test - 22-byte keys - 44.00 cycles/hash
-Small key speed test - 23-byte keys - 44.77 cycles/hash
-Small key speed test - 24-byte keys - 40.00 cycles/hash
-Small key speed test - 25-byte keys - 44.00 cycles/hash
-Small key speed test - 26-byte keys - 44.71 cycles/hash
-Small key speed test - 27-byte keys - 45.00 cycles/hash
-Small key speed test - 28-byte keys - 45.50 cycles/hash
-Small key speed test - 29-byte keys - 46.97 cycles/hash
-Small key speed test - 30-byte keys - 47.47 cycles/hash
-Small key speed test - 31-byte keys - 48.00 cycles/hash
-Average 40.677 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 458.472 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.308 cycles/op (3.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 317.040 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 262.401 cycles/op (5.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.179595 seconds
---- Testing fasthash64 "fast-hash 64bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.155 bytes/cycle - 6164.58 MiB/sec @ 3 ghz
-Alignment 6 - 2.158 bytes/cycle - 6174.70 MiB/sec @ 3 ghz
-Alignment 5 - 2.165 bytes/cycle - 6195.22 MiB/sec @ 3 ghz
-Alignment 4 - 2.160 bytes/cycle - 6180.12 MiB/sec @ 3 ghz
-Alignment 3 - 2.155 bytes/cycle - 6166.05 MiB/sec @ 3 ghz
-Alignment 2 - 2.156 bytes/cycle - 6167.89 MiB/sec @ 3 ghz
-Alignment 1 - 2.156 bytes/cycle - 6168.32 MiB/sec @ 3 ghz
-Alignment 0 - 2.156 bytes/cycle - 6168.84 MiB/sec @ 3 ghz
-Average - 2.158 bytes/cycle - 6173.22 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 31.00 cycles/hash
-Small key speed test - 2-byte keys - 33.00 cycles/hash
-Small key speed test - 3-byte keys - 34.00 cycles/hash
-Small key speed test - 4-byte keys - 35.00 cycles/hash
-Small key speed test - 5-byte keys - 36.00 cycles/hash
-Small key speed test - 6-byte keys - 37.00 cycles/hash
-Small key speed test - 7-byte keys - 37.00 cycles/hash
-Small key speed test - 8-byte keys - 30.00 cycles/hash
-Small key speed test - 9-byte keys - 35.00 cycles/hash
-Small key speed test - 10-byte keys - 35.00 cycles/hash
-Small key speed test - 11-byte keys - 36.00 cycles/hash
-Small key speed test - 12-byte keys - 36.00 cycles/hash
-Small key speed test - 13-byte keys - 37.30 cycles/hash
-Small key speed test - 14-byte keys - 38.87 cycles/hash
-Small key speed test - 15-byte keys - 39.00 cycles/hash
-Small key speed test - 16-byte keys - 33.95 cycles/hash
-Small key speed test - 17-byte keys - 38.00 cycles/hash
-Small key speed test - 18-byte keys - 38.14 cycles/hash
-Small key speed test - 19-byte keys - 38.46 cycles/hash
-Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 40.12 cycles/hash
-Small key speed test - 22-byte keys - 41.00 cycles/hash
-Small key speed test - 23-byte keys - 42.00 cycles/hash
-Small key speed test - 24-byte keys - 37.00 cycles/hash
-Small key speed test - 25-byte keys - 41.97 cycles/hash
-Small key speed test - 26-byte keys - 42.00 cycles/hash
-Small key speed test - 27-byte keys - 42.00 cycles/hash
-Small key speed test - 28-byte keys - 42.97 cycles/hash
-Small key speed test - 29-byte keys - 43.86 cycles/hash
-Small key speed test - 30-byte keys - 44.99 cycles/hash
-Small key speed test - 31-byte keys - 45.00 cycles/hash
-Average 38.084 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 458.685 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 367.286 cycles/op (7.4 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 307.156 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 228.680 cycles/op (5.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.625355 seconds
---- Testing floppsyhash "slow hash designed for floating point hardware" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.053 bytes/cycle - 152.90 MiB/sec @ 3 ghz
-Alignment 6 - 0.054 bytes/cycle - 153.16 MiB/sec @ 3 ghz
-Alignment 5 - 0.053 bytes/cycle - 153.01 MiB/sec @ 3 ghz
-Alignment 4 - 0.054 bytes/cycle - 153.33 MiB/sec @ 3 ghz
-Alignment 3 - 0.054 bytes/cycle - 153.53 MiB/sec @ 3 ghz
-Alignment 2 - 0.054 bytes/cycle - 154.46 MiB/sec @ 3 ghz
-Alignment 1 - 0.054 bytes/cycle - 153.83 MiB/sec @ 3 ghz
-Alignment 0 - 0.054 bytes/cycle - 153.30 MiB/sec @ 3 ghz
-Average - 0.054 bytes/cycle - 153.44 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 301.94 cycles/hash
-Small key speed test - 2-byte keys - 320.10 cycles/hash
-Small key speed test - 3-byte keys - 338.13 cycles/hash
-Small key speed test - 4-byte keys - 352.02 cycles/hash
-Small key speed test - 5-byte keys - 372.16 cycles/hash
-Small key speed test - 6-byte keys - 388.07 cycles/hash
-Small key speed test - 7-byte keys - 412.31 cycles/hash
-Small key speed test - 8-byte keys - 425.64 cycles/hash
-Small key speed test - 9-byte keys - 443.61 cycles/hash
-Small key speed test - 10-byte keys - 460.19 cycles/hash
-Small key speed test - 11-byte keys - 479.74 cycles/hash
-Small key speed test - 12-byte keys - 497.37 cycles/hash
-Small key speed test - 13-byte keys - 515.99 cycles/hash
-Small key speed test - 14-byte keys - 533.00 cycles/hash
-Small key speed test - 15-byte keys - 554.07 cycles/hash
-Small key speed test - 16-byte keys - 569.79 cycles/hash
-Small key speed test - 17-byte keys - 590.00 cycles/hash
-Small key speed test - 18-byte keys - 607.61 cycles/hash
-Small key speed test - 19-byte keys - 627.17 cycles/hash
-Small key speed test - 20-byte keys - 645.31 cycles/hash
-Small key speed test - 21-byte keys - 662.98 cycles/hash
-Small key speed test - 22-byte keys - 681.27 cycles/hash
-Small key speed test - 23-byte keys - 700.78 cycles/hash
-Small key speed test - 24-byte keys - 715.97 cycles/hash
-Small key speed test - 25-byte keys - 737.45 cycles/hash
-Small key speed test - 26-byte keys - 755.24 cycles/hash
-Small key speed test - 27-byte keys - 774.18 cycles/hash
-Small key speed test - 28-byte keys - 787.86 cycles/hash
-Small key speed test - 29-byte keys - 783.97 cycles/hash
-Small key speed test - 30-byte keys - 799.97 cycles/hash
-Small key speed test - 31-byte keys - 821.65 cycles/hash
-Average 569.534 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 847.993 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 750.560 cycles/op (7.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 652.677 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 608.086 cycles/op (7.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 137.761728 seconds
---- Testing chaskey "mouha.be/chaskey/ with added seed support" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.402 bytes/cycle - 1149.45 MiB/sec @ 3 ghz
-Alignment 6 - 0.402 bytes/cycle - 1151.33 MiB/sec @ 3 ghz
-Alignment 5 - 0.402 bytes/cycle - 1151.35 MiB/sec @ 3 ghz
-Alignment 4 - 0.402 bytes/cycle - 1149.13 MiB/sec @ 3 ghz
-Alignment 3 - 0.402 bytes/cycle - 1151.04 MiB/sec @ 3 ghz
-Alignment 2 - 0.402 bytes/cycle - 1150.79 MiB/sec @ 3 ghz
-Alignment 1 - 0.403 bytes/cycle - 1153.57 MiB/sec @ 3 ghz
-Alignment 0 - 0.402 bytes/cycle - 1148.84 MiB/sec @ 3 ghz
-Average - 0.402 bytes/cycle - 1150.69 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 94.98 cycles/hash
-Small key speed test - 2-byte keys - 94.29 cycles/hash
-Small key speed test - 3-byte keys - 92.05 cycles/hash
-Small key speed test - 4-byte keys - 94.17 cycles/hash
-Small key speed test - 5-byte keys - 93.84 cycles/hash
-Small key speed test - 6-byte keys - 94.26 cycles/hash
-Small key speed test - 7-byte keys - 88.82 cycles/hash
-Small key speed test - 8-byte keys - 95.25 cycles/hash
-Small key speed test - 9-byte keys - 94.88 cycles/hash
-Small key speed test - 10-byte keys - 94.80 cycles/hash
-Small key speed test - 11-byte keys - 90.43 cycles/hash
-Small key speed test - 12-byte keys - 95.33 cycles/hash
-Small key speed test - 13-byte keys - 95.18 cycles/hash
-Small key speed test - 14-byte keys - 94.79 cycles/hash
-Small key speed test - 15-byte keys - 91.37 cycles/hash
-Small key speed test - 16-byte keys - 61.88 cycles/hash
-Small key speed test - 17-byte keys - 137.97 cycles/hash
-Small key speed test - 18-byte keys - 138.41 cycles/hash
-Small key speed test - 19-byte keys - 131.63 cycles/hash
-Small key speed test - 20-byte keys - 137.78 cycles/hash
-Small key speed test - 21-byte keys - 137.58 cycles/hash
-Small key speed test - 22-byte keys - 137.16 cycles/hash
-Small key speed test - 23-byte keys - 130.08 cycles/hash
-Small key speed test - 24-byte keys - 137.53 cycles/hash
-Small key speed test - 25-byte keys - 136.99 cycles/hash
-Small key speed test - 26-byte keys - 137.13 cycles/hash
-Small key speed test - 27-byte keys - 130.51 cycles/hash
-Small key speed test - 28-byte keys - 138.41 cycles/hash
-Small key speed test - 29-byte keys - 138.66 cycles/hash
-Small key speed test - 30-byte keys - 139.64 cycles/hash
-Small key speed test - 31-byte keys - 129.84 cycles/hash
-Average 113.086 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 504.783 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 444.304 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 356.573 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 308.008 cycles/op (5.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 27.927947 seconds
---- Testing SipHash "SipHash 2-4 - SSSE3 optimized" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.331 bytes/cycle - 945.92 MiB/sec @ 3 ghz
-Alignment 6 - 0.331 bytes/cycle - 945.76 MiB/sec @ 3 ghz
-Alignment 5 - 0.331 bytes/cycle - 947.37 MiB/sec @ 3 ghz
-Alignment 4 - 0.331 bytes/cycle - 946.12 MiB/sec @ 3 ghz
-Alignment 3 - 0.331 bytes/cycle - 946.97 MiB/sec @ 3 ghz
-Alignment 2 - 0.330 bytes/cycle - 944.87 MiB/sec @ 3 ghz
-Alignment 1 - 0.330 bytes/cycle - 943.98 MiB/sec @ 3 ghz
-Alignment 0 - 0.330 bytes/cycle - 944.11 MiB/sec @ 3 ghz
-Average - 0.331 bytes/cycle - 945.64 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 109.00 cycles/hash
-Small key speed test - 2-byte keys - 108.83 cycles/hash
-Small key speed test - 3-byte keys - 109.04 cycles/hash
-Small key speed test - 4-byte keys - 108.95 cycles/hash
-Small key speed test - 5-byte keys - 108.59 cycles/hash
-Small key speed test - 6-byte keys - 108.77 cycles/hash
-Small key speed test - 7-byte keys - 109.10 cycles/hash
-Small key speed test - 8-byte keys - 134.22 cycles/hash
-Small key speed test - 9-byte keys - 133.27 cycles/hash
-Small key speed test - 10-byte keys - 133.65 cycles/hash
-Small key speed test - 11-byte keys - 133.65 cycles/hash
-Small key speed test - 12-byte keys - 133.60 cycles/hash
-Small key speed test - 13-byte keys - 133.44 cycles/hash
-Small key speed test - 14-byte keys - 133.65 cycles/hash
-Small key speed test - 15-byte keys - 133.56 cycles/hash
-Small key speed test - 16-byte keys - 157.50 cycles/hash
-Small key speed test - 17-byte keys - 157.54 cycles/hash
-Small key speed test - 18-byte keys - 157.50 cycles/hash
-Small key speed test - 19-byte keys - 157.51 cycles/hash
-Small key speed test - 20-byte keys - 157.69 cycles/hash
-Small key speed test - 21-byte keys - 157.56 cycles/hash
-Small key speed test - 22-byte keys - 157.58 cycles/hash
-Small key speed test - 23-byte keys - 157.58 cycles/hash
-Small key speed test - 24-byte keys - 181.79 cycles/hash
-Small key speed test - 25-byte keys - 183.04 cycles/hash
-Small key speed test - 26-byte keys - 183.10 cycles/hash
-Small key speed test - 27-byte keys - 183.50 cycles/hash
-Small key speed test - 28-byte keys - 183.18 cycles/hash
-Small key speed test - 29-byte keys - 183.30 cycles/hash
-Small key speed test - 30-byte keys - 182.37 cycles/hash
-Small key speed test - 31-byte keys - 183.49 cycles/hash
-Average 146.952 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 545.619 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 476.993 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 402.705 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 346.529 cycles/op (5.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 34.866970 seconds
---- Testing HalfSipHash "HalfSipHash 2-4, 32bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.388 bytes/cycle - 1109.99 MiB/sec @ 3 ghz
-Alignment 6 - 0.388 bytes/cycle - 1110.01 MiB/sec @ 3 ghz
-Alignment 5 - 0.387 bytes/cycle - 1108.15 MiB/sec @ 3 ghz
-Alignment 4 - 0.387 bytes/cycle - 1107.47 MiB/sec @ 3 ghz
-Alignment 3 - 0.388 bytes/cycle - 1108.73 MiB/sec @ 3 ghz
-Alignment 2 - 0.387 bytes/cycle - 1108.42 MiB/sec @ 3 ghz
-Alignment 1 - 0.387 bytes/cycle - 1108.48 MiB/sec @ 3 ghz
-Alignment 0 - 0.388 bytes/cycle - 1108.89 MiB/sec @ 3 ghz
-Average - 0.388 bytes/cycle - 1108.77 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 46.00 cycles/hash
-Small key speed test - 2-byte keys - 48.00 cycles/hash
-Small key speed test - 3-byte keys - 49.64 cycles/hash
-Small key speed test - 4-byte keys - 54.00 cycles/hash
-Small key speed test - 5-byte keys - 54.00 cycles/hash
-Small key speed test - 6-byte keys - 54.32 cycles/hash
-Small key speed test - 7-byte keys - 55.00 cycles/hash
-Small key speed test - 8-byte keys - 65.00 cycles/hash
-Small key speed test - 9-byte keys - 64.44 cycles/hash
-Small key speed test - 10-byte keys - 64.00 cycles/hash
-Small key speed test - 11-byte keys - 64.95 cycles/hash
-Small key speed test - 12-byte keys - 75.13 cycles/hash
-Small key speed test - 13-byte keys - 75.25 cycles/hash
-Small key speed test - 14-byte keys - 75.99 cycles/hash
-Small key speed test - 15-byte keys - 76.87 cycles/hash
-Small key speed test - 16-byte keys - 84.42 cycles/hash
-Small key speed test - 17-byte keys - 85.97 cycles/hash
-Small key speed test - 18-byte keys - 86.31 cycles/hash
-Small key speed test - 19-byte keys - 87.00 cycles/hash
-Small key speed test - 20-byte keys - 96.43 cycles/hash
-Small key speed test - 21-byte keys - 95.60 cycles/hash
-Small key speed test - 22-byte keys - 96.00 cycles/hash
-Small key speed test - 23-byte keys - 97.00 cycles/hash
-Small key speed test - 24-byte keys - 105.92 cycles/hash
-Small key speed test - 25-byte keys - 105.80 cycles/hash
-Small key speed test - 26-byte keys - 106.65 cycles/hash
-Small key speed test - 27-byte keys - 107.74 cycles/hash
-Small key speed test - 28-byte keys - 116.90 cycles/hash
-Small key speed test - 29-byte keys - 116.83 cycles/hash
-Small key speed test - 30-byte keys - 116.67 cycles/hash
-Small key speed test - 31-byte keys - 114.89 cycles/hash
-Average 82.023 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 486.693 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 409.672 cycles/op (4.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 363.800 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 285.780 cycles/op (4.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 22.641327 seconds
---- Testing GoodOAAT "Small non-multiplicative OAAT" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.261 bytes/cycle - 745.50 MiB/sec @ 3 ghz
-Alignment 6 - 0.260 bytes/cycle - 743.68 MiB/sec @ 3 ghz
-Alignment 5 - 0.260 bytes/cycle - 744.56 MiB/sec @ 3 ghz
-Alignment 4 - 0.260 bytes/cycle - 742.98 MiB/sec @ 3 ghz
-Alignment 3 - 0.260 bytes/cycle - 744.49 MiB/sec @ 3 ghz
-Alignment 2 - 0.261 bytes/cycle - 745.44 MiB/sec @ 3 ghz
-Alignment 1 - 0.260 bytes/cycle - 745.23 MiB/sec @ 3 ghz
-Alignment 0 - 0.261 bytes/cycle - 745.39 MiB/sec @ 3 ghz
-Average - 0.260 bytes/cycle - 744.66 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 28.00 cycles/hash
-Small key speed test - 2-byte keys - 32.00 cycles/hash
-Small key speed test - 3-byte keys - 36.00 cycles/hash
-Small key speed test - 4-byte keys - 39.18 cycles/hash
-Small key speed test - 5-byte keys - 43.00 cycles/hash
-Small key speed test - 6-byte keys - 46.99 cycles/hash
-Small key speed test - 7-byte keys - 51.00 cycles/hash
-Small key speed test - 8-byte keys - 55.00 cycles/hash
-Small key speed test - 9-byte keys - 58.60 cycles/hash
-Small key speed test - 10-byte keys - 61.97 cycles/hash
-Small key speed test - 11-byte keys - 65.99 cycles/hash
-Small key speed test - 12-byte keys - 69.98 cycles/hash
-Small key speed test - 13-byte keys - 73.98 cycles/hash
-Small key speed test - 14-byte keys - 77.98 cycles/hash
-Small key speed test - 15-byte keys - 82.00 cycles/hash
-Small key speed test - 16-byte keys - 85.17 cycles/hash
-Small key speed test - 17-byte keys - 89.13 cycles/hash
-Small key speed test - 18-byte keys - 93.16 cycles/hash
-Small key speed test - 19-byte keys - 96.99 cycles/hash
-Small key speed test - 20-byte keys - 101.10 cycles/hash
-Small key speed test - 21-byte keys - 104.31 cycles/hash
-Small key speed test - 22-byte keys - 108.26 cycles/hash
-Small key speed test - 23-byte keys - 112.19 cycles/hash
-Small key speed test - 24-byte keys - 116.12 cycles/hash
-Small key speed test - 25-byte keys - 120.16 cycles/hash
-Small key speed test - 26-byte keys - 123.93 cycles/hash
-Small key speed test - 27-byte keys - 127.00 cycles/hash
-Small key speed test - 28-byte keys - 131.83 cycles/hash
-Small key speed test - 29-byte keys - 135.41 cycles/hash
-Small key speed test - 30-byte keys - 139.48 cycles/hash
-Small key speed test - 31-byte keys - 142.92 cycles/hash
-Average 85.446 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 455.050 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 373.921 cycles/op (7.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 313.938 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 244.269 cycles/op (5.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 25.572399 seconds
---- Testing prvhash64_64m "prvhash64m 4.3 64bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.065 bytes/cycle - 3046.21 MiB/sec @ 3 ghz
-Alignment 6 - 1.064 bytes/cycle - 3043.77 MiB/sec @ 3 ghz
-Alignment 5 - 1.066 bytes/cycle - 3048.75 MiB/sec @ 3 ghz
-Alignment 4 - 1.064 bytes/cycle - 3044.88 MiB/sec @ 3 ghz
-Alignment 3 - 1.064 bytes/cycle - 3043.62 MiB/sec @ 3 ghz
-Alignment 2 - 1.064 bytes/cycle - 3045.18 MiB/sec @ 3 ghz
-Alignment 1 - 1.064 bytes/cycle - 3045.19 MiB/sec @ 3 ghz
-Alignment 0 - 1.062 bytes/cycle - 3037.76 MiB/sec @ 3 ghz
-Average - 1.064 bytes/cycle - 3044.42 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 39.94 cycles/hash
-Small key speed test - 2-byte keys - 40.60 cycles/hash
-Small key speed test - 3-byte keys - 40.91 cycles/hash
-Small key speed test - 4-byte keys - 40.42 cycles/hash
-Small key speed test - 5-byte keys - 40.26 cycles/hash
-Small key speed test - 6-byte keys - 41.00 cycles/hash
-Small key speed test - 7-byte keys - 42.00 cycles/hash
-Small key speed test - 8-byte keys - 43.00 cycles/hash
-Small key speed test - 9-byte keys - 43.00 cycles/hash
-Small key speed test - 10-byte keys - 45.00 cycles/hash
-Small key speed test - 11-byte keys - 44.00 cycles/hash
-Small key speed test - 12-byte keys - 43.00 cycles/hash
-Small key speed test - 13-byte keys - 44.23 cycles/hash
-Small key speed test - 14-byte keys - 45.00 cycles/hash
-Small key speed test - 15-byte keys - 45.52 cycles/hash
-Small key speed test - 16-byte keys - 51.41 cycles/hash
-Small key speed test - 17-byte keys - 51.00 cycles/hash
-Small key speed test - 18-byte keys - 50.17 cycles/hash
-Small key speed test - 19-byte keys - 50.00 cycles/hash
-Small key speed test - 20-byte keys - 50.00 cycles/hash
-Small key speed test - 21-byte keys - 50.00 cycles/hash
-Small key speed test - 22-byte keys - 50.67 cycles/hash
-Small key speed test - 23-byte keys - 50.00 cycles/hash
-Small key speed test - 24-byte keys - 58.58 cycles/hash
-Small key speed test - 25-byte keys - 59.13 cycles/hash
-Small key speed test - 26-byte keys - 58.98 cycles/hash
-Small key speed test - 27-byte keys - 58.95 cycles/hash
-Small key speed test - 28-byte keys - 58.74 cycles/hash
-Small key speed test - 29-byte keys - 59.00 cycles/hash
-Small key speed test - 30-byte keys - 58.63 cycles/hash
-Small key speed test - 31-byte keys - 57.97 cycles/hash
-Average 48.746 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 469.606 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 388.800 cycles/op (4.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 307.963 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 241.186 cycles/op (4.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.505660 seconds
---- Testing prvhash64_64 "prvhash64 4.3 64bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.083 bytes/cycle - 3098.81 MiB/sec @ 3 ghz
-Alignment 6 - 1.080 bytes/cycle - 3088.54 MiB/sec @ 3 ghz
-Alignment 5 - 1.079 bytes/cycle - 3087.88 MiB/sec @ 3 ghz
-Alignment 4 - 1.080 bytes/cycle - 3089.12 MiB/sec @ 3 ghz
-Alignment 3 - 1.083 bytes/cycle - 3098.91 MiB/sec @ 3 ghz
-Alignment 2 - 1.083 bytes/cycle - 3098.57 MiB/sec @ 3 ghz
-Alignment 1 - 1.079 bytes/cycle - 3088.24 MiB/sec @ 3 ghz
-Alignment 0 - 1.079 bytes/cycle - 3088.45 MiB/sec @ 3 ghz
-Average - 1.081 bytes/cycle - 3092.32 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 41.00 cycles/hash
-Small key speed test - 2-byte keys - 41.00 cycles/hash
-Small key speed test - 3-byte keys - 41.00 cycles/hash
-Small key speed test - 4-byte keys - 40.98 cycles/hash
-Small key speed test - 5-byte keys - 40.00 cycles/hash
-Small key speed test - 6-byte keys - 42.00 cycles/hash
-Small key speed test - 7-byte keys - 43.00 cycles/hash
-Small key speed test - 8-byte keys - 42.00 cycles/hash
-Small key speed test - 9-byte keys - 43.00 cycles/hash
-Small key speed test - 10-byte keys - 45.39 cycles/hash
-Small key speed test - 11-byte keys - 44.00 cycles/hash
-Small key speed test - 12-byte keys - 43.00 cycles/hash
-Small key speed test - 13-byte keys - 45.23 cycles/hash
-Small key speed test - 14-byte keys - 44.00 cycles/hash
-Small key speed test - 15-byte keys - 45.00 cycles/hash
-Small key speed test - 16-byte keys - 50.50 cycles/hash
-Small key speed test - 17-byte keys - 50.00 cycles/hash
-Small key speed test - 18-byte keys - 50.00 cycles/hash
-Small key speed test - 19-byte keys - 50.00 cycles/hash
-Small key speed test - 20-byte keys - 50.41 cycles/hash
-Small key speed test - 21-byte keys - 50.00 cycles/hash
-Small key speed test - 22-byte keys - 50.00 cycles/hash
-Small key speed test - 23-byte keys - 49.99 cycles/hash
-Small key speed test - 24-byte keys - 57.74 cycles/hash
-Small key speed test - 25-byte keys - 59.00 cycles/hash
-Small key speed test - 26-byte keys - 57.99 cycles/hash
-Small key speed test - 27-byte keys - 57.46 cycles/hash
-Small key speed test - 28-byte keys - 58.28 cycles/hash
-Small key speed test - 29-byte keys - 58.11 cycles/hash
-Small key speed test - 30-byte keys - 58.95 cycles/hash
-Small key speed test - 31-byte keys - 58.00 cycles/hash
-Average 48.614 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 462.096 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 385.229 cycles/op (6.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 305.391 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 242.328 cycles/op (3.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.458747 seconds
---- Testing prvhash64_128 "prvhash64 4.3 128bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.121 bytes/cycle - 3207.48 MiB/sec @ 3 ghz
-Alignment 6 - 1.122 bytes/cycle - 3211.35 MiB/sec @ 3 ghz
-Alignment 5 - 1.128 bytes/cycle - 3226.61 MiB/sec @ 3 ghz
-Alignment 4 - 1.123 bytes/cycle - 3214.03 MiB/sec @ 3 ghz
-Alignment 3 - 1.122 bytes/cycle - 3211.29 MiB/sec @ 3 ghz
-Alignment 2 - 1.124 bytes/cycle - 3214.86 MiB/sec @ 3 ghz
-Alignment 1 - 1.122 bytes/cycle - 3211.41 MiB/sec @ 3 ghz
-Alignment 0 - 1.123 bytes/cycle - 3214.07 MiB/sec @ 3 ghz
-Average - 1.123 bytes/cycle - 3213.89 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 84.95 cycles/hash
-Small key speed test - 2-byte keys - 85.93 cycles/hash
-Small key speed test - 3-byte keys - 87.80 cycles/hash
-Small key speed test - 4-byte keys - 85.16 cycles/hash
-Small key speed test - 5-byte keys - 85.18 cycles/hash
-Small key speed test - 6-byte keys - 87.27 cycles/hash
-Small key speed test - 7-byte keys - 87.78 cycles/hash
-Small key speed test - 8-byte keys - 80.27 cycles/hash
-Small key speed test - 9-byte keys - 79.42 cycles/hash
-Small key speed test - 10-byte keys - 80.09 cycles/hash
-Small key speed test - 11-byte keys - 81.81 cycles/hash
-Small key speed test - 12-byte keys - 80.26 cycles/hash
-Small key speed test - 13-byte keys - 80.85 cycles/hash
-Small key speed test - 14-byte keys - 81.55 cycles/hash
-Small key speed test - 15-byte keys - 81.62 cycles/hash
-Small key speed test - 16-byte keys - 87.14 cycles/hash
-Small key speed test - 17-byte keys - 86.90 cycles/hash
-Small key speed test - 18-byte keys - 86.71 cycles/hash
-Small key speed test - 19-byte keys - 87.00 cycles/hash
-Small key speed test - 20-byte keys - 87.25 cycles/hash
-Small key speed test - 21-byte keys - 86.88 cycles/hash
-Small key speed test - 22-byte keys - 86.86 cycles/hash
-Small key speed test - 23-byte keys - 87.94 cycles/hash
-Small key speed test - 24-byte keys - 94.86 cycles/hash
-Small key speed test - 25-byte keys - 94.88 cycles/hash
-Small key speed test - 26-byte keys - 94.96 cycles/hash
-Small key speed test - 27-byte keys - 94.12 cycles/hash
-Small key speed test - 28-byte keys - 94.88 cycles/hash
-Small key speed test - 29-byte keys - 93.96 cycles/hash
-Small key speed test - 30-byte keys - 94.98 cycles/hash
-Small key speed test - 31-byte keys - 94.99 cycles/hash
-Average 87.234 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 525.542 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 440.109 cycles/op (7.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 344.405 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 297.249 cycles/op (5.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 20.258969 seconds
---- Testing prvhash64s_64 "prvhash64s 4.3 64bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.093 bytes/cycle - 5988.40 MiB/sec @ 3 ghz
-Alignment 6 - 2.097 bytes/cycle - 5999.33 MiB/sec @ 3 ghz
-Alignment 5 - 2.097 bytes/cycle - 5999.12 MiB/sec @ 3 ghz
-Alignment 4 - 2.097 bytes/cycle - 5998.85 MiB/sec @ 3 ghz
-Alignment 3 - 2.096 bytes/cycle - 5997.35 MiB/sec @ 3 ghz
-Alignment 2 - 2.097 bytes/cycle - 5999.50 MiB/sec @ 3 ghz
-Alignment 1 - 2.097 bytes/cycle - 5999.35 MiB/sec @ 3 ghz
-Alignment 0 - 2.101 bytes/cycle - 6012.38 MiB/sec @ 3 ghz
-Average - 2.097 bytes/cycle - 5999.29 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 249.22 cycles/hash
-Small key speed test - 2-byte keys - 249.84 cycles/hash
-Small key speed test - 3-byte keys - 251.14 cycles/hash
-Small key speed test - 4-byte keys - 246.36 cycles/hash
-Small key speed test - 5-byte keys - 251.17 cycles/hash
-Small key speed test - 6-byte keys - 250.50 cycles/hash
-Small key speed test - 7-byte keys - 250.87 cycles/hash
-Small key speed test - 8-byte keys - 244.79 cycles/hash
-Small key speed test - 9-byte keys - 308.77 cycles/hash
-Small key speed test - 10-byte keys - 310.66 cycles/hash
-Small key speed test - 11-byte keys - 311.06 cycles/hash
-Small key speed test - 12-byte keys - 308.98 cycles/hash
-Small key speed test - 13-byte keys - 311.45 cycles/hash
-Small key speed test - 14-byte keys - 311.36 cycles/hash
-Small key speed test - 15-byte keys - 311.55 cycles/hash
-Small key speed test - 16-byte keys - 313.83 cycles/hash
-Small key speed test - 17-byte keys - 320.39 cycles/hash
-Small key speed test - 18-byte keys - 320.90 cycles/hash
-Small key speed test - 19-byte keys - 320.84 cycles/hash
-Small key speed test - 20-byte keys - 322.96 cycles/hash
-Small key speed test - 21-byte keys - 325.82 cycles/hash
-Small key speed test - 22-byte keys - 324.49 cycles/hash
-Small key speed test - 23-byte keys - 323.55 cycles/hash
-Small key speed test - 24-byte keys - 298.08 cycles/hash
-Small key speed test - 25-byte keys - 304.29 cycles/hash
-Small key speed test - 26-byte keys - 304.62 cycles/hash
-Small key speed test - 27-byte keys - 305.49 cycles/hash
-Small key speed test - 28-byte keys - 304.14 cycles/hash
-Small key speed test - 29-byte keys - 309.04 cycles/hash
-Small key speed test - 30-byte keys - 308.59 cycles/hash
-Small key speed test - 31-byte keys - 310.06 cycles/hash
-Average 296.284 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 760.208 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 651.769 cycles/op (4.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 578.146 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 501.913 cycles/op (4.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 56.438064 seconds
---- Testing prvhash64s_128 "prvhash64s 4.3 128bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.984 bytes/cycle - 5675.90 MiB/sec @ 3 ghz
-Alignment 6 - 1.978 bytes/cycle - 5659.09 MiB/sec @ 3 ghz
-Alignment 5 - 1.978 bytes/cycle - 5660.00 MiB/sec @ 3 ghz
-Alignment 4 - 1.984 bytes/cycle - 5676.21 MiB/sec @ 3 ghz
-Alignment 3 - 1.981 bytes/cycle - 5666.48 MiB/sec @ 3 ghz
-Alignment 2 - 1.984 bytes/cycle - 5675.98 MiB/sec @ 3 ghz
-Alignment 1 - 1.984 bytes/cycle - 5676.39 MiB/sec @ 3 ghz
-Alignment 0 - 1.987 bytes/cycle - 5684.41 MiB/sec @ 3 ghz
-Average - 1.982 bytes/cycle - 5671.81 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 319.85 cycles/hash
-Small key speed test - 2-byte keys - 315.91 cycles/hash
-Small key speed test - 3-byte keys - 316.62 cycles/hash
-Small key speed test - 4-byte keys - 319.86 cycles/hash
-Small key speed test - 5-byte keys - 322.09 cycles/hash
-Small key speed test - 6-byte keys - 322.24 cycles/hash
-Small key speed test - 7-byte keys - 321.67 cycles/hash
-Small key speed test - 8-byte keys - 310.46 cycles/hash
-Small key speed test - 9-byte keys - 371.14 cycles/hash
-Small key speed test - 10-byte keys - 372.47 cycles/hash
-Small key speed test - 11-byte keys - 371.88 cycles/hash
-Small key speed test - 12-byte keys - 368.42 cycles/hash
-Small key speed test - 13-byte keys - 371.98 cycles/hash
-Small key speed test - 14-byte keys - 370.88 cycles/hash
-Small key speed test - 15-byte keys - 369.34 cycles/hash
-Small key speed test - 16-byte keys - 372.94 cycles/hash
-Small key speed test - 17-byte keys - 377.38 cycles/hash
-Small key speed test - 18-byte keys - 378.49 cycles/hash
-Small key speed test - 19-byte keys - 379.18 cycles/hash
-Small key speed test - 20-byte keys - 379.64 cycles/hash
-Small key speed test - 21-byte keys - 378.46 cycles/hash
-Small key speed test - 22-byte keys - 378.40 cycles/hash
-Small key speed test - 23-byte keys - 375.76 cycles/hash
-Small key speed test - 24-byte keys - 361.52 cycles/hash
-Small key speed test - 25-byte keys - 362.81 cycles/hash
-Small key speed test - 26-byte keys - 365.04 cycles/hash
-Small key speed test - 27-byte keys - 365.36 cycles/hash
-Small key speed test - 28-byte keys - 361.86 cycles/hash
-Small key speed test - 29-byte keys - 366.31 cycles/hash
-Small key speed test - 30-byte keys - 371.09 cycles/hash
-Small key speed test - 31-byte keys - 368.60 cycles/hash
-Average 357.667 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 800.024 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 703.755 cycles/op (5.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 664.693 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 559.144 cycles/op (6.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 67.252250 seconds
---- Testing komihash "komihash 4.5" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.311 bytes/cycle - 12332.85 MiB/sec @ 3 ghz
-Alignment 6 - 4.310 bytes/cycle - 12331.10 MiB/sec @ 3 ghz
-Alignment 5 - 4.309 bytes/cycle - 12328.90 MiB/sec @ 3 ghz
-Alignment 4 - 4.310 bytes/cycle - 12329.66 MiB/sec @ 3 ghz
-Alignment 3 - 4.301 bytes/cycle - 12304.25 MiB/sec @ 3 ghz
-Alignment 2 - 4.308 bytes/cycle - 12326.10 MiB/sec @ 3 ghz
-Alignment 1 - 4.310 bytes/cycle - 12331.22 MiB/sec @ 3 ghz
-Alignment 0 - 4.344 bytes/cycle - 12427.91 MiB/sec @ 3 ghz
-Average - 4.313 bytes/cycle - 12339.00 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 31.78 cycles/hash
-Small key speed test - 2-byte keys - 31.91 cycles/hash
-Small key speed test - 3-byte keys - 32.84 cycles/hash
-Small key speed test - 4-byte keys - 32.00 cycles/hash
-Small key speed test - 5-byte keys - 32.00 cycles/hash
-Small key speed test - 6-byte keys - 32.00 cycles/hash
-Small key speed test - 7-byte keys - 32.00 cycles/hash
-Small key speed test - 8-byte keys - 34.94 cycles/hash
-Small key speed test - 9-byte keys - 34.92 cycles/hash
-Small key speed test - 10-byte keys - 34.93 cycles/hash
-Small key speed test - 11-byte keys - 34.88 cycles/hash
-Small key speed test - 12-byte keys - 32.12 cycles/hash
-Small key speed test - 13-byte keys - 32.00 cycles/hash
-Small key speed test - 14-byte keys - 32.21 cycles/hash
-Small key speed test - 15-byte keys - 32.00 cycles/hash
-Small key speed test - 16-byte keys - 34.00 cycles/hash
-Small key speed test - 17-byte keys - 34.00 cycles/hash
-Small key speed test - 18-byte keys - 34.00 cycles/hash
-Small key speed test - 19-byte keys - 34.00 cycles/hash
-Small key speed test - 20-byte keys - 34.00 cycles/hash
-Small key speed test - 21-byte keys - 34.33 cycles/hash
-Small key speed test - 22-byte keys - 34.96 cycles/hash
-Small key speed test - 23-byte keys - 34.33 cycles/hash
-Small key speed test - 24-byte keys - 34.00 cycles/hash
-Small key speed test - 25-byte keys - 34.00 cycles/hash
-Small key speed test - 26-byte keys - 34.00 cycles/hash
-Small key speed test - 27-byte keys - 34.00 cycles/hash
-Small key speed test - 28-byte keys - 34.22 cycles/hash
-Small key speed test - 29-byte keys - 34.20 cycles/hash
-Small key speed test - 30-byte keys - 34.20 cycles/hash
-Small key speed test - 31-byte keys - 34.29 cycles/hash
-Average 33.518 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 435.551 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 383.393 cycles/op (7.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 301.997 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 245.070 cycles/op (4.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.434787 seconds
---- Testing SipHash13 "SipHash 1-3 - SSSE3 optimized" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 0.634 bytes/cycle - 1813.54 MiB/sec @ 3 ghz
-Alignment 6 - 0.634 bytes/cycle - 1812.71 MiB/sec @ 3 ghz
-Alignment 5 - 0.634 bytes/cycle - 1813.25 MiB/sec @ 3 ghz
-Alignment 4 - 0.633 bytes/cycle - 1812.44 MiB/sec @ 3 ghz
-Alignment 3 - 0.634 bytes/cycle - 1814.04 MiB/sec @ 3 ghz
-Alignment 2 - 0.634 bytes/cycle - 1813.27 MiB/sec @ 3 ghz
-Alignment 1 - 0.634 bytes/cycle - 1815.03 MiB/sec @ 3 ghz
-Alignment 0 - 0.634 bytes/cycle - 1814.14 MiB/sec @ 3 ghz
-Average - 0.634 bytes/cycle - 1813.55 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 87.30 cycles/hash
-Small key speed test - 2-byte keys - 87.05 cycles/hash
-Small key speed test - 3-byte keys - 87.01 cycles/hash
-Small key speed test - 4-byte keys - 86.97 cycles/hash
-Small key speed test - 5-byte keys - 86.62 cycles/hash
-Small key speed test - 6-byte keys - 87.38 cycles/hash
-Small key speed test - 7-byte keys - 92.92 cycles/hash
-Small key speed test - 8-byte keys - 99.71 cycles/hash
-Small key speed test - 9-byte keys - 98.89 cycles/hash
-Small key speed test - 10-byte keys - 98.93 cycles/hash
-Small key speed test - 11-byte keys - 98.93 cycles/hash
-Small key speed test - 12-byte keys - 98.88 cycles/hash
-Small key speed test - 13-byte keys - 98.14 cycles/hash
-Small key speed test - 14-byte keys - 98.89 cycles/hash
-Small key speed test - 15-byte keys - 98.94 cycles/hash
-Small key speed test - 16-byte keys - 112.74 cycles/hash
-Small key speed test - 17-byte keys - 113.01 cycles/hash
-Small key speed test - 18-byte keys - 112.02 cycles/hash
-Small key speed test - 19-byte keys - 111.72 cycles/hash
-Small key speed test - 20-byte keys - 111.99 cycles/hash
-Small key speed test - 21-byte keys - 111.83 cycles/hash
-Small key speed test - 22-byte keys - 112.26 cycles/hash
-Small key speed test - 23-byte keys - 111.92 cycles/hash
-Small key speed test - 24-byte keys - 125.96 cycles/hash
-Small key speed test - 25-byte keys - 123.71 cycles/hash
-Small key speed test - 26-byte keys - 124.46 cycles/hash
-Small key speed test - 27-byte keys - 123.83 cycles/hash
-Small key speed test - 28-byte keys - 124.45 cycles/hash
-Small key speed test - 29-byte keys - 124.40 cycles/hash
-Small key speed test - 30-byte keys - 124.24 cycles/hash
-Small key speed test - 31-byte keys - 124.59 cycles/hash
-Average 106.442 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 512.314 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 444.522 cycles/op (9.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 371.053 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 314.292 cycles/op (5.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 24.916126 seconds
---- Testing TSip "Damian Gryski's Tiny SipHash variant" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.481 bytes/cycle - 4236.33 MiB/sec @ 3 ghz
-Alignment 6 - 1.481 bytes/cycle - 4236.91 MiB/sec @ 3 ghz
-Alignment 5 - 1.478 bytes/cycle - 4228.31 MiB/sec @ 3 ghz
-Alignment 4 - 1.480 bytes/cycle - 4234.88 MiB/sec @ 3 ghz
-Alignment 3 - 1.477 bytes/cycle - 4226.99 MiB/sec @ 3 ghz
-Alignment 2 - 1.480 bytes/cycle - 4233.07 MiB/sec @ 3 ghz
-Alignment 1 - 1.480 bytes/cycle - 4234.83 MiB/sec @ 3 ghz
-Alignment 0 - 1.481 bytes/cycle - 4236.86 MiB/sec @ 3 ghz
-Average - 1.480 bytes/cycle - 4233.52 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 45.00 cycles/hash
-Small key speed test - 2-byte keys - 45.00 cycles/hash
-Small key speed test - 3-byte keys - 45.00 cycles/hash
-Small key speed test - 4-byte keys - 45.00 cycles/hash
-Small key speed test - 5-byte keys - 44.00 cycles/hash
-Small key speed test - 6-byte keys - 44.98 cycles/hash
-Small key speed test - 7-byte keys - 44.58 cycles/hash
-Small key speed test - 8-byte keys - 50.60 cycles/hash
-Small key speed test - 9-byte keys - 50.83 cycles/hash
-Small key speed test - 10-byte keys - 50.61 cycles/hash
-Small key speed test - 11-byte keys - 51.49 cycles/hash
-Small key speed test - 12-byte keys - 50.92 cycles/hash
-Small key speed test - 13-byte keys - 50.77 cycles/hash
-Small key speed test - 14-byte keys - 50.00 cycles/hash
-Small key speed test - 15-byte keys - 50.80 cycles/hash
-Small key speed test - 16-byte keys - 54.99 cycles/hash
-Small key speed test - 17-byte keys - 55.00 cycles/hash
-Small key speed test - 18-byte keys - 55.00 cycles/hash
-Small key speed test - 19-byte keys - 55.70 cycles/hash
-Small key speed test - 20-byte keys - 55.95 cycles/hash
-Small key speed test - 21-byte keys - 54.83 cycles/hash
-Small key speed test - 22-byte keys - 55.71 cycles/hash
-Small key speed test - 23-byte keys - 55.00 cycles/hash
-Small key speed test - 24-byte keys - 61.00 cycles/hash
-Small key speed test - 25-byte keys - 61.00 cycles/hash
-Small key speed test - 26-byte keys - 60.96 cycles/hash
-Small key speed test - 27-byte keys - 61.61 cycles/hash
-Small key speed test - 28-byte keys - 60.92 cycles/hash
-Small key speed test - 29-byte keys - 60.99 cycles/hash
-Small key speed test - 30-byte keys - 60.96 cycles/hash
-Small key speed test - 31-byte keys - 61.00 cycles/hash
-Average 53.231 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 473.840 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 401.968 cycles/op (5.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 330.535 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 261.815 cycles/op (5.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.793397 seconds
---- Testing seahash "seahash (64-bit, little-endian)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.905 bytes/cycle - 8310.61 MiB/sec @ 3 ghz
-Alignment 6 - 2.919 bytes/cycle - 8352.66 MiB/sec @ 3 ghz
-Alignment 5 - 2.918 bytes/cycle - 8348.75 MiB/sec @ 3 ghz
-Alignment 4 - 2.918 bytes/cycle - 8348.61 MiB/sec @ 3 ghz
-Alignment 3 - 2.899 bytes/cycle - 8295.41 MiB/sec @ 3 ghz
-Alignment 2 - 2.906 bytes/cycle - 8315.20 MiB/sec @ 3 ghz
-Alignment 1 - 2.912 bytes/cycle - 8330.80 MiB/sec @ 3 ghz
-Alignment 0 - 2.893 bytes/cycle - 8278.18 MiB/sec @ 3 ghz
-Average - 2.909 bytes/cycle - 8322.53 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 60.55 cycles/hash
-Small key speed test - 2-byte keys - 61.17 cycles/hash
-Small key speed test - 3-byte keys - 61.16 cycles/hash
-Small key speed test - 4-byte keys - 60.44 cycles/hash
-Small key speed test - 5-byte keys - 60.12 cycles/hash
-Small key speed test - 6-byte keys - 60.00 cycles/hash
-Small key speed test - 7-byte keys - 59.98 cycles/hash
-Small key speed test - 8-byte keys - 35.57 cycles/hash
-Small key speed test - 9-byte keys - 61.00 cycles/hash
-Small key speed test - 10-byte keys - 60.63 cycles/hash
-Small key speed test - 11-byte keys - 60.15 cycles/hash
-Small key speed test - 12-byte keys - 59.99 cycles/hash
-Small key speed test - 13-byte keys - 60.00 cycles/hash
-Small key speed test - 14-byte keys - 60.24 cycles/hash
-Small key speed test - 15-byte keys - 60.00 cycles/hash
-Small key speed test - 16-byte keys - 37.00 cycles/hash
-Small key speed test - 17-byte keys - 61.54 cycles/hash
-Small key speed test - 18-byte keys - 61.00 cycles/hash
-Small key speed test - 19-byte keys - 61.00 cycles/hash
-Small key speed test - 20-byte keys - 61.44 cycles/hash
-Small key speed test - 21-byte keys - 61.77 cycles/hash
-Small key speed test - 22-byte keys - 61.71 cycles/hash
-Small key speed test - 23-byte keys - 61.71 cycles/hash
-Small key speed test - 24-byte keys - 39.00 cycles/hash
-Small key speed test - 25-byte keys - 61.00 cycles/hash
-Small key speed test - 26-byte keys - 60.49 cycles/hash
-Small key speed test - 27-byte keys - 60.80 cycles/hash
-Small key speed test - 28-byte keys - 61.00 cycles/hash
-Small key speed test - 29-byte keys - 61.00 cycles/hash
-Small key speed test - 30-byte keys - 61.00 cycles/hash
-Small key speed test - 31-byte keys - 61.00 cycles/hash
-Average 58.499 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 489.963 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 404.378 cycles/op (8.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 338.485 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 267.773 cycles/op (5.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.045305 seconds
---- Testing seahash32low "seahash - lower 32bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.857 bytes/cycle - 8174.62 MiB/sec @ 3 ghz
-Alignment 6 - 2.861 bytes/cycle - 8184.76 MiB/sec @ 3 ghz
-Alignment 5 - 2.860 bytes/cycle - 8183.67 MiB/sec @ 3 ghz
-Alignment 4 - 2.861 bytes/cycle - 8184.32 MiB/sec @ 3 ghz
-Alignment 3 - 2.857 bytes/cycle - 8174.00 MiB/sec @ 3 ghz
-Alignment 2 - 2.859 bytes/cycle - 8178.28 MiB/sec @ 3 ghz
-Alignment 1 - 2.858 bytes/cycle - 8175.59 MiB/sec @ 3 ghz
-Alignment 0 - 2.855 bytes/cycle - 8167.40 MiB/sec @ 3 ghz
-Average - 2.858 bytes/cycle - 8177.83 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 61.00 cycles/hash
-Small key speed test - 2-byte keys - 62.00 cycles/hash
-Small key speed test - 3-byte keys - 62.00 cycles/hash
-Small key speed test - 4-byte keys - 61.00 cycles/hash
-Small key speed test - 5-byte keys - 61.13 cycles/hash
-Small key speed test - 6-byte keys - 61.19 cycles/hash
-Small key speed test - 7-byte keys - 61.00 cycles/hash
-Small key speed test - 8-byte keys - 36.00 cycles/hash
-Small key speed test - 9-byte keys - 62.00 cycles/hash
-Small key speed test - 10-byte keys - 61.15 cycles/hash
-Small key speed test - 11-byte keys - 61.18 cycles/hash
-Small key speed test - 12-byte keys - 61.00 cycles/hash
-Small key speed test - 13-byte keys - 61.00 cycles/hash
-Small key speed test - 14-byte keys - 61.00 cycles/hash
-Small key speed test - 15-byte keys - 61.00 cycles/hash
-Small key speed test - 16-byte keys - 38.00 cycles/hash
-Small key speed test - 17-byte keys - 62.59 cycles/hash
-Small key speed test - 18-byte keys - 62.51 cycles/hash
-Small key speed test - 19-byte keys - 62.51 cycles/hash
-Small key speed test - 20-byte keys - 62.54 cycles/hash
-Small key speed test - 21-byte keys - 62.70 cycles/hash
-Small key speed test - 22-byte keys - 62.70 cycles/hash
-Small key speed test - 23-byte keys - 62.58 cycles/hash
-Small key speed test - 24-byte keys - 39.44 cycles/hash
-Small key speed test - 25-byte keys - 62.13 cycles/hash
-Small key speed test - 26-byte keys - 61.73 cycles/hash
-Small key speed test - 27-byte keys - 61.85 cycles/hash
-Small key speed test - 28-byte keys - 61.98 cycles/hash
-Small key speed test - 29-byte keys - 61.98 cycles/hash
-Small key speed test - 30-byte keys - 61.99 cycles/hash
-Small key speed test - 31-byte keys - 62.00 cycles/hash
-Average 59.449 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 464.967 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 418.029 cycles/op (4.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 344.723 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 292.871 cycles/op (6.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 14.304823 seconds
---- Testing clhash "carry-less mult. hash -DBITMIX (64-bit for x64, SSE4.2)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 6.136 bytes/cycle - 17556.12 MiB/sec @ 3 ghz
-Alignment 6 - 6.161 bytes/cycle - 17627.03 MiB/sec @ 3 ghz
-Alignment 5 - 6.148 bytes/cycle - 17588.19 MiB/sec @ 3 ghz
-Alignment 4 - 6.231 bytes/cycle - 17827.78 MiB/sec @ 3 ghz
-Alignment 3 - 6.210 bytes/cycle - 17766.53 MiB/sec @ 3 ghz
-Alignment 2 - 6.142 bytes/cycle - 17573.51 MiB/sec @ 3 ghz
-Alignment 1 - 6.156 bytes/cycle - 17613.13 MiB/sec @ 3 ghz
-Alignment 0 - 6.277 bytes/cycle - 17958.18 MiB/sec @ 3 ghz
-Average - 6.183 bytes/cycle - 17688.81 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 70.17 cycles/hash
-Small key speed test - 2-byte keys - 68.99 cycles/hash
-Small key speed test - 3-byte keys - 69.21 cycles/hash
-Small key speed test - 4-byte keys - 70.00 cycles/hash
-Small key speed test - 5-byte keys - 70.00 cycles/hash
-Small key speed test - 6-byte keys - 70.00 cycles/hash
-Small key speed test - 7-byte keys - 70.00 cycles/hash
-Small key speed test - 8-byte keys - 61.00 cycles/hash
-Small key speed test - 9-byte keys - 69.99 cycles/hash
-Small key speed test - 10-byte keys - 69.97 cycles/hash
-Small key speed test - 11-byte keys - 69.99 cycles/hash
-Small key speed test - 12-byte keys - 70.00 cycles/hash
-Small key speed test - 13-byte keys - 71.00 cycles/hash
-Small key speed test - 14-byte keys - 71.00 cycles/hash
-Small key speed test - 15-byte keys - 71.00 cycles/hash
-Small key speed test - 16-byte keys - 61.00 cycles/hash
-Small key speed test - 17-byte keys - 69.18 cycles/hash
-Small key speed test - 18-byte keys - 69.90 cycles/hash
-Small key speed test - 19-byte keys - 69.91 cycles/hash
-Small key speed test - 20-byte keys - 69.23 cycles/hash
-Small key speed test - 21-byte keys - 69.17 cycles/hash
-Small key speed test - 22-byte keys - 69.19 cycles/hash
-Small key speed test - 23-byte keys - 69.19 cycles/hash
-Small key speed test - 24-byte keys - 62.17 cycles/hash
-Small key speed test - 25-byte keys - 70.18 cycles/hash
-Small key speed test - 26-byte keys - 71.00 cycles/hash
-Small key speed test - 27-byte keys - 71.00 cycles/hash
-Small key speed test - 28-byte keys - 70.13 cycles/hash
-Small key speed test - 29-byte keys - 70.00 cycles/hash
-Small key speed test - 30-byte keys - 70.00 cycles/hash
-Small key speed test - 31-byte keys - 70.00 cycles/hash
-Average 69.147 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 478.335 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 422.397 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 354.043 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 287.948 cycles/op (6.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 15.591851 seconds
---- Testing Murmur3F "MurmurHash3 for x64, 128-bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.664 bytes/cycle - 7620.58 MiB/sec @ 3 ghz
-Alignment 6 - 2.669 bytes/cycle - 7636.40 MiB/sec @ 3 ghz
-Alignment 5 - 2.668 bytes/cycle - 7631.99 MiB/sec @ 3 ghz
-Alignment 4 - 2.663 bytes/cycle - 7619.60 MiB/sec @ 3 ghz
-Alignment 3 - 2.663 bytes/cycle - 7619.47 MiB/sec @ 3 ghz
-Alignment 2 - 2.668 bytes/cycle - 7632.22 MiB/sec @ 3 ghz
-Alignment 1 - 2.668 bytes/cycle - 7631.97 MiB/sec @ 3 ghz
-Alignment 0 - 2.659 bytes/cycle - 7608.61 MiB/sec @ 3 ghz
-Average - 2.665 bytes/cycle - 7625.10 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 43.00 cycles/hash
-Small key speed test - 2-byte keys - 45.00 cycles/hash
-Small key speed test - 3-byte keys - 45.14 cycles/hash
-Small key speed test - 4-byte keys - 47.00 cycles/hash
-Small key speed test - 5-byte keys - 47.97 cycles/hash
-Small key speed test - 6-byte keys - 48.99 cycles/hash
-Small key speed test - 7-byte keys - 50.00 cycles/hash
-Small key speed test - 8-byte keys - 49.82 cycles/hash
-Small key speed test - 9-byte keys - 52.00 cycles/hash
-Small key speed test - 10-byte keys - 52.92 cycles/hash
-Small key speed test - 11-byte keys - 54.00 cycles/hash
-Small key speed test - 12-byte keys - 55.00 cycles/hash
-Small key speed test - 13-byte keys - 54.00 cycles/hash
-Small key speed test - 14-byte keys - 55.13 cycles/hash
-Small key speed test - 15-byte keys - 55.99 cycles/hash
-Small key speed test - 16-byte keys - 47.71 cycles/hash
-Small key speed test - 17-byte keys - 48.00 cycles/hash
-Small key speed test - 18-byte keys - 49.47 cycles/hash
-Small key speed test - 19-byte keys - 51.00 cycles/hash
-Small key speed test - 20-byte keys - 52.00 cycles/hash
-Small key speed test - 21-byte keys - 53.69 cycles/hash
-Small key speed test - 22-byte keys - 54.17 cycles/hash
-Small key speed test - 23-byte keys - 55.00 cycles/hash
-Small key speed test - 24-byte keys - 55.98 cycles/hash
-Small key speed test - 25-byte keys - 56.99 cycles/hash
-Small key speed test - 26-byte keys - 57.00 cycles/hash
-Small key speed test - 27-byte keys - 57.30 cycles/hash
-Small key speed test - 28-byte keys - 59.12 cycles/hash
-Small key speed test - 29-byte keys - 58.99 cycles/hash
-Small key speed test - 30-byte keys - 59.99 cycles/hash
-Small key speed test - 31-byte keys - 61.00 cycles/hash
-Average 52.689 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 475.025 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 378.727 cycles/op (7.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 304.496 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 228.956 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.072266 seconds
---- Testing MUM "github.com/vnmakarov/mum-hash" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3.267 bytes/cycle - 9345.81 MiB/sec @ 3 ghz
-Alignment 6 - 3.278 bytes/cycle - 9379.02 MiB/sec @ 3 ghz
-Alignment 5 - 3.265 bytes/cycle - 9341.61 MiB/sec @ 3 ghz
-Alignment 4 - 3.273 bytes/cycle - 9364.55 MiB/sec @ 3 ghz
-Alignment 3 - 3.270 bytes/cycle - 9355.21 MiB/sec @ 3 ghz
-Alignment 2 - 3.267 bytes/cycle - 9348.05 MiB/sec @ 3 ghz
-Alignment 1 - 3.268 bytes/cycle - 9349.76 MiB/sec @ 3 ghz
-Alignment 0 - 3.266 bytes/cycle - 9344.23 MiB/sec @ 3 ghz
-Average - 3.269 bytes/cycle - 9353.53 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.99 cycles/hash
-Small key speed test - 2-byte keys - 32.96 cycles/hash
-Small key speed test - 3-byte keys - 36.00 cycles/hash
-Small key speed test - 4-byte keys - 32.96 cycles/hash
-Small key speed test - 5-byte keys - 34.00 cycles/hash
-Small key speed test - 6-byte keys - 36.00 cycles/hash
-Small key speed test - 7-byte keys - 37.00 cycles/hash
-Small key speed test - 8-byte keys - 31.58 cycles/hash
-Small key speed test - 9-byte keys - 32.99 cycles/hash
-Small key speed test - 10-byte keys - 33.00 cycles/hash
-Small key speed test - 11-byte keys - 37.00 cycles/hash
-Small key speed test - 12-byte keys - 33.00 cycles/hash
-Small key speed test - 13-byte keys - 35.95 cycles/hash
-Small key speed test - 14-byte keys - 37.00 cycles/hash
-Small key speed test - 15-byte keys - 38.44 cycles/hash
-Small key speed test - 16-byte keys - 32.00 cycles/hash
-Small key speed test - 17-byte keys - 34.00 cycles/hash
-Small key speed test - 18-byte keys - 34.11 cycles/hash
-Small key speed test - 19-byte keys - 37.98 cycles/hash
-Small key speed test - 20-byte keys - 34.16 cycles/hash
-Small key speed test - 21-byte keys - 35.97 cycles/hash
-Small key speed test - 22-byte keys - 37.99 cycles/hash
-Small key speed test - 23-byte keys - 39.12 cycles/hash
-Small key speed test - 24-byte keys - 34.95 cycles/hash
-Small key speed test - 25-byte keys - 36.94 cycles/hash
-Small key speed test - 26-byte keys - 36.97 cycles/hash
-Small key speed test - 27-byte keys - 39.99 cycles/hash
-Small key speed test - 28-byte keys - 36.92 cycles/hash
-Small key speed test - 29-byte keys - 37.00 cycles/hash
-Small key speed test - 30-byte keys - 39.99 cycles/hash
-Small key speed test - 31-byte keys - 41.00 cycles/hash
-Average 35.805 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 471.286 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 389.496 cycles/op (7.2 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 299.790 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 239.364 cycles/op (6.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.979600 seconds
---- Testing MUMlow "github.com/vnmakarov/mum-hash" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3.243 bytes/cycle - 9277.56 MiB/sec @ 3 ghz
-Alignment 6 - 3.241 bytes/cycle - 9273.53 MiB/sec @ 3 ghz
-Alignment 5 - 3.241 bytes/cycle - 9271.18 MiB/sec @ 3 ghz
-Alignment 4 - 3.236 bytes/cycle - 9259.56 MiB/sec @ 3 ghz
-Alignment 3 - 2.420 bytes/cycle - 6922.97 MiB/sec @ 3 ghz
-Alignment 2 - 3.244 bytes/cycle - 9280.76 MiB/sec @ 3 ghz
-Alignment 1 - 3.237 bytes/cycle - 9260.96 MiB/sec @ 3 ghz
-Alignment 0 - 3.243 bytes/cycle - 9277.45 MiB/sec @ 3 ghz
-Average - 3.138 bytes/cycle - 8978.00 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 33.00 cycles/hash
-Small key speed test - 2-byte keys - 33.00 cycles/hash
-Small key speed test - 3-byte keys - 36.16 cycles/hash
-Small key speed test - 4-byte keys - 33.00 cycles/hash
-Small key speed test - 5-byte keys - 34.20 cycles/hash
-Small key speed test - 6-byte keys - 36.74 cycles/hash
-Small key speed test - 7-byte keys - 37.00 cycles/hash
-Small key speed test - 8-byte keys - 31.87 cycles/hash
-Small key speed test - 9-byte keys - 33.88 cycles/hash
-Small key speed test - 10-byte keys - 33.12 cycles/hash
-Small key speed test - 11-byte keys - 37.93 cycles/hash
-Small key speed test - 12-byte keys - 33.00 cycles/hash
-Small key speed test - 13-byte keys - 36.00 cycles/hash
-Small key speed test - 14-byte keys - 37.46 cycles/hash
-Small key speed test - 15-byte keys - 39.00 cycles/hash
-Small key speed test - 16-byte keys - 32.82 cycles/hash
-Small key speed test - 17-byte keys - 34.88 cycles/hash
-Small key speed test - 18-byte keys - 34.96 cycles/hash
-Small key speed test - 19-byte keys - 38.18 cycles/hash
-Small key speed test - 20-byte keys - 34.84 cycles/hash
-Small key speed test - 21-byte keys - 36.00 cycles/hash
-Small key speed test - 22-byte keys - 38.24 cycles/hash
-Small key speed test - 23-byte keys - 39.96 cycles/hash
-Small key speed test - 24-byte keys - 35.00 cycles/hash
-Small key speed test - 25-byte keys - 37.00 cycles/hash
-Small key speed test - 26-byte keys - 37.00 cycles/hash
-Small key speed test - 27-byte keys - 40.31 cycles/hash
-Small key speed test - 28-byte keys - 37.00 cycles/hash
-Small key speed test - 29-byte keys - 37.27 cycles/hash
-Small key speed test - 30-byte keys - 40.25 cycles/hash
-Small key speed test - 31-byte keys - 41.45 cycles/hash
-Average 36.146 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 465.718 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 400.066 cycles/op (5.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 319.762 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 267.837 cycles/op (5.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.151318 seconds
---- Testing mirhash "mirhash" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.098 bytes/cycle - 6003.13 MiB/sec @ 3 ghz
-Alignment 6 - 2.102 bytes/cycle - 6013.76 MiB/sec @ 3 ghz
-Alignment 5 - 2.100 bytes/cycle - 6008.07 MiB/sec @ 3 ghz
-Alignment 4 - 2.099 bytes/cycle - 6006.67 MiB/sec @ 3 ghz
-Alignment 3 - 2.100 bytes/cycle - 6007.54 MiB/sec @ 3 ghz
-Alignment 2 - 2.099 bytes/cycle - 6005.69 MiB/sec @ 3 ghz
-Alignment 1 - 2.100 bytes/cycle - 6008.34 MiB/sec @ 3 ghz
-Alignment 0 - 2.102 bytes/cycle - 6013.97 MiB/sec @ 3 ghz
-Average - 2.100 bytes/cycle - 6008.40 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.00 cycles/hash
-Small key speed test - 2-byte keys - 34.00 cycles/hash
-Small key speed test - 3-byte keys - 35.99 cycles/hash
-Small key speed test - 4-byte keys - 31.00 cycles/hash
-Small key speed test - 5-byte keys - 33.00 cycles/hash
-Small key speed test - 6-byte keys - 35.00 cycles/hash
-Small key speed test - 7-byte keys - 37.00 cycles/hash
-Small key speed test - 8-byte keys - 30.00 cycles/hash
-Small key speed test - 9-byte keys - 33.00 cycles/hash
-Small key speed test - 10-byte keys - 35.99 cycles/hash
-Small key speed test - 11-byte keys - 38.00 cycles/hash
-Small key speed test - 12-byte keys - 32.00 cycles/hash
-Small key speed test - 13-byte keys - 35.00 cycles/hash
-Small key speed test - 14-byte keys - 37.73 cycles/hash
-Small key speed test - 15-byte keys - 39.00 cycles/hash
-Small key speed test - 16-byte keys - 38.00 cycles/hash
-Small key speed test - 17-byte keys - 39.32 cycles/hash
-Small key speed test - 18-byte keys - 40.00 cycles/hash
-Small key speed test - 19-byte keys - 41.00 cycles/hash
-Small key speed test - 20-byte keys - 39.73 cycles/hash
-Small key speed test - 21-byte keys - 40.00 cycles/hash
-Small key speed test - 22-byte keys - 41.13 cycles/hash
-Small key speed test - 23-byte keys - 41.97 cycles/hash
-Small key speed test - 24-byte keys - 39.00 cycles/hash
-Small key speed test - 25-byte keys - 40.48 cycles/hash
-Small key speed test - 26-byte keys - 41.00 cycles/hash
-Small key speed test - 27-byte keys - 43.00 cycles/hash
-Small key speed test - 28-byte keys - 40.79 cycles/hash
-Small key speed test - 29-byte keys - 41.00 cycles/hash
-Small key speed test - 30-byte keys - 41.74 cycles/hash
-Small key speed test - 31-byte keys - 44.70 cycles/hash
-Average 37.793 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 459.719 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 380.567 cycles/op (7.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 302.779 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 237.033 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.626307 seconds
---- Testing mirhash32low "mirhash - lower 32bit" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.113 bytes/cycle - 6044.36 MiB/sec @ 3 ghz
-Alignment 6 - 2.122 bytes/cycle - 6070.47 MiB/sec @ 3 ghz
-Alignment 5 - 2.118 bytes/cycle - 6059.88 MiB/sec @ 3 ghz
-Alignment 4 - 2.122 bytes/cycle - 6071.01 MiB/sec @ 3 ghz
-Alignment 3 - 2.117 bytes/cycle - 6055.97 MiB/sec @ 3 ghz
-Alignment 2 - 2.114 bytes/cycle - 6047.80 MiB/sec @ 3 ghz
-Alignment 1 - 2.118 bytes/cycle - 6058.85 MiB/sec @ 3 ghz
-Alignment 0 - 2.115 bytes/cycle - 6051.76 MiB/sec @ 3 ghz
-Average - 2.117 bytes/cycle - 6057.51 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 31.98 cycles/hash
-Small key speed test - 2-byte keys - 34.00 cycles/hash
-Small key speed test - 3-byte keys - 35.54 cycles/hash
-Small key speed test - 4-byte keys - 31.00 cycles/hash
-Small key speed test - 5-byte keys - 33.00 cycles/hash
-Small key speed test - 6-byte keys - 35.00 cycles/hash
-Small key speed test - 7-byte keys - 36.90 cycles/hash
-Small key speed test - 8-byte keys - 30.00 cycles/hash
-Small key speed test - 9-byte keys - 33.00 cycles/hash
-Small key speed test - 10-byte keys - 35.89 cycles/hash
-Small key speed test - 11-byte keys - 37.75 cycles/hash
-Small key speed test - 12-byte keys - 32.00 cycles/hash
-Small key speed test - 13-byte keys - 34.91 cycles/hash
-Small key speed test - 14-byte keys - 37.00 cycles/hash
-Small key speed test - 15-byte keys - 39.00 cycles/hash
-Small key speed test - 16-byte keys - 37.99 cycles/hash
-Small key speed test - 17-byte keys - 39.00 cycles/hash
-Small key speed test - 18-byte keys - 39.49 cycles/hash
-Small key speed test - 19-byte keys - 40.99 cycles/hash
-Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 39.81 cycles/hash
-Small key speed test - 22-byte keys - 40.00 cycles/hash
-Small key speed test - 23-byte keys - 42.10 cycles/hash
-Small key speed test - 24-byte keys - 39.00 cycles/hash
-Small key speed test - 25-byte keys - 40.00 cycles/hash
-Small key speed test - 26-byte keys - 40.99 cycles/hash
-Small key speed test - 27-byte keys - 42.87 cycles/hash
-Small key speed test - 28-byte keys - 40.44 cycles/hash
-Small key speed test - 29-byte keys - 41.00 cycles/hash
-Small key speed test - 30-byte keys - 42.00 cycles/hash
-Small key speed test - 31-byte keys - 44.28 cycles/hash
-Average 37.610 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 439.965 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 370.812 cycles/op (7.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 313.005 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 254.301 cycles/op (7.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.591930 seconds
---- Testing mirhashstrict "mirhashstrict (portable, 64-bit, little-endian)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.228 bytes/cycle - 3512.17 MiB/sec @ 3 ghz
-Alignment 6 - 1.227 bytes/cycle - 3511.89 MiB/sec @ 3 ghz
-Alignment 5 - 1.229 bytes/cycle - 3514.83 MiB/sec @ 3 ghz
-Alignment 4 - 1.228 bytes/cycle - 3514.25 MiB/sec @ 3 ghz
-Alignment 3 - 1.227 bytes/cycle - 3511.37 MiB/sec @ 3 ghz
-Alignment 2 - 1.228 bytes/cycle - 3513.54 MiB/sec @ 3 ghz
-Alignment 1 - 1.227 bytes/cycle - 3510.03 MiB/sec @ 3 ghz
-Alignment 0 - 1.319 bytes/cycle - 3773.45 MiB/sec @ 3 ghz
-Average - 1.239 bytes/cycle - 3545.19 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 41.00 cycles/hash
-Small key speed test - 2-byte keys - 42.33 cycles/hash
-Small key speed test - 3-byte keys - 44.93 cycles/hash
-Small key speed test - 4-byte keys - 37.00 cycles/hash
-Small key speed test - 5-byte keys - 41.79 cycles/hash
-Small key speed test - 6-byte keys - 44.21 cycles/hash
-Small key speed test - 7-byte keys - 46.00 cycles/hash
-Small key speed test - 8-byte keys - 38.23 cycles/hash
-Small key speed test - 9-byte keys - 42.91 cycles/hash
-Small key speed test - 10-byte keys - 46.00 cycles/hash
-Small key speed test - 11-byte keys - 48.47 cycles/hash
-Small key speed test - 12-byte keys - 41.00 cycles/hash
-Small key speed test - 13-byte keys - 42.45 cycles/hash
-Small key speed test - 14-byte keys - 46.00 cycles/hash
-Small key speed test - 15-byte keys - 49.00 cycles/hash
-Small key speed test - 16-byte keys - 52.22 cycles/hash
-Small key speed test - 17-byte keys - 53.00 cycles/hash
-Small key speed test - 18-byte keys - 53.00 cycles/hash
-Small key speed test - 19-byte keys - 52.47 cycles/hash
-Small key speed test - 20-byte keys - 53.16 cycles/hash
-Small key speed test - 21-byte keys - 53.41 cycles/hash
-Small key speed test - 22-byte keys - 53.99 cycles/hash
-Small key speed test - 23-byte keys - 55.00 cycles/hash
-Small key speed test - 24-byte keys - 53.00 cycles/hash
-Small key speed test - 25-byte keys - 58.45 cycles/hash
-Small key speed test - 26-byte keys - 60.53 cycles/hash
-Small key speed test - 27-byte keys - 64.99 cycles/hash
-Small key speed test - 28-byte keys - 57.00 cycles/hash
-Small key speed test - 29-byte keys - 57.66 cycles/hash
-Small key speed test - 30-byte keys - 60.85 cycles/hash
-Small key speed test - 31-byte keys - 61.00 cycles/hash
-Average 50.034 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 464.458 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.748 cycles/op (6.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 322.311 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 234.090 cycles/op (5.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.399572 seconds
---- Testing mirhashstrict32low "mirhashstrict - lower 32bit" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.234 bytes/cycle - 3530.11 MiB/sec @ 3 ghz
-Alignment 6 - 1.234 bytes/cycle - 3529.36 MiB/sec @ 3 ghz
-Alignment 5 - 1.237 bytes/cycle - 3540.01 MiB/sec @ 3 ghz
-Alignment 4 - 1.237 bytes/cycle - 3539.68 MiB/sec @ 3 ghz
-Alignment 3 - 1.237 bytes/cycle - 3539.80 MiB/sec @ 3 ghz
-Alignment 2 - 1.234 bytes/cycle - 3529.47 MiB/sec @ 3 ghz
-Alignment 1 - 1.233 bytes/cycle - 3526.28 MiB/sec @ 3 ghz
-Alignment 0 - 1.327 bytes/cycle - 3797.04 MiB/sec @ 3 ghz
-Average - 1.247 bytes/cycle - 3566.47 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 40.42 cycles/hash
-Small key speed test - 2-byte keys - 42.00 cycles/hash
-Small key speed test - 3-byte keys - 44.00 cycles/hash
-Small key speed test - 4-byte keys - 37.00 cycles/hash
-Small key speed test - 5-byte keys - 41.28 cycles/hash
-Small key speed test - 6-byte keys - 44.00 cycles/hash
-Small key speed test - 7-byte keys - 45.28 cycles/hash
-Small key speed test - 8-byte keys - 38.00 cycles/hash
-Small key speed test - 9-byte keys - 42.31 cycles/hash
-Small key speed test - 10-byte keys - 46.00 cycles/hash
-Small key speed test - 11-byte keys - 48.00 cycles/hash
-Small key speed test - 12-byte keys - 41.00 cycles/hash
-Small key speed test - 13-byte keys - 42.00 cycles/hash
-Small key speed test - 14-byte keys - 46.00 cycles/hash
-Small key speed test - 15-byte keys - 48.98 cycles/hash
-Small key speed test - 16-byte keys - 52.00 cycles/hash
-Small key speed test - 17-byte keys - 52.72 cycles/hash
-Small key speed test - 18-byte keys - 52.57 cycles/hash
-Small key speed test - 19-byte keys - 52.00 cycles/hash
-Small key speed test - 20-byte keys - 53.00 cycles/hash
-Small key speed test - 21-byte keys - 53.00 cycles/hash
-Small key speed test - 22-byte keys - 53.00 cycles/hash
-Small key speed test - 23-byte keys - 55.00 cycles/hash
-Small key speed test - 24-byte keys - 52.59 cycles/hash
-Small key speed test - 25-byte keys - 58.00 cycles/hash
-Small key speed test - 26-byte keys - 60.00 cycles/hash
-Small key speed test - 27-byte keys - 64.71 cycles/hash
-Small key speed test - 28-byte keys - 57.00 cycles/hash
-Small key speed test - 29-byte keys - 57.00 cycles/hash
-Small key speed test - 30-byte keys - 60.26 cycles/hash
-Small key speed test - 31-byte keys - 62.59 cycles/hash
-Average 49.732 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 447.560 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 374.523 cycles/op (7.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 316.492 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 263.245 cycles/op (4.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.363968 seconds
---- Testing City64low "Google CityHash64WithSeed (low 32-bits)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.832 bytes/cycle - 13825.66 MiB/sec @ 3 ghz
-Alignment 6 - 4.847 bytes/cycle - 13866.02 MiB/sec @ 3 ghz
-Alignment 5 - 4.852 bytes/cycle - 13882.08 MiB/sec @ 3 ghz
-Alignment 4 - 4.858 bytes/cycle - 13899.82 MiB/sec @ 3 ghz
-Alignment 3 - 4.851 bytes/cycle - 13879.62 MiB/sec @ 3 ghz
-Alignment 2 - 4.842 bytes/cycle - 13854.04 MiB/sec @ 3 ghz
-Alignment 1 - 4.851 bytes/cycle - 13879.11 MiB/sec @ 3 ghz
-Alignment 0 - 4.926 bytes/cycle - 14092.57 MiB/sec @ 3 ghz
-Average - 4.857 bytes/cycle - 13897.36 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 39.92 cycles/hash
-Small key speed test - 2-byte keys - 39.91 cycles/hash
-Small key speed test - 3-byte keys - 39.91 cycles/hash
-Small key speed test - 4-byte keys - 43.00 cycles/hash
-Small key speed test - 5-byte keys - 43.00 cycles/hash
-Small key speed test - 6-byte keys - 43.00 cycles/hash
-Small key speed test - 7-byte keys - 43.00 cycles/hash
-Small key speed test - 8-byte keys - 43.00 cycles/hash
-Small key speed test - 9-byte keys - 44.93 cycles/hash
-Small key speed test - 10-byte keys - 44.79 cycles/hash
-Small key speed test - 11-byte keys - 44.79 cycles/hash
-Small key speed test - 12-byte keys - 44.79 cycles/hash
-Small key speed test - 13-byte keys - 44.87 cycles/hash
-Small key speed test - 14-byte keys - 44.45 cycles/hash
-Small key speed test - 15-byte keys - 44.90 cycles/hash
-Small key speed test - 16-byte keys - 44.58 cycles/hash
-Small key speed test - 17-byte keys - 49.00 cycles/hash
-Small key speed test - 18-byte keys - 49.00 cycles/hash
-Small key speed test - 19-byte keys - 49.00 cycles/hash
-Small key speed test - 20-byte keys - 49.00 cycles/hash
-Small key speed test - 21-byte keys - 50.44 cycles/hash
-Small key speed test - 22-byte keys - 50.00 cycles/hash
-Small key speed test - 23-byte keys - 50.00 cycles/hash
-Small key speed test - 24-byte keys - 49.00 cycles/hash
-Small key speed test - 25-byte keys - 49.51 cycles/hash
-Small key speed test - 26-byte keys - 49.00 cycles/hash
-Small key speed test - 27-byte keys - 49.66 cycles/hash
-Small key speed test - 28-byte keys - 49.25 cycles/hash
-Small key speed test - 29-byte keys - 49.25 cycles/hash
-Small key speed test - 30-byte keys - 49.26 cycles/hash
-Small key speed test - 31-byte keys - 49.24 cycles/hash
-Average 46.240 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 442.853 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.390 cycles/op (6.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 324.264 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 267.685 cycles/op (5.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.624065 seconds
---- Testing City128 "Google CityHash128WithSeed (old)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.926 bytes/cycle - 14093.05 MiB/sec @ 3 ghz
-Alignment 6 - 4.932 bytes/cycle - 14109.79 MiB/sec @ 3 ghz
-Alignment 5 - 4.932 bytes/cycle - 14111.79 MiB/sec @ 3 ghz
-Alignment 4 - 4.936 bytes/cycle - 14121.16 MiB/sec @ 3 ghz
-Alignment 3 - 4.935 bytes/cycle - 14118.24 MiB/sec @ 3 ghz
-Alignment 2 - 4.919 bytes/cycle - 14073.63 MiB/sec @ 3 ghz
-Alignment 1 - 4.934 bytes/cycle - 14115.17 MiB/sec @ 3 ghz
-Alignment 0 - 4.996 bytes/cycle - 14293.98 MiB/sec @ 3 ghz
-Average - 4.939 bytes/cycle - 14129.60 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 77.00 cycles/hash
-Small key speed test - 2-byte keys - 77.00 cycles/hash
-Small key speed test - 3-byte keys - 77.00 cycles/hash
-Small key speed test - 4-byte keys - 79.00 cycles/hash
-Small key speed test - 5-byte keys - 79.00 cycles/hash
-Small key speed test - 6-byte keys - 79.00 cycles/hash
-Small key speed test - 7-byte keys - 79.00 cycles/hash
-Small key speed test - 8-byte keys - 76.99 cycles/hash
-Small key speed test - 9-byte keys - 80.00 cycles/hash
-Small key speed test - 10-byte keys - 80.00 cycles/hash
-Small key speed test - 11-byte keys - 80.00 cycles/hash
-Small key speed test - 12-byte keys - 80.00 cycles/hash
-Small key speed test - 13-byte keys - 80.00 cycles/hash
-Small key speed test - 14-byte keys - 80.00 cycles/hash
-Small key speed test - 15-byte keys - 80.00 cycles/hash
-Small key speed test - 16-byte keys - 80.00 cycles/hash
-Small key speed test - 17-byte keys - 98.00 cycles/hash
-Small key speed test - 18-byte keys - 98.19 cycles/hash
-Small key speed test - 19-byte keys - 98.21 cycles/hash
-Small key speed test - 20-byte keys - 97.99 cycles/hash
-Small key speed test - 21-byte keys - 97.97 cycles/hash
-Small key speed test - 22-byte keys - 97.95 cycles/hash
-Small key speed test - 23-byte keys - 97.99 cycles/hash
-Small key speed test - 24-byte keys - 97.74 cycles/hash
-Small key speed test - 25-byte keys - 97.16 cycles/hash
-Small key speed test - 26-byte keys - 97.00 cycles/hash
-Small key speed test - 27-byte keys - 97.11 cycles/hash
-Small key speed test - 28-byte keys - 96.99 cycles/hash
-Small key speed test - 29-byte keys - 96.99 cycles/hash
-Small key speed test - 30-byte keys - 96.99 cycles/hash
-Small key speed test - 31-byte keys - 96.99 cycles/hash
-Average 87.976 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 495.114 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 422.284 cycles/op (4.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 347.132 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 290.702 cycles/op (7.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 18.919522 seconds
---- Testing CityCrc128 "Google CityHashCrc128WithSeed SSE4.2 (old)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 2.808 bytes/cycle - 8032.45 MiB/sec @ 3 ghz
-Alignment 6 - 2.808 bytes/cycle - 8034.83 MiB/sec @ 3 ghz
-Alignment 5 - 2.809 bytes/cycle - 8037.67 MiB/sec @ 3 ghz
-Alignment 4 - 2.810 bytes/cycle - 8039.67 MiB/sec @ 3 ghz
-Alignment 3 - 2.810 bytes/cycle - 8038.11 MiB/sec @ 3 ghz
-Alignment 2 - 2.809 bytes/cycle - 8037.51 MiB/sec @ 3 ghz
-Alignment 1 - 2.819 bytes/cycle - 8066.61 MiB/sec @ 3 ghz
-Alignment 0 - 2.812 bytes/cycle - 8044.34 MiB/sec @ 3 ghz
-Average - 2.811 bytes/cycle - 8041.40 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 45.00 cycles/hash
-Small key speed test - 2-byte keys - 45.00 cycles/hash
-Small key speed test - 3-byte keys - 45.00 cycles/hash
-Small key speed test - 4-byte keys - 47.81 cycles/hash
-Small key speed test - 5-byte keys - 47.80 cycles/hash
-Small key speed test - 6-byte keys - 47.78 cycles/hash
-Small key speed test - 7-byte keys - 47.79 cycles/hash
-Small key speed test - 8-byte keys - 44.00 cycles/hash
-Small key speed test - 9-byte keys - 46.00 cycles/hash
-Small key speed test - 10-byte keys - 46.00 cycles/hash
-Small key speed test - 11-byte keys - 46.00 cycles/hash
-Small key speed test - 12-byte keys - 46.00 cycles/hash
-Small key speed test - 13-byte keys - 46.00 cycles/hash
-Small key speed test - 14-byte keys - 46.00 cycles/hash
-Small key speed test - 15-byte keys - 46.00 cycles/hash
-Small key speed test - 16-byte keys - 46.00 cycles/hash
-Small key speed test - 17-byte keys - 63.00 cycles/hash
-Small key speed test - 18-byte keys - 63.00 cycles/hash
-Small key speed test - 19-byte keys - 63.00 cycles/hash
-Small key speed test - 20-byte keys - 63.00 cycles/hash
-Small key speed test - 21-byte keys - 64.88 cycles/hash
-Small key speed test - 22-byte keys - 64.89 cycles/hash
-Small key speed test - 23-byte keys - 64.95 cycles/hash
-Small key speed test - 24-byte keys - 64.00 cycles/hash
-Small key speed test - 25-byte keys - 63.78 cycles/hash
-Small key speed test - 26-byte keys - 63.69 cycles/hash
-Small key speed test - 27-byte keys - 63.81 cycles/hash
-Small key speed test - 28-byte keys - 63.79 cycles/hash
-Small key speed test - 29-byte keys - 63.82 cycles/hash
-Small key speed test - 30-byte keys - 63.84 cycles/hash
-Small key speed test - 31-byte keys - 63.80 cycles/hash
-Average 54.691 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 454.881 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 389.939 cycles/op (6.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 326.794 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 257.220 cycles/op (5.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.351833 seconds
---- Testing FarmHash32 "Google FarmHash32WithSeed" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.524 bytes/cycle - 21524.94 MiB/sec @ 3 ghz
-Alignment 6 - 7.556 bytes/cycle - 21618.81 MiB/sec @ 3 ghz
-Alignment 5 - 7.554 bytes/cycle - 21613.50 MiB/sec @ 3 ghz
-Alignment 4 - 7.563 bytes/cycle - 21638.57 MiB/sec @ 3 ghz
-Alignment 3 - 7.555 bytes/cycle - 21613.81 MiB/sec @ 3 ghz
-Alignment 2 - 7.532 bytes/cycle - 21549.67 MiB/sec @ 3 ghz
-Alignment 1 - 7.524 bytes/cycle - 21527.20 MiB/sec @ 3 ghz
-Alignment 0 - 7.887 bytes/cycle - 22563.69 MiB/sec @ 3 ghz
-Average - 7.587 bytes/cycle - 21706.27 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 39.87 cycles/hash
-Small key speed test - 2-byte keys - 39.22 cycles/hash
-Small key speed test - 3-byte keys - 39.54 cycles/hash
-Small key speed test - 4-byte keys - 43.00 cycles/hash
-Small key speed test - 5-byte keys - 43.00 cycles/hash
-Small key speed test - 6-byte keys - 43.00 cycles/hash
-Small key speed test - 7-byte keys - 43.00 cycles/hash
-Small key speed test - 8-byte keys - 48.92 cycles/hash
-Small key speed test - 9-byte keys - 48.92 cycles/hash
-Small key speed test - 10-byte keys - 48.97 cycles/hash
-Small key speed test - 11-byte keys - 48.95 cycles/hash
-Small key speed test - 12-byte keys - 48.92 cycles/hash
-Small key speed test - 13-byte keys - 48.98 cycles/hash
-Small key speed test - 14-byte keys - 48.97 cycles/hash
-Small key speed test - 15-byte keys - 48.96 cycles/hash
-Small key speed test - 16-byte keys - 48.94 cycles/hash
-Small key speed test - 17-byte keys - 49.84 cycles/hash
-Small key speed test - 18-byte keys - 49.90 cycles/hash
-Small key speed test - 19-byte keys - 49.93 cycles/hash
-Small key speed test - 20-byte keys - 49.88 cycles/hash
-Small key speed test - 21-byte keys - 49.93 cycles/hash
-Small key speed test - 22-byte keys - 49.91 cycles/hash
-Small key speed test - 23-byte keys - 49.87 cycles/hash
-Small key speed test - 24-byte keys - 49.94 cycles/hash
-Small key speed test - 25-byte keys - 49.84 cycles/hash
-Small key speed test - 26-byte keys - 49.81 cycles/hash
-Small key speed test - 27-byte keys - 49.85 cycles/hash
-Small key speed test - 28-byte keys - 49.65 cycles/hash
-Small key speed test - 29-byte keys - 49.59 cycles/hash
-Small key speed test - 30-byte keys - 49.71 cycles/hash
-Small key speed test - 31-byte keys - 49.65 cycles/hash
-Average 47.692 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 447.990 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.877 cycles/op (7.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 331.632 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 271.511 cycles/op (5.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.735070 seconds
---- Testing FarmHash64 "Google FarmHash64WithSeed" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.506 bytes/cycle - 12890.61 MiB/sec @ 3 ghz
-Alignment 6 - 4.510 bytes/cycle - 12902.53 MiB/sec @ 3 ghz
-Alignment 5 - 4.511 bytes/cycle - 12905.07 MiB/sec @ 3 ghz
-Alignment 4 - 4.534 bytes/cycle - 12971.13 MiB/sec @ 3 ghz
-Alignment 3 - 4.524 bytes/cycle - 12942.55 MiB/sec @ 3 ghz
-Alignment 2 - 4.515 bytes/cycle - 12916.27 MiB/sec @ 3 ghz
-Alignment 1 - 4.516 bytes/cycle - 12920.85 MiB/sec @ 3 ghz
-Alignment 0 - 4.641 bytes/cycle - 13277.08 MiB/sec @ 3 ghz
-Average - 4.532 bytes/cycle - 12965.76 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 39.00 cycles/hash
-Small key speed test - 2-byte keys - 39.00 cycles/hash
-Small key speed test - 3-byte keys - 39.00 cycles/hash
-Small key speed test - 4-byte keys - 42.00 cycles/hash
-Small key speed test - 5-byte keys - 41.99 cycles/hash
-Small key speed test - 6-byte keys - 42.00 cycles/hash
-Small key speed test - 7-byte keys - 42.00 cycles/hash
-Small key speed test - 8-byte keys - 48.00 cycles/hash
-Small key speed test - 9-byte keys - 48.00 cycles/hash
-Small key speed test - 10-byte keys - 48.00 cycles/hash
-Small key speed test - 11-byte keys - 48.00 cycles/hash
-Small key speed test - 12-byte keys - 48.00 cycles/hash
-Small key speed test - 13-byte keys - 48.00 cycles/hash
-Small key speed test - 14-byte keys - 48.00 cycles/hash
-Small key speed test - 15-byte keys - 48.00 cycles/hash
-Small key speed test - 16-byte keys - 48.00 cycles/hash
-Small key speed test - 17-byte keys - 48.46 cycles/hash
-Small key speed test - 18-byte keys - 48.60 cycles/hash
-Small key speed test - 19-byte keys - 48.57 cycles/hash
-Small key speed test - 20-byte keys - 48.55 cycles/hash
-Small key speed test - 21-byte keys - 48.00 cycles/hash
-Small key speed test - 22-byte keys - 48.00 cycles/hash
-Small key speed test - 23-byte keys - 48.00 cycles/hash
-Small key speed test - 24-byte keys - 48.00 cycles/hash
-Small key speed test - 25-byte keys - 48.00 cycles/hash
-Small key speed test - 26-byte keys - 48.00 cycles/hash
-Small key speed test - 27-byte keys - 48.00 cycles/hash
-Small key speed test - 28-byte keys - 48.00 cycles/hash
-Small key speed test - 29-byte keys - 48.00 cycles/hash
-Small key speed test - 30-byte keys - 48.00 cycles/hash
-Small key speed test - 31-byte keys - 48.00 cycles/hash
-Average 46.424 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 441.367 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 382.817 cycles/op (7.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.451 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 258.292 cycles/op (5.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.664442 seconds
---- Testing FarmHash128 "Google FarmHash128WithSeed" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.918 bytes/cycle - 14069.53 MiB/sec @ 3 ghz
-Alignment 6 - 4.920 bytes/cycle - 14076.63 MiB/sec @ 3 ghz
-Alignment 5 - 4.913 bytes/cycle - 14056.78 MiB/sec @ 3 ghz
-Alignment 4 - 4.927 bytes/cycle - 14097.25 MiB/sec @ 3 ghz
-Alignment 3 - 4.929 bytes/cycle - 14101.33 MiB/sec @ 3 ghz
-Alignment 2 - 4.941 bytes/cycle - 14136.86 MiB/sec @ 3 ghz
-Alignment 1 - 4.934 bytes/cycle - 14116.44 MiB/sec @ 3 ghz
-Alignment 0 - 5.068 bytes/cycle - 14498.61 MiB/sec @ 3 ghz
-Average - 4.944 bytes/cycle - 14144.18 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 56.71 cycles/hash
-Small key speed test - 2-byte keys - 56.64 cycles/hash
-Small key speed test - 3-byte keys - 56.79 cycles/hash
-Small key speed test - 4-byte keys - 62.00 cycles/hash
-Small key speed test - 5-byte keys - 62.00 cycles/hash
-Small key speed test - 6-byte keys - 62.00 cycles/hash
-Small key speed test - 7-byte keys - 62.00 cycles/hash
-Small key speed test - 8-byte keys - 62.00 cycles/hash
-Small key speed test - 9-byte keys - 62.00 cycles/hash
-Small key speed test - 10-byte keys - 62.00 cycles/hash
-Small key speed test - 11-byte keys - 62.00 cycles/hash
-Small key speed test - 12-byte keys - 62.00 cycles/hash
-Small key speed test - 13-byte keys - 62.00 cycles/hash
-Small key speed test - 14-byte keys - 62.00 cycles/hash
-Small key speed test - 15-byte keys - 62.00 cycles/hash
-Small key speed test - 16-byte keys - 62.00 cycles/hash
-Small key speed test - 17-byte keys - 77.99 cycles/hash
-Small key speed test - 18-byte keys - 77.96 cycles/hash
-Small key speed test - 19-byte keys - 77.99 cycles/hash
-Small key speed test - 20-byte keys - 78.00 cycles/hash
-Small key speed test - 21-byte keys - 78.33 cycles/hash
-Small key speed test - 22-byte keys - 78.61 cycles/hash
-Small key speed test - 23-byte keys - 78.27 cycles/hash
-Small key speed test - 24-byte keys - 77.58 cycles/hash
-Small key speed test - 25-byte keys - 77.90 cycles/hash
-Small key speed test - 26-byte keys - 77.89 cycles/hash
-Small key speed test - 27-byte keys - 77.92 cycles/hash
-Small key speed test - 28-byte keys - 77.81 cycles/hash
-Small key speed test - 29-byte keys - 77.82 cycles/hash
-Small key speed test - 30-byte keys - 77.73 cycles/hash
-Small key speed test - 31-byte keys - 77.76 cycles/hash
-Average 69.215 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 472.309 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 403.478 cycles/op (6.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 332.906 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 269.641 cycles/op (4.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 15.630291 seconds
---- Testing farmhash32_c "farmhash32_with_seed (C99)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.611 bytes/cycle - 21775.24 MiB/sec @ 3 ghz
-Alignment 6 - 7.610 bytes/cycle - 21771.86 MiB/sec @ 3 ghz
-Alignment 5 - 7.609 bytes/cycle - 21769.07 MiB/sec @ 3 ghz
-Alignment 4 - 7.616 bytes/cycle - 21789.06 MiB/sec @ 3 ghz
-Alignment 3 - 7.615 bytes/cycle - 21787.63 MiB/sec @ 3 ghz
-Alignment 2 - 7.625 bytes/cycle - 21814.04 MiB/sec @ 3 ghz
-Alignment 1 - 7.622 bytes/cycle - 21805.49 MiB/sec @ 3 ghz
-Alignment 0 - 7.966 bytes/cycle - 22792.23 MiB/sec @ 3 ghz
-Average - 7.659 bytes/cycle - 21913.08 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 39.00 cycles/hash
-Small key speed test - 2-byte keys - 39.00 cycles/hash
-Small key speed test - 3-byte keys - 39.00 cycles/hash
-Small key speed test - 4-byte keys - 42.79 cycles/hash
-Small key speed test - 5-byte keys - 42.45 cycles/hash
-Small key speed test - 6-byte keys - 42.47 cycles/hash
-Small key speed test - 7-byte keys - 42.63 cycles/hash
-Small key speed test - 8-byte keys - 47.95 cycles/hash
-Small key speed test - 9-byte keys - 47.98 cycles/hash
-Small key speed test - 10-byte keys - 47.94 cycles/hash
-Small key speed test - 11-byte keys - 47.95 cycles/hash
-Small key speed test - 12-byte keys - 47.95 cycles/hash
-Small key speed test - 13-byte keys - 48.00 cycles/hash
-Small key speed test - 14-byte keys - 47.98 cycles/hash
-Small key speed test - 15-byte keys - 47.94 cycles/hash
-Small key speed test - 16-byte keys - 48.00 cycles/hash
-Small key speed test - 17-byte keys - 48.56 cycles/hash
-Small key speed test - 18-byte keys - 48.57 cycles/hash
-Small key speed test - 19-byte keys - 48.59 cycles/hash
-Small key speed test - 20-byte keys - 48.50 cycles/hash
-Small key speed test - 21-byte keys - 50.24 cycles/hash
-Small key speed test - 22-byte keys - 50.22 cycles/hash
-Small key speed test - 23-byte keys - 50.20 cycles/hash
-Small key speed test - 24-byte keys - 50.00 cycles/hash
-Small key speed test - 25-byte keys - 50.00 cycles/hash
-Small key speed test - 26-byte keys - 50.00 cycles/hash
-Small key speed test - 27-byte keys - 50.00 cycles/hash
-Small key speed test - 28-byte keys - 50.00 cycles/hash
-Small key speed test - 29-byte keys - 49.99 cycles/hash
-Small key speed test - 30-byte keys - 49.99 cycles/hash
-Small key speed test - 31-byte keys - 50.00 cycles/hash
-Average 47.222 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 439.931 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 373.329 cycles/op (8.7 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 328.473 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 267.186 cycles/op (5.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.600041 seconds
---- Testing farmhash64_c "farmhash64_with_seed (C99)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.464 bytes/cycle - 12770.76 MiB/sec @ 3 ghz
-Alignment 6 - 4.477 bytes/cycle - 12809.68 MiB/sec @ 3 ghz
-Alignment 5 - 4.481 bytes/cycle - 12820.86 MiB/sec @ 3 ghz
-Alignment 4 - 4.483 bytes/cycle - 12826.93 MiB/sec @ 3 ghz
-Alignment 3 - 4.482 bytes/cycle - 12822.91 MiB/sec @ 3 ghz
-Alignment 2 - 4.480 bytes/cycle - 12816.54 MiB/sec @ 3 ghz
-Alignment 1 - 4.481 bytes/cycle - 12820.41 MiB/sec @ 3 ghz
-Alignment 0 - 4.594 bytes/cycle - 13142.41 MiB/sec @ 3 ghz
-Average - 4.493 bytes/cycle - 12853.81 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 39.32 cycles/hash
-Small key speed test - 2-byte keys - 39.29 cycles/hash
-Small key speed test - 3-byte keys - 39.20 cycles/hash
-Small key speed test - 4-byte keys - 42.00 cycles/hash
-Small key speed test - 5-byte keys - 42.17 cycles/hash
-Small key speed test - 6-byte keys - 42.17 cycles/hash
-Small key speed test - 7-byte keys - 42.00 cycles/hash
-Small key speed test - 8-byte keys - 48.63 cycles/hash
-Small key speed test - 9-byte keys - 48.66 cycles/hash
-Small key speed test - 10-byte keys - 48.49 cycles/hash
-Small key speed test - 11-byte keys - 48.72 cycles/hash
-Small key speed test - 12-byte keys - 48.46 cycles/hash
-Small key speed test - 13-byte keys - 48.44 cycles/hash
-Small key speed test - 14-byte keys - 48.00 cycles/hash
-Small key speed test - 15-byte keys - 48.00 cycles/hash
-Small key speed test - 16-byte keys - 48.27 cycles/hash
-Small key speed test - 17-byte keys - 49.00 cycles/hash
-Small key speed test - 18-byte keys - 49.00 cycles/hash
-Small key speed test - 19-byte keys - 49.00 cycles/hash
-Small key speed test - 20-byte keys - 49.00 cycles/hash
-Small key speed test - 21-byte keys - 49.00 cycles/hash
-Small key speed test - 22-byte keys - 49.00 cycles/hash
-Small key speed test - 23-byte keys - 49.00 cycles/hash
-Small key speed test - 24-byte keys - 48.99 cycles/hash
-Small key speed test - 25-byte keys - 48.97 cycles/hash
-Small key speed test - 26-byte keys - 48.97 cycles/hash
-Small key speed test - 27-byte keys - 48.97 cycles/hash
-Small key speed test - 28-byte keys - 48.99 cycles/hash
-Small key speed test - 29-byte keys - 48.98 cycles/hash
-Small key speed test - 30-byte keys - 48.98 cycles/hash
-Small key speed test - 31-byte keys - 48.98 cycles/hash
-Average 46.990 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 455.219 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 387.164 cycles/op (7.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 327.824 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 250.292 cycles/op (5.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.797116 seconds
---- Testing farmhash128_c "farmhash128_with_seed (C99)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.841 bytes/cycle - 13850.57 MiB/sec @ 3 ghz
-Alignment 6 - 4.862 bytes/cycle - 13910.68 MiB/sec @ 3 ghz
-Alignment 5 - 4.839 bytes/cycle - 13845.29 MiB/sec @ 3 ghz
-Alignment 4 - 4.843 bytes/cycle - 13857.21 MiB/sec @ 3 ghz
-Alignment 3 - 4.838 bytes/cycle - 13842.21 MiB/sec @ 3 ghz
-Alignment 2 - 4.839 bytes/cycle - 13843.64 MiB/sec @ 3 ghz
-Alignment 1 - 4.840 bytes/cycle - 13845.96 MiB/sec @ 3 ghz
-Alignment 0 - 4.903 bytes/cycle - 14027.28 MiB/sec @ 3 ghz
-Average - 4.851 bytes/cycle - 13877.86 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 56.12 cycles/hash
-Small key speed test - 2-byte keys - 56.00 cycles/hash
-Small key speed test - 3-byte keys - 56.00 cycles/hash
-Small key speed test - 4-byte keys - 59.00 cycles/hash
-Small key speed test - 5-byte keys - 59.00 cycles/hash
-Small key speed test - 6-byte keys - 59.00 cycles/hash
-Small key speed test - 7-byte keys - 59.00 cycles/hash
-Small key speed test - 8-byte keys - 61.41 cycles/hash
-Small key speed test - 9-byte keys - 61.56 cycles/hash
-Small key speed test - 10-byte keys - 61.75 cycles/hash
-Small key speed test - 11-byte keys - 61.93 cycles/hash
-Small key speed test - 12-byte keys - 61.68 cycles/hash
-Small key speed test - 13-byte keys - 61.75 cycles/hash
-Small key speed test - 14-byte keys - 61.65 cycles/hash
-Small key speed test - 15-byte keys - 61.42 cycles/hash
-Small key speed test - 16-byte keys - 61.62 cycles/hash
-Small key speed test - 17-byte keys - 77.00 cycles/hash
-Small key speed test - 18-byte keys - 76.99 cycles/hash
-Small key speed test - 19-byte keys - 77.00 cycles/hash
-Small key speed test - 20-byte keys - 76.99 cycles/hash
-Small key speed test - 21-byte keys - 77.25 cycles/hash
-Small key speed test - 22-byte keys - 77.28 cycles/hash
-Small key speed test - 23-byte keys - 77.00 cycles/hash
-Small key speed test - 24-byte keys - 77.00 cycles/hash
-Small key speed test - 25-byte keys - 76.91 cycles/hash
-Small key speed test - 26-byte keys - 76.91 cycles/hash
-Small key speed test - 27-byte keys - 76.91 cycles/hash
-Small key speed test - 28-byte keys - 76.98 cycles/hash
-Small key speed test - 29-byte keys - 76.96 cycles/hash
-Small key speed test - 30-byte keys - 76.98 cycles/hash
-Small key speed test - 31-byte keys - 76.97 cycles/hash
-Average 68.194 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 470.370 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 403.358 cycles/op (6.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 343.965 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 271.097 cycles/op (4.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 15.454783 seconds
---- Testing xxHash64 "xxHash, 64-bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.267 bytes/cycle - 12209.24 MiB/sec @ 3 ghz
-Alignment 6 - 4.268 bytes/cycle - 12209.93 MiB/sec @ 3 ghz
-Alignment 5 - 4.278 bytes/cycle - 12238.76 MiB/sec @ 3 ghz
-Alignment 4 - 4.277 bytes/cycle - 12237.25 MiB/sec @ 3 ghz
-Alignment 3 - 4.277 bytes/cycle - 12237.05 MiB/sec @ 3 ghz
-Alignment 2 - 4.273 bytes/cycle - 12224.67 MiB/sec @ 3 ghz
-Alignment 1 - 4.271 bytes/cycle - 12219.41 MiB/sec @ 3 ghz
-Alignment 0 - 4.276 bytes/cycle - 12234.82 MiB/sec @ 3 ghz
-Average - 4.273 bytes/cycle - 12226.39 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.00 cycles/hash
-Small key speed test - 2-byte keys - 36.96 cycles/hash
-Small key speed test - 3-byte keys - 41.99 cycles/hash
-Small key speed test - 4-byte keys - 33.00 cycles/hash
-Small key speed test - 5-byte keys - 37.84 cycles/hash
-Small key speed test - 6-byte keys - 42.00 cycles/hash
-Small key speed test - 7-byte keys - 47.72 cycles/hash
-Small key speed test - 8-byte keys - 37.00 cycles/hash
-Small key speed test - 9-byte keys - 41.96 cycles/hash
-Small key speed test - 10-byte keys - 46.66 cycles/hash
-Small key speed test - 11-byte keys - 50.00 cycles/hash
-Small key speed test - 12-byte keys - 42.00 cycles/hash
-Small key speed test - 13-byte keys - 46.99 cycles/hash
-Small key speed test - 14-byte keys - 51.83 cycles/hash
-Small key speed test - 15-byte keys - 56.00 cycles/hash
-Small key speed test - 16-byte keys - 42.97 cycles/hash
-Small key speed test - 17-byte keys - 47.21 cycles/hash
-Small key speed test - 18-byte keys - 52.00 cycles/hash
-Small key speed test - 19-byte keys - 57.25 cycles/hash
-Small key speed test - 20-byte keys - 47.62 cycles/hash
-Small key speed test - 21-byte keys - 52.50 cycles/hash
-Small key speed test - 22-byte keys - 57.80 cycles/hash
-Small key speed test - 23-byte keys - 62.99 cycles/hash
-Small key speed test - 24-byte keys - 48.17 cycles/hash
-Small key speed test - 25-byte keys - 52.99 cycles/hash
-Small key speed test - 26-byte keys - 56.78 cycles/hash
-Small key speed test - 27-byte keys - 61.00 cycles/hash
-Small key speed test - 28-byte keys - 53.00 cycles/hash
-Small key speed test - 29-byte keys - 58.71 cycles/hash
-Small key speed test - 30-byte keys - 62.29 cycles/hash
-Small key speed test - 31-byte keys - 67.83 cycles/hash
-Average 49.196 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 466.818 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 376.714 cycles/op (4.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 305.617 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 236.974 cycles/op (4.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.107890 seconds
---- Testing Spooky32 "Bob Jenkins' SpookyHash, 32-bit result" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.572 bytes/cycle - 13081.69 MiB/sec @ 3 ghz
-Alignment 6 - 4.587 bytes/cycle - 13123.60 MiB/sec @ 3 ghz
-Alignment 5 - 4.587 bytes/cycle - 13124.72 MiB/sec @ 3 ghz
-Alignment 4 - 4.588 bytes/cycle - 13127.14 MiB/sec @ 3 ghz
-Alignment 3 - 4.586 bytes/cycle - 13119.41 MiB/sec @ 3 ghz
-Alignment 2 - 4.582 bytes/cycle - 13109.53 MiB/sec @ 3 ghz
-Alignment 1 - 4.587 bytes/cycle - 13122.29 MiB/sec @ 3 ghz
-Alignment 0 - 4.603 bytes/cycle - 13170.45 MiB/sec @ 3 ghz
-Average - 4.587 bytes/cycle - 13122.35 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 42.00 cycles/hash
-Small key speed test - 2-byte keys - 44.92 cycles/hash
-Small key speed test - 3-byte keys - 45.51 cycles/hash
-Small key speed test - 4-byte keys - 42.00 cycles/hash
-Small key speed test - 5-byte keys - 44.97 cycles/hash
-Small key speed test - 6-byte keys - 45.32 cycles/hash
-Small key speed test - 7-byte keys - 47.54 cycles/hash
-Small key speed test - 8-byte keys - 42.97 cycles/hash
-Small key speed test - 9-byte keys - 43.00 cycles/hash
-Small key speed test - 10-byte keys - 45.00 cycles/hash
-Small key speed test - 11-byte keys - 46.00 cycles/hash
-Small key speed test - 12-byte keys - 42.76 cycles/hash
-Small key speed test - 13-byte keys - 45.00 cycles/hash
-Small key speed test - 14-byte keys - 45.25 cycles/hash
-Small key speed test - 15-byte keys - 46.00 cycles/hash
-Small key speed test - 16-byte keys - 67.06 cycles/hash
-Small key speed test - 17-byte keys - 66.48 cycles/hash
-Small key speed test - 18-byte keys - 67.24 cycles/hash
-Small key speed test - 19-byte keys - 68.00 cycles/hash
-Small key speed test - 20-byte keys - 66.48 cycles/hash
-Small key speed test - 21-byte keys - 67.00 cycles/hash
-Small key speed test - 22-byte keys - 68.00 cycles/hash
-Small key speed test - 23-byte keys - 69.49 cycles/hash
-Small key speed test - 24-byte keys - 66.94 cycles/hash
-Small key speed test - 25-byte keys - 67.92 cycles/hash
-Small key speed test - 26-byte keys - 65.94 cycles/hash
-Small key speed test - 27-byte keys - 66.65 cycles/hash
-Small key speed test - 28-byte keys - 65.92 cycles/hash
-Small key speed test - 29-byte keys - 65.82 cycles/hash
-Small key speed test - 30-byte keys - 67.00 cycles/hash
-Small key speed test - 31-byte keys - 65.94 cycles/hash
-Average 56.133 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 461.356 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 387.293 cycles/op (7.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 321.664 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 260.400 cycles/op (4.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.394156 seconds
---- Testing Spooky64 "Bob Jenkins' SpookyHash, 64-bit result" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.647 bytes/cycle - 13296.39 MiB/sec @ 3 ghz
-Alignment 6 - 4.662 bytes/cycle - 13336.90 MiB/sec @ 3 ghz
-Alignment 5 - 4.659 bytes/cycle - 13330.26 MiB/sec @ 3 ghz
-Alignment 4 - 4.665 bytes/cycle - 13345.78 MiB/sec @ 3 ghz
-Alignment 3 - 4.664 bytes/cycle - 13344.25 MiB/sec @ 3 ghz
-Alignment 2 - 4.663 bytes/cycle - 13339.64 MiB/sec @ 3 ghz
-Alignment 1 - 4.663 bytes/cycle - 13340.92 MiB/sec @ 3 ghz
-Alignment 0 - 4.680 bytes/cycle - 13390.48 MiB/sec @ 3 ghz
-Average - 4.663 bytes/cycle - 13340.58 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 41.28 cycles/hash
-Small key speed test - 2-byte keys - 44.00 cycles/hash
-Small key speed test - 3-byte keys - 44.49 cycles/hash
-Small key speed test - 4-byte keys - 41.30 cycles/hash
-Small key speed test - 5-byte keys - 44.00 cycles/hash
-Small key speed test - 6-byte keys - 44.46 cycles/hash
-Small key speed test - 7-byte keys - 46.28 cycles/hash
-Small key speed test - 8-byte keys - 42.00 cycles/hash
-Small key speed test - 9-byte keys - 42.60 cycles/hash
-Small key speed test - 10-byte keys - 44.32 cycles/hash
-Small key speed test - 11-byte keys - 45.89 cycles/hash
-Small key speed test - 12-byte keys - 42.00 cycles/hash
-Small key speed test - 13-byte keys - 44.25 cycles/hash
-Small key speed test - 14-byte keys - 44.90 cycles/hash
-Small key speed test - 15-byte keys - 45.34 cycles/hash
-Small key speed test - 16-byte keys - 65.00 cycles/hash
-Small key speed test - 17-byte keys - 65.63 cycles/hash
-Small key speed test - 18-byte keys - 65.96 cycles/hash
-Small key speed test - 19-byte keys - 66.99 cycles/hash
-Small key speed test - 20-byte keys - 65.80 cycles/hash
-Small key speed test - 21-byte keys - 66.18 cycles/hash
-Small key speed test - 22-byte keys - 67.56 cycles/hash
-Small key speed test - 23-byte keys - 68.17 cycles/hash
-Small key speed test - 24-byte keys - 65.99 cycles/hash
-Small key speed test - 25-byte keys - 66.00 cycles/hash
-Small key speed test - 26-byte keys - 64.76 cycles/hash
-Small key speed test - 27-byte keys - 65.92 cycles/hash
-Small key speed test - 28-byte keys - 64.92 cycles/hash
-Small key speed test - 29-byte keys - 64.83 cycles/hash
-Small key speed test - 30-byte keys - 66.11 cycles/hash
-Small key speed test - 31-byte keys - 64.95 cycles/hash
-Average 55.221 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 474.079 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 393.099 cycles/op (8.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 305.203 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 250.994 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.197830 seconds
---- Testing Spooky128 "Bob Jenkins' SpookyHash, 128-bit result" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.572 bytes/cycle - 13080.02 MiB/sec @ 3 ghz
-Alignment 6 - 4.586 bytes/cycle - 13120.50 MiB/sec @ 3 ghz
-Alignment 5 - 4.584 bytes/cycle - 13114.37 MiB/sec @ 3 ghz
-Alignment 4 - 4.587 bytes/cycle - 13123.87 MiB/sec @ 3 ghz
-Alignment 3 - 4.586 bytes/cycle - 13120.67 MiB/sec @ 3 ghz
-Alignment 2 - 4.586 bytes/cycle - 13120.66 MiB/sec @ 3 ghz
-Alignment 1 - 4.585 bytes/cycle - 13117.46 MiB/sec @ 3 ghz
-Alignment 0 - 4.599 bytes/cycle - 13158.18 MiB/sec @ 3 ghz
-Average - 4.586 bytes/cycle - 13119.47 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 46.20 cycles/hash
-Small key speed test - 2-byte keys - 47.49 cycles/hash
-Small key speed test - 3-byte keys - 48.00 cycles/hash
-Small key speed test - 4-byte keys - 46.07 cycles/hash
-Small key speed test - 5-byte keys - 47.42 cycles/hash
-Small key speed test - 6-byte keys - 49.45 cycles/hash
-Small key speed test - 7-byte keys - 50.00 cycles/hash
-Small key speed test - 8-byte keys - 45.41 cycles/hash
-Small key speed test - 9-byte keys - 46.00 cycles/hash
-Small key speed test - 10-byte keys - 47.00 cycles/hash
-Small key speed test - 11-byte keys - 48.00 cycles/hash
-Small key speed test - 12-byte keys - 45.98 cycles/hash
-Small key speed test - 13-byte keys - 47.27 cycles/hash
-Small key speed test - 14-byte keys - 49.00 cycles/hash
-Small key speed test - 15-byte keys - 49.99 cycles/hash
-Small key speed test - 16-byte keys - 69.00 cycles/hash
-Small key speed test - 17-byte keys - 69.58 cycles/hash
-Small key speed test - 18-byte keys - 69.15 cycles/hash
-Small key speed test - 19-byte keys - 70.00 cycles/hash
-Small key speed test - 20-byte keys - 69.29 cycles/hash
-Small key speed test - 21-byte keys - 69.19 cycles/hash
-Small key speed test - 22-byte keys - 70.48 cycles/hash
-Small key speed test - 23-byte keys - 72.00 cycles/hash
-Small key speed test - 24-byte keys - 69.61 cycles/hash
-Small key speed test - 25-byte keys - 69.67 cycles/hash
-Small key speed test - 26-byte keys - 68.98 cycles/hash
-Small key speed test - 27-byte keys - 68.95 cycles/hash
-Small key speed test - 28-byte keys - 68.99 cycles/hash
-Small key speed test - 29-byte keys - 68.98 cycles/hash
-Small key speed test - 30-byte keys - 69.52 cycles/hash
-Small key speed test - 31-byte keys - 68.91 cycles/hash
-Average 58.890 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 483.614 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 397.000 cycles/op (4.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 317.743 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 250.410 cycles/op (6.2 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.853830 seconds
---- Testing SpookyV2_32 "Bob Jenkins' SpookyV2, 32-bit result" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.646 bytes/cycle - 13293.13 MiB/sec @ 3 ghz
-Alignment 6 - 4.659 bytes/cycle - 13330.92 MiB/sec @ 3 ghz
-Alignment 5 - 4.660 bytes/cycle - 13331.43 MiB/sec @ 3 ghz
-Alignment 4 - 4.670 bytes/cycle - 13362.22 MiB/sec @ 3 ghz
-Alignment 3 - 4.659 bytes/cycle - 13330.13 MiB/sec @ 3 ghz
-Alignment 2 - 4.656 bytes/cycle - 13321.07 MiB/sec @ 3 ghz
-Alignment 1 - 4.660 bytes/cycle - 13333.02 MiB/sec @ 3 ghz
-Alignment 0 - 4.654 bytes/cycle - 13313.95 MiB/sec @ 3 ghz
-Average - 4.658 bytes/cycle - 13326.98 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 41.70 cycles/hash
-Small key speed test - 2-byte keys - 44.00 cycles/hash
-Small key speed test - 3-byte keys - 44.69 cycles/hash
-Small key speed test - 4-byte keys - 41.63 cycles/hash
-Small key speed test - 5-byte keys - 44.89 cycles/hash
-Small key speed test - 6-byte keys - 44.00 cycles/hash
-Small key speed test - 7-byte keys - 46.42 cycles/hash
-Small key speed test - 8-byte keys - 42.00 cycles/hash
-Small key speed test - 9-byte keys - 42.67 cycles/hash
-Small key speed test - 10-byte keys - 44.98 cycles/hash
-Small key speed test - 11-byte keys - 47.73 cycles/hash
-Small key speed test - 12-byte keys - 42.29 cycles/hash
-Small key speed test - 13-byte keys - 44.63 cycles/hash
-Small key speed test - 14-byte keys - 46.46 cycles/hash
-Small key speed test - 15-byte keys - 45.50 cycles/hash
-Small key speed test - 16-byte keys - 67.32 cycles/hash
-Small key speed test - 17-byte keys - 66.70 cycles/hash
-Small key speed test - 18-byte keys - 67.63 cycles/hash
-Small key speed test - 19-byte keys - 66.99 cycles/hash
-Small key speed test - 20-byte keys - 66.85 cycles/hash
-Small key speed test - 21-byte keys - 66.85 cycles/hash
-Small key speed test - 22-byte keys - 67.00 cycles/hash
-Small key speed test - 23-byte keys - 69.60 cycles/hash
-Small key speed test - 24-byte keys - 66.55 cycles/hash
-Small key speed test - 25-byte keys - 67.72 cycles/hash
-Small key speed test - 26-byte keys - 68.99 cycles/hash
-Small key speed test - 27-byte keys - 69.81 cycles/hash
-Small key speed test - 28-byte keys - 67.96 cycles/hash
-Small key speed test - 29-byte keys - 68.89 cycles/hash
-Small key speed test - 30-byte keys - 68.97 cycles/hash
-Small key speed test - 31-byte keys - 71.26 cycles/hash
-Average 56.538 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 464.433 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 388.519 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 323.529 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 261.836 cycles/op (4.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.400146 seconds
---- Testing SpookyV2_64 "Bob Jenkins' SpookyV2, 64-bit result" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.569 bytes/cycle - 13071.67 MiB/sec @ 3 ghz
-Alignment 6 - 4.582 bytes/cycle - 13109.57 MiB/sec @ 3 ghz
-Alignment 5 - 4.575 bytes/cycle - 13090.59 MiB/sec @ 3 ghz
-Alignment 4 - 4.577 bytes/cycle - 13093.58 MiB/sec @ 3 ghz
-Alignment 3 - 4.576 bytes/cycle - 13091.04 MiB/sec @ 3 ghz
-Alignment 2 - 4.583 bytes/cycle - 13110.66 MiB/sec @ 3 ghz
-Alignment 1 - 4.582 bytes/cycle - 13109.02 MiB/sec @ 3 ghz
-Alignment 0 - 4.601 bytes/cycle - 13163.73 MiB/sec @ 3 ghz
-Average - 4.581 bytes/cycle - 13104.98 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 42.42 cycles/hash
-Small key speed test - 2-byte keys - 45.00 cycles/hash
-Small key speed test - 3-byte keys - 45.14 cycles/hash
-Small key speed test - 4-byte keys - 42.50 cycles/hash
-Small key speed test - 5-byte keys - 45.00 cycles/hash
-Small key speed test - 6-byte keys - 45.00 cycles/hash
-Small key speed test - 7-byte keys - 49.19 cycles/hash
-Small key speed test - 8-byte keys - 44.38 cycles/hash
-Small key speed test - 9-byte keys - 43.23 cycles/hash
-Small key speed test - 10-byte keys - 46.15 cycles/hash
-Small key speed test - 11-byte keys - 46.77 cycles/hash
-Small key speed test - 12-byte keys - 42.94 cycles/hash
-Small key speed test - 13-byte keys - 47.01 cycles/hash
-Small key speed test - 14-byte keys - 46.22 cycles/hash
-Small key speed test - 15-byte keys - 47.82 cycles/hash
-Small key speed test - 16-byte keys - 68.17 cycles/hash
-Small key speed test - 17-byte keys - 67.85 cycles/hash
-Small key speed test - 18-byte keys - 68.28 cycles/hash
-Small key speed test - 19-byte keys - 68.00 cycles/hash
-Small key speed test - 20-byte keys - 67.78 cycles/hash
-Small key speed test - 21-byte keys - 67.95 cycles/hash
-Small key speed test - 22-byte keys - 68.43 cycles/hash
-Small key speed test - 23-byte keys - 70.49 cycles/hash
-Small key speed test - 24-byte keys - 68.45 cycles/hash
-Small key speed test - 25-byte keys - 68.71 cycles/hash
-Small key speed test - 26-byte keys - 70.00 cycles/hash
-Small key speed test - 27-byte keys - 70.79 cycles/hash
-Small key speed test - 28-byte keys - 68.57 cycles/hash
-Small key speed test - 29-byte keys - 69.57 cycles/hash
-Small key speed test - 30-byte keys - 70.00 cycles/hash
-Small key speed test - 31-byte keys - 71.91 cycles/hash
-Average 57.540 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 487.381 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 399.282 cycles/op (7.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 313.859 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 252.858 cycles/op (6.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.640294 seconds
---- Testing SpookyV2_128 "Bob Jenkins' SpookyV2, 128-bit result" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.642 bytes/cycle - 13280.02 MiB/sec @ 3 ghz
-Alignment 6 - 4.649 bytes/cycle - 13300.22 MiB/sec @ 3 ghz
-Alignment 5 - 4.648 bytes/cycle - 13298.55 MiB/sec @ 3 ghz
-Alignment 4 - 4.650 bytes/cycle - 13303.22 MiB/sec @ 3 ghz
-Alignment 3 - 4.649 bytes/cycle - 13300.38 MiB/sec @ 3 ghz
-Alignment 2 - 4.655 bytes/cycle - 13317.87 MiB/sec @ 3 ghz
-Alignment 1 - 4.661 bytes/cycle - 13335.94 MiB/sec @ 3 ghz
-Alignment 0 - 4.681 bytes/cycle - 13392.52 MiB/sec @ 3 ghz
-Average - 4.654 bytes/cycle - 13316.09 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 44.95 cycles/hash
-Small key speed test - 2-byte keys - 46.00 cycles/hash
-Small key speed test - 3-byte keys - 47.96 cycles/hash
-Small key speed test - 4-byte keys - 44.95 cycles/hash
-Small key speed test - 5-byte keys - 46.14 cycles/hash
-Small key speed test - 6-byte keys - 47.92 cycles/hash
-Small key speed test - 7-byte keys - 49.91 cycles/hash
-Small key speed test - 8-byte keys - 44.89 cycles/hash
-Small key speed test - 9-byte keys - 45.42 cycles/hash
-Small key speed test - 10-byte keys - 46.00 cycles/hash
-Small key speed test - 11-byte keys - 48.66 cycles/hash
-Small key speed test - 12-byte keys - 45.00 cycles/hash
-Small key speed test - 13-byte keys - 46.89 cycles/hash
-Small key speed test - 14-byte keys - 48.64 cycles/hash
-Small key speed test - 15-byte keys - 49.93 cycles/hash
-Small key speed test - 16-byte keys - 70.72 cycles/hash
-Small key speed test - 17-byte keys - 69.00 cycles/hash
-Small key speed test - 18-byte keys - 69.25 cycles/hash
-Small key speed test - 19-byte keys - 70.92 cycles/hash
-Small key speed test - 20-byte keys - 69.00 cycles/hash
-Small key speed test - 21-byte keys - 69.27 cycles/hash
-Small key speed test - 22-byte keys - 71.09 cycles/hash
-Small key speed test - 23-byte keys - 71.91 cycles/hash
-Small key speed test - 24-byte keys - 69.44 cycles/hash
-Small key speed test - 25-byte keys - 71.00 cycles/hash
-Small key speed test - 26-byte keys - 70.74 cycles/hash
-Small key speed test - 27-byte keys - 72.32 cycles/hash
-Small key speed test - 28-byte keys - 70.98 cycles/hash
-Small key speed test - 29-byte keys - 70.96 cycles/hash
-Small key speed test - 30-byte keys - 72.00 cycles/hash
-Small key speed test - 31-byte keys - 73.00 cycles/hash
-Average 59.188 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 483.376 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 402.104 cycles/op (6.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 320.305 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 252.601 cycles/op (5.4 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.868309 seconds
---- Testing pengyhash "pengyhash" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.626 bytes/cycle - 13235.45 MiB/sec @ 3 ghz
-Alignment 6 - 4.641 bytes/cycle - 13278.61 MiB/sec @ 3 ghz
-Alignment 5 - 4.639 bytes/cycle - 13272.55 MiB/sec @ 3 ghz
-Alignment 4 - 4.642 bytes/cycle - 13281.63 MiB/sec @ 3 ghz
-Alignment 3 - 4.625 bytes/cycle - 13231.53 MiB/sec @ 3 ghz
-Alignment 2 - 4.624 bytes/cycle - 13229.45 MiB/sec @ 3 ghz
-Alignment 1 - 4.640 bytes/cycle - 13274.68 MiB/sec @ 3 ghz
-Alignment 0 - 4.735 bytes/cycle - 13546.15 MiB/sec @ 3 ghz
-Average - 4.647 bytes/cycle - 13293.76 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 75.11 cycles/hash
-Small key speed test - 2-byte keys - 74.54 cycles/hash
-Small key speed test - 3-byte keys - 74.46 cycles/hash
-Small key speed test - 4-byte keys - 75.09 cycles/hash
-Small key speed test - 5-byte keys - 74.62 cycles/hash
-Small key speed test - 6-byte keys - 74.61 cycles/hash
-Small key speed test - 7-byte keys - 74.00 cycles/hash
-Small key speed test - 8-byte keys - 58.42 cycles/hash
-Small key speed test - 9-byte keys - 75.33 cycles/hash
-Small key speed test - 10-byte keys - 75.30 cycles/hash
-Small key speed test - 11-byte keys - 75.78 cycles/hash
-Small key speed test - 12-byte keys - 75.51 cycles/hash
-Small key speed test - 13-byte keys - 75.00 cycles/hash
-Small key speed test - 14-byte keys - 75.58 cycles/hash
-Small key speed test - 15-byte keys - 75.64 cycles/hash
-Small key speed test - 16-byte keys - 61.00 cycles/hash
-Small key speed test - 17-byte keys - 79.00 cycles/hash
-Small key speed test - 18-byte keys - 79.00 cycles/hash
-Small key speed test - 19-byte keys - 79.00 cycles/hash
-Small key speed test - 20-byte keys - 79.00 cycles/hash
-Small key speed test - 21-byte keys - 79.05 cycles/hash
-Small key speed test - 22-byte keys - 79.03 cycles/hash
-Small key speed test - 23-byte keys - 78.99 cycles/hash
-Small key speed test - 24-byte keys - 62.99 cycles/hash
-Small key speed test - 25-byte keys - 79.17 cycles/hash
-Small key speed test - 26-byte keys - 79.00 cycles/hash
-Small key speed test - 27-byte keys - 79.19 cycles/hash
-Small key speed test - 28-byte keys - 79.21 cycles/hash
-Small key speed test - 29-byte keys - 79.19 cycles/hash
-Small key speed test - 30-byte keys - 79.27 cycles/hash
-Small key speed test - 31-byte keys - 79.12 cycles/hash
-Average 75.491 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 492.838 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 423.649 cycles/op (7.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 338.636 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 286.409 cycles/op (5.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 16.822236 seconds
---- Testing mx3 "mx3 64bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3.149 bytes/cycle - 9009.62 MiB/sec @ 3 ghz
-Alignment 6 - 3.141 bytes/cycle - 8986.51 MiB/sec @ 3 ghz
-Alignment 5 - 3.149 bytes/cycle - 9009.10 MiB/sec @ 3 ghz
-Alignment 4 - 3.152 bytes/cycle - 9017.62 MiB/sec @ 3 ghz
-Alignment 3 - 3.160 bytes/cycle - 9040.62 MiB/sec @ 3 ghz
-Alignment 2 - 3.159 bytes/cycle - 9038.16 MiB/sec @ 3 ghz
-Alignment 1 - 3.158 bytes/cycle - 9035.71 MiB/sec @ 3 ghz
-Alignment 0 - 3.209 bytes/cycle - 9179.68 MiB/sec @ 3 ghz
-Average - 3.160 bytes/cycle - 9039.63 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 41.25 cycles/hash
-Small key speed test - 2-byte keys - 44.00 cycles/hash
-Small key speed test - 3-byte keys - 45.00 cycles/hash
-Small key speed test - 4-byte keys - 46.25 cycles/hash
-Small key speed test - 5-byte keys - 46.98 cycles/hash
-Small key speed test - 6-byte keys - 48.00 cycles/hash
-Small key speed test - 7-byte keys - 48.17 cycles/hash
-Small key speed test - 8-byte keys - 40.00 cycles/hash
-Small key speed test - 9-byte keys - 43.00 cycles/hash
-Small key speed test - 10-byte keys - 45.00 cycles/hash
-Small key speed test - 11-byte keys - 47.00 cycles/hash
-Small key speed test - 12-byte keys - 48.00 cycles/hash
-Small key speed test - 13-byte keys - 48.43 cycles/hash
-Small key speed test - 14-byte keys - 50.00 cycles/hash
-Small key speed test - 15-byte keys - 50.00 cycles/hash
-Small key speed test - 16-byte keys - 44.00 cycles/hash
-Small key speed test - 17-byte keys - 47.00 cycles/hash
-Small key speed test - 18-byte keys - 48.44 cycles/hash
-Small key speed test - 19-byte keys - 50.00 cycles/hash
-Small key speed test - 20-byte keys - 50.00 cycles/hash
-Small key speed test - 21-byte keys - 52.00 cycles/hash
-Small key speed test - 22-byte keys - 53.18 cycles/hash
-Small key speed test - 23-byte keys - 54.00 cycles/hash
-Small key speed test - 24-byte keys - 47.00 cycles/hash
-Small key speed test - 25-byte keys - 51.11 cycles/hash
-Small key speed test - 26-byte keys - 52.00 cycles/hash
-Small key speed test - 27-byte keys - 52.30 cycles/hash
-Small key speed test - 28-byte keys - 53.26 cycles/hash
-Small key speed test - 29-byte keys - 53.12 cycles/hash
-Small key speed test - 30-byte keys - 54.00 cycles/hash
-Small key speed test - 31-byte keys - 54.97 cycles/hash
-Average 48.628 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 469.280 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 378.202 cycles/op (4.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 310.641 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 236.568 cycles/op (4.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.232047 seconds
---- Testing umash32 "umash 32" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.798 bytes/cycle - 22310.62 MiB/sec @ 3 ghz
-Alignment 6 - 7.815 bytes/cycle - 22357.48 MiB/sec @ 3 ghz
-Alignment 5 - 7.814 bytes/cycle - 22354.72 MiB/sec @ 3 ghz
-Alignment 4 - 7.820 bytes/cycle - 22374.35 MiB/sec @ 3 ghz
-Alignment 3 - 7.819 bytes/cycle - 22371.29 MiB/sec @ 3 ghz
-Alignment 2 - 7.823 bytes/cycle - 22381.05 MiB/sec @ 3 ghz
-Alignment 1 - 7.842 bytes/cycle - 22435.22 MiB/sec @ 3 ghz
-Alignment 0 - 7.831 bytes/cycle - 22405.91 MiB/sec @ 3 ghz
-Average - 7.820 bytes/cycle - 22373.83 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 30.00 cycles/hash
-Small key speed test - 2-byte keys - 30.00 cycles/hash
-Small key speed test - 3-byte keys - 30.00 cycles/hash
-Small key speed test - 4-byte keys - 29.00 cycles/hash
-Small key speed test - 5-byte keys - 29.00 cycles/hash
-Small key speed test - 6-byte keys - 29.00 cycles/hash
-Small key speed test - 7-byte keys - 29.00 cycles/hash
-Small key speed test - 8-byte keys - 29.00 cycles/hash
-Small key speed test - 9-byte keys - 39.31 cycles/hash
-Small key speed test - 10-byte keys - 39.14 cycles/hash
-Small key speed test - 11-byte keys - 39.32 cycles/hash
-Small key speed test - 12-byte keys - 39.23 cycles/hash
-Small key speed test - 13-byte keys - 39.50 cycles/hash
-Small key speed test - 14-byte keys - 39.13 cycles/hash
-Small key speed test - 15-byte keys - 39.20 cycles/hash
-Small key speed test - 16-byte keys - 39.22 cycles/hash
-Small key speed test - 17-byte keys - 49.62 cycles/hash
-Small key speed test - 18-byte keys - 49.60 cycles/hash
-Small key speed test - 19-byte keys - 49.53 cycles/hash
-Small key speed test - 20-byte keys - 49.55 cycles/hash
-Small key speed test - 21-byte keys - 50.32 cycles/hash
-Small key speed test - 22-byte keys - 50.40 cycles/hash
-Small key speed test - 23-byte keys - 50.33 cycles/hash
-Small key speed test - 24-byte keys - 49.95 cycles/hash
-Small key speed test - 25-byte keys - 50.43 cycles/hash
-Small key speed test - 26-byte keys - 50.42 cycles/hash
-Small key speed test - 27-byte keys - 50.43 cycles/hash
-Small key speed test - 28-byte keys - 50.46 cycles/hash
-Small key speed test - 29-byte keys - 50.46 cycles/hash
-Small key speed test - 30-byte keys - 50.46 cycles/hash
-Small key speed test - 31-byte keys - 50.38 cycles/hash
-Average 41.980 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 442.378 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 371.953 cycles/op (6.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 329.047 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 257.191 cycles/op (5.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.751159 seconds
---- Testing umash32_hi "umash 32 hi" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.996 bytes/cycle - 22876.80 MiB/sec @ 3 ghz
-Alignment 6 - 8.026 bytes/cycle - 22963.08 MiB/sec @ 3 ghz
-Alignment 5 - 8.027 bytes/cycle - 22966.61 MiB/sec @ 3 ghz
-Alignment 4 - 8.019 bytes/cycle - 22942.04 MiB/sec @ 3 ghz
-Alignment 3 - 8.020 bytes/cycle - 22945.84 MiB/sec @ 3 ghz
-Alignment 2 - 8.020 bytes/cycle - 22945.30 MiB/sec @ 3 ghz
-Alignment 1 - 8.020 bytes/cycle - 22946.43 MiB/sec @ 3 ghz
-Alignment 0 - 8.003 bytes/cycle - 22897.32 MiB/sec @ 3 ghz
-Average - 8.017 bytes/cycle - 22935.43 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 30.91 cycles/hash
-Small key speed test - 2-byte keys - 30.97 cycles/hash
-Small key speed test - 3-byte keys - 31.00 cycles/hash
-Small key speed test - 4-byte keys - 29.00 cycles/hash
-Small key speed test - 5-byte keys - 29.00 cycles/hash
-Small key speed test - 6-byte keys - 29.00 cycles/hash
-Small key speed test - 7-byte keys - 29.00 cycles/hash
-Small key speed test - 8-byte keys - 29.00 cycles/hash
-Small key speed test - 9-byte keys - 39.84 cycles/hash
-Small key speed test - 10-byte keys - 39.98 cycles/hash
-Small key speed test - 11-byte keys - 40.00 cycles/hash
-Small key speed test - 12-byte keys - 40.00 cycles/hash
-Small key speed test - 13-byte keys - 40.00 cycles/hash
-Small key speed test - 14-byte keys - 40.00 cycles/hash
-Small key speed test - 15-byte keys - 40.00 cycles/hash
-Small key speed test - 16-byte keys - 39.98 cycles/hash
-Small key speed test - 17-byte keys - 49.62 cycles/hash
-Small key speed test - 18-byte keys - 49.67 cycles/hash
-Small key speed test - 19-byte keys - 49.52 cycles/hash
-Small key speed test - 20-byte keys - 49.60 cycles/hash
-Small key speed test - 21-byte keys - 50.04 cycles/hash
-Small key speed test - 22-byte keys - 49.99 cycles/hash
-Small key speed test - 23-byte keys - 50.02 cycles/hash
-Small key speed test - 24-byte keys - 49.96 cycles/hash
-Small key speed test - 25-byte keys - 50.02 cycles/hash
-Small key speed test - 26-byte keys - 50.02 cycles/hash
-Small key speed test - 27-byte keys - 50.07 cycles/hash
-Small key speed test - 28-byte keys - 50.13 cycles/hash
-Small key speed test - 29-byte keys - 50.13 cycles/hash
-Small key speed test - 30-byte keys - 50.14 cycles/hash
-Small key speed test - 31-byte keys - 50.34 cycles/hash
-Average 42.159 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 436.897 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 369.244 cycles/op (7.3 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 313.676 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 257.931 cycles/op (5.0 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.740374 seconds
---- Testing umash64 "umash 64" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.916 bytes/cycle - 22646.81 MiB/sec @ 3 ghz
-Alignment 6 - 7.936 bytes/cycle - 22705.37 MiB/sec @ 3 ghz
-Alignment 5 - 7.932 bytes/cycle - 22693.01 MiB/sec @ 3 ghz
-Alignment 4 - 7.934 bytes/cycle - 22699.24 MiB/sec @ 3 ghz
-Alignment 3 - 7.948 bytes/cycle - 22740.24 MiB/sec @ 3 ghz
-Alignment 2 - 7.932 bytes/cycle - 22694.03 MiB/sec @ 3 ghz
-Alignment 1 - 7.931 bytes/cycle - 22691.03 MiB/sec @ 3 ghz
-Alignment 0 - 7.933 bytes/cycle - 22695.80 MiB/sec @ 3 ghz
-Average - 7.933 bytes/cycle - 22695.69 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 30.00 cycles/hash
-Small key speed test - 2-byte keys - 30.00 cycles/hash
-Small key speed test - 3-byte keys - 30.00 cycles/hash
-Small key speed test - 4-byte keys - 29.00 cycles/hash
-Small key speed test - 5-byte keys - 29.00 cycles/hash
-Small key speed test - 6-byte keys - 29.25 cycles/hash
-Small key speed test - 7-byte keys - 29.24 cycles/hash
-Small key speed test - 8-byte keys - 29.12 cycles/hash
-Small key speed test - 9-byte keys - 39.40 cycles/hash
-Small key speed test - 10-byte keys - 39.24 cycles/hash
-Small key speed test - 11-byte keys - 39.23 cycles/hash
-Small key speed test - 12-byte keys - 39.21 cycles/hash
-Small key speed test - 13-byte keys - 39.00 cycles/hash
-Small key speed test - 14-byte keys - 39.23 cycles/hash
-Small key speed test - 15-byte keys - 39.23 cycles/hash
-Small key speed test - 16-byte keys - 39.27 cycles/hash
-Small key speed test - 17-byte keys - 49.70 cycles/hash
-Small key speed test - 18-byte keys - 49.71 cycles/hash
-Small key speed test - 19-byte keys - 49.70 cycles/hash
-Small key speed test - 20-byte keys - 49.62 cycles/hash
-Small key speed test - 21-byte keys - 50.32 cycles/hash
-Small key speed test - 22-byte keys - 50.39 cycles/hash
-Small key speed test - 23-byte keys - 50.44 cycles/hash
-Small key speed test - 24-byte keys - 50.30 cycles/hash
-Small key speed test - 25-byte keys - 50.42 cycles/hash
-Small key speed test - 26-byte keys - 50.43 cycles/hash
-Small key speed test - 27-byte keys - 50.43 cycles/hash
-Small key speed test - 28-byte keys - 50.45 cycles/hash
-Small key speed test - 29-byte keys - 50.44 cycles/hash
-Small key speed test - 30-byte keys - 50.44 cycles/hash
-Small key speed test - 31-byte keys - 50.46 cycles/hash
-Average 42.021 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 472.238 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 385.282 cycles/op (4.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 311.764 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 246.914 cycles/op (4.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.768575 seconds
---- Testing umash128 "umash 128" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.538 bytes/cycle - 12982.91 MiB/sec @ 3 ghz
-Alignment 6 - 4.558 bytes/cycle - 13040.54 MiB/sec @ 3 ghz
-Alignment 5 - 4.553 bytes/cycle - 13026.42 MiB/sec @ 3 ghz
-Alignment 4 - 4.554 bytes/cycle - 13029.03 MiB/sec @ 3 ghz
-Alignment 3 - 4.552 bytes/cycle - 13023.92 MiB/sec @ 3 ghz
-Alignment 2 - 4.551 bytes/cycle - 13020.57 MiB/sec @ 3 ghz
-Alignment 1 - 4.555 bytes/cycle - 13032.84 MiB/sec @ 3 ghz
-Alignment 0 - 4.556 bytes/cycle - 13035.83 MiB/sec @ 3 ghz
-Average - 4.552 bytes/cycle - 13024.01 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 30.00 cycles/hash
-Small key speed test - 2-byte keys - 30.00 cycles/hash
-Small key speed test - 3-byte keys - 30.00 cycles/hash
-Small key speed test - 4-byte keys - 29.00 cycles/hash
-Small key speed test - 5-byte keys - 29.00 cycles/hash
-Small key speed test - 6-byte keys - 29.00 cycles/hash
-Small key speed test - 7-byte keys - 29.00 cycles/hash
-Small key speed test - 8-byte keys - 29.00 cycles/hash
-Small key speed test - 9-byte keys - 39.49 cycles/hash
-Small key speed test - 10-byte keys - 39.23 cycles/hash
-Small key speed test - 11-byte keys - 39.62 cycles/hash
-Small key speed test - 12-byte keys - 39.44 cycles/hash
-Small key speed test - 13-byte keys - 39.00 cycles/hash
-Small key speed test - 14-byte keys - 39.17 cycles/hash
-Small key speed test - 15-byte keys - 39.22 cycles/hash
-Small key speed test - 16-byte keys - 39.22 cycles/hash
-Small key speed test - 17-byte keys - 51.96 cycles/hash
-Small key speed test - 18-byte keys - 51.77 cycles/hash
-Small key speed test - 19-byte keys - 51.00 cycles/hash
-Small key speed test - 20-byte keys - 51.65 cycles/hash
-Small key speed test - 21-byte keys - 52.49 cycles/hash
-Small key speed test - 22-byte keys - 52.73 cycles/hash
-Small key speed test - 23-byte keys - 52.58 cycles/hash
-Small key speed test - 24-byte keys - 51.99 cycles/hash
-Small key speed test - 25-byte keys - 52.56 cycles/hash
-Small key speed test - 26-byte keys - 52.65 cycles/hash
-Small key speed test - 27-byte keys - 52.57 cycles/hash
-Small key speed test - 28-byte keys - 52.26 cycles/hash
-Small key speed test - 29-byte keys - 52.24 cycles/hash
-Small key speed test - 30-byte keys - 52.31 cycles/hash
-Small key speed test - 31-byte keys - 52.24 cycles/hash
-Average 42.981 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 455.645 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 375.329 cycles/op (7.4 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 305.511 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 242.481 cycles/op (4.5 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.065725 seconds
---- Testing halftime_hash64 "NH tree hash variant" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 1.666 bytes/cycle - 4766.37 MiB/sec @ 3 ghz
-Alignment 6 - 1.668 bytes/cycle - 4772.46 MiB/sec @ 3 ghz
-Alignment 5 - 1.664 bytes/cycle - 4761.40 MiB/sec @ 3 ghz
-Alignment 4 - 1.663 bytes/cycle - 4758.37 MiB/sec @ 3 ghz
-Alignment 3 - 1.665 bytes/cycle - 4762.42 MiB/sec @ 3 ghz
-Alignment 2 - 1.664 bytes/cycle - 4760.68 MiB/sec @ 3 ghz
-Alignment 1 - 1.665 bytes/cycle - 4764.61 MiB/sec @ 3 ghz
-Alignment 0 - 1.669 bytes/cycle - 4776.30 MiB/sec @ 3 ghz
-Average - 1.666 bytes/cycle - 4765.33 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 94.32 cycles/hash
-Small key speed test - 2-byte keys - 94.14 cycles/hash
-Small key speed test - 3-byte keys - 94.30 cycles/hash
-Small key speed test - 4-byte keys - 94.76 cycles/hash
-Small key speed test - 5-byte keys - 94.71 cycles/hash
-Small key speed test - 6-byte keys - 94.74 cycles/hash
-Small key speed test - 7-byte keys - 94.76 cycles/hash
-Small key speed test - 8-byte keys - 68.99 cycles/hash
-Small key speed test - 9-byte keys - 99.97 cycles/hash
-Small key speed test - 10-byte keys - 99.77 cycles/hash
-Small key speed test - 11-byte keys - 99.81 cycles/hash
-Small key speed test - 12-byte keys - 99.94 cycles/hash
-Small key speed test - 13-byte keys - 100.42 cycles/hash
-Small key speed test - 14-byte keys - 99.96 cycles/hash
-Small key speed test - 15-byte keys - 100.05 cycles/hash
-Small key speed test - 16-byte keys - 74.06 cycles/hash
-Small key speed test - 17-byte keys - 104.44 cycles/hash
-Small key speed test - 18-byte keys - 104.00 cycles/hash
-Small key speed test - 19-byte keys - 104.00 cycles/hash
-Small key speed test - 20-byte keys - 103.90 cycles/hash
-Small key speed test - 21-byte keys - 104.08 cycles/hash
-Small key speed test - 22-byte keys - 104.11 cycles/hash
-Small key speed test - 23-byte keys - 104.10 cycles/hash
-Small key speed test - 24-byte keys - 81.14 cycles/hash
-Small key speed test - 25-byte keys - 110.73 cycles/hash
-Small key speed test - 26-byte keys - 111.12 cycles/hash
-Small key speed test - 27-byte keys - 111.13 cycles/hash
-Small key speed test - 28-byte keys - 110.55 cycles/hash
-Small key speed test - 29-byte keys - 110.66 cycles/hash
-Small key speed test - 30-byte keys - 110.51 cycles/hash
-Small key speed test - 31-byte keys - 110.55 cycles/hash
-Average 99.668 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 536.404 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 452.437 cycles/op (5.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 370.603 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 324.577 cycles/op (4.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 21.876462 seconds
---- Testing halftime_hash128 "NH tree hash variant" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 6.102 bytes/cycle - 17456.83 MiB/sec @ 3 ghz
-Alignment 6 - 6.107 bytes/cycle - 17472.25 MiB/sec @ 3 ghz
-Alignment 5 - 6.100 bytes/cycle - 17450.93 MiB/sec @ 3 ghz
-Alignment 4 - 6.109 bytes/cycle - 17477.26 MiB/sec @ 3 ghz
-Alignment 3 - 6.093 bytes/cycle - 17432.81 MiB/sec @ 3 ghz
-Alignment 2 - 6.101 bytes/cycle - 17453.80 MiB/sec @ 3 ghz
-Alignment 1 - 6.103 bytes/cycle - 17459.51 MiB/sec @ 3 ghz
-Alignment 0 - 6.346 bytes/cycle - 18156.89 MiB/sec @ 3 ghz
-Average - 6.132 bytes/cycle - 17545.03 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 96.73 cycles/hash
-Small key speed test - 2-byte keys - 96.80 cycles/hash
-Small key speed test - 3-byte keys - 96.85 cycles/hash
-Small key speed test - 4-byte keys - 96.41 cycles/hash
-Small key speed test - 5-byte keys - 96.18 cycles/hash
-Small key speed test - 6-byte keys - 96.37 cycles/hash
-Small key speed test - 7-byte keys - 96.22 cycles/hash
-Small key speed test - 8-byte keys - 96.24 cycles/hash
-Small key speed test - 9-byte keys - 96.54 cycles/hash
-Small key speed test - 10-byte keys - 96.48 cycles/hash
-Small key speed test - 11-byte keys - 96.59 cycles/hash
-Small key speed test - 12-byte keys - 96.55 cycles/hash
-Small key speed test - 13-byte keys - 96.61 cycles/hash
-Small key speed test - 14-byte keys - 96.65 cycles/hash
-Small key speed test - 15-byte keys - 96.62 cycles/hash
-Small key speed test - 16-byte keys - 76.61 cycles/hash
-Small key speed test - 17-byte keys - 100.50 cycles/hash
-Small key speed test - 18-byte keys - 100.63 cycles/hash
-Small key speed test - 19-byte keys - 100.60 cycles/hash
-Small key speed test - 20-byte keys - 100.81 cycles/hash
-Small key speed test - 21-byte keys - 101.74 cycles/hash
-Small key speed test - 22-byte keys - 101.73 cycles/hash
-Small key speed test - 23-byte keys - 101.63 cycles/hash
-Small key speed test - 24-byte keys - 101.46 cycles/hash
-Small key speed test - 25-byte keys - 101.46 cycles/hash
-Small key speed test - 26-byte keys - 101.37 cycles/hash
-Small key speed test - 27-byte keys - 101.48 cycles/hash
-Small key speed test - 28-byte keys - 101.29 cycles/hash
-Small key speed test - 29-byte keys - 101.48 cycles/hash
-Small key speed test - 30-byte keys - 101.37 cycles/hash
-Small key speed test - 31-byte keys - 101.39 cycles/hash
-Average 98.174 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 529.780 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 452.103 cycles/op (9.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 390.374 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 322.497 cycles/op (4.7 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 20.844431 seconds
---- Testing halftime_hash256 "NH tree hash variant" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 6.265 bytes/cycle - 17924.78 MiB/sec @ 3 ghz
-Alignment 6 - 6.275 bytes/cycle - 17952.55 MiB/sec @ 3 ghz
-Alignment 5 - 6.276 bytes/cycle - 17955.68 MiB/sec @ 3 ghz
-Alignment 4 - 6.281 bytes/cycle - 17969.00 MiB/sec @ 3 ghz
-Alignment 3 - 6.275 bytes/cycle - 17953.65 MiB/sec @ 3 ghz
-Alignment 2 - 6.274 bytes/cycle - 17949.83 MiB/sec @ 3 ghz
-Alignment 1 - 6.275 bytes/cycle - 17952.73 MiB/sec @ 3 ghz
-Alignment 0 - 6.461 bytes/cycle - 18485.77 MiB/sec @ 3 ghz
-Average - 6.298 bytes/cycle - 18018.00 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 99.80 cycles/hash
-Small key speed test - 2-byte keys - 99.67 cycles/hash
-Small key speed test - 3-byte keys - 99.73 cycles/hash
-Small key speed test - 4-byte keys - 100.03 cycles/hash
-Small key speed test - 5-byte keys - 99.47 cycles/hash
-Small key speed test - 6-byte keys - 99.91 cycles/hash
-Small key speed test - 7-byte keys - 99.58 cycles/hash
-Small key speed test - 8-byte keys - 100.28 cycles/hash
-Small key speed test - 9-byte keys - 99.12 cycles/hash
-Small key speed test - 10-byte keys - 98.89 cycles/hash
-Small key speed test - 11-byte keys - 99.05 cycles/hash
-Small key speed test - 12-byte keys - 100.39 cycles/hash
-Small key speed test - 13-byte keys - 99.30 cycles/hash
-Small key speed test - 14-byte keys - 99.14 cycles/hash
-Small key speed test - 15-byte keys - 99.06 cycles/hash
-Small key speed test - 16-byte keys - 77.66 cycles/hash
-Small key speed test - 17-byte keys - 101.96 cycles/hash
-Small key speed test - 18-byte keys - 101.90 cycles/hash
-Small key speed test - 19-byte keys - 101.86 cycles/hash
-Small key speed test - 20-byte keys - 101.76 cycles/hash
-Small key speed test - 21-byte keys - 101.66 cycles/hash
-Small key speed test - 22-byte keys - 101.60 cycles/hash
-Small key speed test - 23-byte keys - 101.69 cycles/hash
-Small key speed test - 24-byte keys - 101.63 cycles/hash
-Small key speed test - 25-byte keys - 101.54 cycles/hash
-Small key speed test - 26-byte keys - 101.55 cycles/hash
-Small key speed test - 27-byte keys - 101.42 cycles/hash
-Small key speed test - 28-byte keys - 101.60 cycles/hash
-Small key speed test - 29-byte keys - 101.46 cycles/hash
-Small key speed test - 30-byte keys - 101.39 cycles/hash
-Small key speed test - 31-byte keys - 101.48 cycles/hash
-Average 99.857 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 525.702 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 455.529 cycles/op (6.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 393.561 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 326.898 cycles/op (3.9 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 21.072530 seconds
---- Testing halftime_hash512 "NH tree hash variant" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3.784 bytes/cycle - 10826.98 MiB/sec @ 3 ghz
-Alignment 6 - 3.786 bytes/cycle - 10831.96 MiB/sec @ 3 ghz
-Alignment 5 - 3.790 bytes/cycle - 10842.33 MiB/sec @ 3 ghz
-Alignment 4 - 3.792 bytes/cycle - 10849.32 MiB/sec @ 3 ghz
-Alignment 3 - 3.790 bytes/cycle - 10842.11 MiB/sec @ 3 ghz
-Alignment 2 - 3.793 bytes/cycle - 10850.80 MiB/sec @ 3 ghz
-Alignment 1 - 3.792 bytes/cycle - 10848.71 MiB/sec @ 3 ghz
-Alignment 0 - 3.936 bytes/cycle - 11261.01 MiB/sec @ 3 ghz
-Average - 3.808 bytes/cycle - 10894.15 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 116.55 cycles/hash
-Small key speed test - 2-byte keys - 118.08 cycles/hash
-Small key speed test - 3-byte keys - 118.32 cycles/hash
-Small key speed test - 4-byte keys - 117.36 cycles/hash
-Small key speed test - 5-byte keys - 117.94 cycles/hash
-Small key speed test - 6-byte keys - 118.29 cycles/hash
-Small key speed test - 7-byte keys - 117.75 cycles/hash
-Small key speed test - 8-byte keys - 117.99 cycles/hash
-Small key speed test - 9-byte keys - 118.43 cycles/hash
-Small key speed test - 10-byte keys - 118.21 cycles/hash
-Small key speed test - 11-byte keys - 118.11 cycles/hash
-Small key speed test - 12-byte keys - 118.00 cycles/hash
-Small key speed test - 13-byte keys - 118.41 cycles/hash
-Small key speed test - 14-byte keys - 118.45 cycles/hash
-Small key speed test - 15-byte keys - 118.39 cycles/hash
-Small key speed test - 16-byte keys - 112.95 cycles/hash
-Small key speed test - 17-byte keys - 118.77 cycles/hash
-Small key speed test - 18-byte keys - 119.44 cycles/hash
-Small key speed test - 19-byte keys - 118.81 cycles/hash
-Small key speed test - 20-byte keys - 119.30 cycles/hash
-Small key speed test - 21-byte keys - 120.24 cycles/hash
-Small key speed test - 22-byte keys - 119.79 cycles/hash
-Small key speed test - 23-byte keys - 120.04 cycles/hash
-Small key speed test - 24-byte keys - 120.18 cycles/hash
-Small key speed test - 25-byte keys - 120.36 cycles/hash
-Small key speed test - 26-byte keys - 120.34 cycles/hash
-Small key speed test - 27-byte keys - 120.24 cycles/hash
-Small key speed test - 28-byte keys - 119.47 cycles/hash
-Small key speed test - 29-byte keys - 119.47 cycles/hash
-Small key speed test - 30-byte keys - 119.49 cycles/hash
-Small key speed test - 31-byte keys - 119.41 cycles/hash
-Average 118.664 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 571.125 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 483.440 cycles/op (10.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 407.657 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 335.376 cycles/op (5.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 24.601789 seconds
---- Testing t1ha2_atonce "Fast Positive Hash (portable" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.848 bytes/cycle - 13871.41 MiB/sec @ 3 ghz
-Alignment 6 - 4.856 bytes/cycle - 13894.12 MiB/sec @ 3 ghz
-Alignment 5 - 4.857 bytes/cycle - 13895.44 MiB/sec @ 3 ghz
-Alignment 4 - 4.857 bytes/cycle - 13895.58 MiB/sec @ 3 ghz
-Alignment 3 - 4.855 bytes/cycle - 13891.48 MiB/sec @ 3 ghz
-Alignment 2 - 4.841 bytes/cycle - 13849.89 MiB/sec @ 3 ghz
-Alignment 1 - 4.856 bytes/cycle - 13892.98 MiB/sec @ 3 ghz
-Alignment 0 - 4.971 bytes/cycle - 14221.27 MiB/sec @ 3 ghz
-Average - 4.868 bytes/cycle - 13926.52 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 33.00 cycles/hash
-Small key speed test - 2-byte keys - 33.00 cycles/hash
-Small key speed test - 3-byte keys - 33.00 cycles/hash
-Small key speed test - 4-byte keys - 32.46 cycles/hash
-Small key speed test - 5-byte keys - 32.47 cycles/hash
-Small key speed test - 6-byte keys - 32.46 cycles/hash
-Small key speed test - 7-byte keys - 32.45 cycles/hash
-Small key speed test - 8-byte keys - 32.00 cycles/hash
-Small key speed test - 9-byte keys - 34.00 cycles/hash
-Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 34.00 cycles/hash
-Small key speed test - 12-byte keys - 34.00 cycles/hash
-Small key speed test - 13-byte keys - 34.00 cycles/hash
-Small key speed test - 14-byte keys - 34.00 cycles/hash
-Small key speed test - 15-byte keys - 34.00 cycles/hash
-Small key speed test - 16-byte keys - 34.00 cycles/hash
-Small key speed test - 17-byte keys - 39.52 cycles/hash
-Small key speed test - 18-byte keys - 39.15 cycles/hash
-Small key speed test - 19-byte keys - 39.00 cycles/hash
-Small key speed test - 20-byte keys - 39.00 cycles/hash
-Small key speed test - 21-byte keys - 39.14 cycles/hash
-Small key speed test - 22-byte keys - 39.17 cycles/hash
-Small key speed test - 23-byte keys - 39.16 cycles/hash
-Small key speed test - 24-byte keys - 39.57 cycles/hash
-Small key speed test - 25-byte keys - 46.00 cycles/hash
-Small key speed test - 26-byte keys - 46.00 cycles/hash
-Small key speed test - 27-byte keys - 46.00 cycles/hash
-Small key speed test - 28-byte keys - 46.00 cycles/hash
-Small key speed test - 29-byte keys - 46.00 cycles/hash
-Small key speed test - 30-byte keys - 46.00 cycles/hash
-Small key speed test - 31-byte keys - 46.00 cycles/hash
-Average 37.695 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 454.662 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 376.290 cycles/op (8.8 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 312.156 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 245.334 cycles/op (6.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 10.124140 seconds
---- Testing t1ha2_stream "Fast Positive Hash (portable)" POOR
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.766 bytes/cycle - 13635.46 MiB/sec @ 3 ghz
-Alignment 6 - 4.788 bytes/cycle - 13698.40 MiB/sec @ 3 ghz
-Alignment 5 - 4.785 bytes/cycle - 13689.92 MiB/sec @ 3 ghz
-Alignment 4 - 4.788 bytes/cycle - 13697.88 MiB/sec @ 3 ghz
-Alignment 3 - 4.785 bytes/cycle - 13691.40 MiB/sec @ 3 ghz
-Alignment 2 - 4.785 bytes/cycle - 13688.90 MiB/sec @ 3 ghz
-Alignment 1 - 4.782 bytes/cycle - 13680.26 MiB/sec @ 3 ghz
-Alignment 0 - 4.881 bytes/cycle - 13964.78 MiB/sec @ 3 ghz
-Average - 4.795 bytes/cycle - 13718.38 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 80.00 cycles/hash
-Small key speed test - 2-byte keys - 76.58 cycles/hash
-Small key speed test - 3-byte keys - 76.55 cycles/hash
-Small key speed test - 4-byte keys - 77.22 cycles/hash
-Small key speed test - 5-byte keys - 77.66 cycles/hash
-Small key speed test - 6-byte keys - 77.60 cycles/hash
-Small key speed test - 7-byte keys - 77.63 cycles/hash
-Small key speed test - 8-byte keys - 50.00 cycles/hash
-Small key speed test - 9-byte keys - 78.00 cycles/hash
-Small key speed test - 10-byte keys - 78.00 cycles/hash
-Small key speed test - 11-byte keys - 78.00 cycles/hash
-Small key speed test - 12-byte keys - 77.97 cycles/hash
-Small key speed test - 13-byte keys - 78.00 cycles/hash
-Small key speed test - 14-byte keys - 78.00 cycles/hash
-Small key speed test - 15-byte keys - 78.00 cycles/hash
-Small key speed test - 16-byte keys - 54.41 cycles/hash
-Small key speed test - 17-byte keys - 81.20 cycles/hash
-Small key speed test - 18-byte keys - 81.12 cycles/hash
-Small key speed test - 19-byte keys - 81.17 cycles/hash
-Small key speed test - 20-byte keys - 81.97 cycles/hash
-Small key speed test - 21-byte keys - 81.84 cycles/hash
-Small key speed test - 22-byte keys - 81.67 cycles/hash
-Small key speed test - 23-byte keys - 81.71 cycles/hash
-Small key speed test - 24-byte keys - 53.44 cycles/hash
-Small key speed test - 25-byte keys - 99.84 cycles/hash
-Small key speed test - 26-byte keys - 106.00 cycles/hash
-Small key speed test - 27-byte keys - 106.41 cycles/hash
-Small key speed test - 28-byte keys - 105.96 cycles/hash
-Small key speed test - 29-byte keys - 105.98 cycles/hash
-Small key speed test - 30-byte keys - 105.97 cycles/hash
-Small key speed test - 31-byte keys - 105.04 cycles/hash
-Average 82.353 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 494.047 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 437.979 cycles/op (4.9 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 346.254 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 293.578 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 17.993518 seconds
---- Testing t1ha2_atonce128 "Fast Positive Hash (portable)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 4.827 bytes/cycle - 13809.34 MiB/sec @ 3 ghz
-Alignment 6 - 4.837 bytes/cycle - 13839.50 MiB/sec @ 3 ghz
-Alignment 5 - 4.828 bytes/cycle - 13813.18 MiB/sec @ 3 ghz
-Alignment 4 - 4.827 bytes/cycle - 13810.51 MiB/sec @ 3 ghz
-Alignment 3 - 4.828 bytes/cycle - 13812.27 MiB/sec @ 3 ghz
-Alignment 2 - 4.830 bytes/cycle - 13818.79 MiB/sec @ 3 ghz
-Alignment 1 - 4.826 bytes/cycle - 13806.51 MiB/sec @ 3 ghz
-Alignment 0 - 4.937 bytes/cycle - 14124.14 MiB/sec @ 3 ghz
-Average - 4.842 bytes/cycle - 13854.28 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 52.00 cycles/hash
-Small key speed test - 2-byte keys - 52.00 cycles/hash
-Small key speed test - 3-byte keys - 52.00 cycles/hash
-Small key speed test - 4-byte keys - 51.75 cycles/hash
-Small key speed test - 5-byte keys - 51.80 cycles/hash
-Small key speed test - 6-byte keys - 51.78 cycles/hash
-Small key speed test - 7-byte keys - 51.78 cycles/hash
-Small key speed test - 8-byte keys - 51.00 cycles/hash
-Small key speed test - 9-byte keys - 53.24 cycles/hash
-Small key speed test - 10-byte keys - 53.57 cycles/hash
-Small key speed test - 11-byte keys - 53.56 cycles/hash
-Small key speed test - 12-byte keys - 53.66 cycles/hash
-Small key speed test - 13-byte keys - 53.42 cycles/hash
-Small key speed test - 14-byte keys - 53.48 cycles/hash
-Small key speed test - 15-byte keys - 53.59 cycles/hash
-Small key speed test - 16-byte keys - 53.50 cycles/hash
-Small key speed test - 17-byte keys - 58.99 cycles/hash
-Small key speed test - 18-byte keys - 59.00 cycles/hash
-Small key speed test - 19-byte keys - 58.94 cycles/hash
-Small key speed test - 20-byte keys - 58.95 cycles/hash
-Small key speed test - 21-byte keys - 58.81 cycles/hash
-Small key speed test - 22-byte keys - 58.89 cycles/hash
-Small key speed test - 23-byte keys - 58.87 cycles/hash
-Small key speed test - 24-byte keys - 58.84 cycles/hash
-Small key speed test - 25-byte keys - 65.02 cycles/hash
-Small key speed test - 26-byte keys - 65.00 cycles/hash
-Small key speed test - 27-byte keys - 65.03 cycles/hash
-Small key speed test - 28-byte keys - 65.08 cycles/hash
-Small key speed test - 29-byte keys - 65.08 cycles/hash
-Small key speed test - 30-byte keys - 65.03 cycles/hash
-Small key speed test - 31-byte keys - 65.08 cycles/hash
-Average 57.056 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
+[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 458.528 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 400.900 cycles/op (4.7 stdv)
+Init std HashMapTest: 440.953 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 340.839 cycles/op (2.6 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 332.353 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 266.531 cycles/op (3.8 stdv) ....... PASS
+Init fast HashMapTest: 273.366 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 226.750 cycles/op (1.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.492212 seconds
---- Testing t1ha2_stream128 "Fast Positive Hash (portable)" POOR
+Verification value is 0x00000001 - Testing took 8.477798 seconds
+--- Testing aesni-low "aesni 64bit" GOOD
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x1806531e7204 - 0x1806531e71bc). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.798 bytes/cycle - 13725.84 MiB/sec @ 3 ghz
-Alignment 6 - 4.814 bytes/cycle - 13772.35 MiB/sec @ 3 ghz
-Alignment 5 - 4.815 bytes/cycle - 13776.98 MiB/sec @ 3 ghz
-Alignment 4 - 4.816 bytes/cycle - 13780.06 MiB/sec @ 3 ghz
-Alignment 3 - 4.807 bytes/cycle - 13753.12 MiB/sec @ 3 ghz
-Alignment 2 - 4.807 bytes/cycle - 13752.56 MiB/sec @ 3 ghz
-Alignment 1 - 4.806 bytes/cycle - 13750.55 MiB/sec @ 3 ghz
-Alignment 0 - 4.928 bytes/cycle - 14099.70 MiB/sec @ 3 ghz
-Average - 4.824 bytes/cycle - 13801.39 MiB/sec @ 3 ghz
+Alignment 7 - 10.773 bytes/cycle - 30820.56 MiB/sec @ 3 ghz
+Alignment 6 - 10.759 bytes/cycle - 30782.38 MiB/sec @ 3 ghz
+Alignment 5 - 11.146 bytes/cycle - 31888.81 MiB/sec @ 3 ghz
+Alignment 4 - 11.213 bytes/cycle - 32081.38 MiB/sec @ 3 ghz
+Alignment 3 - 11.146 bytes/cycle - 31888.78 MiB/sec @ 3 ghz
+Alignment 2 - 11.151 bytes/cycle - 31902.59 MiB/sec @ 3 ghz
+Alignment 1 - 10.708 bytes/cycle - 30636.10 MiB/sec @ 3 ghz
+Alignment 0 - 9.863 bytes/cycle - 28218.49 MiB/sec @ 3 ghz
+Average - 10.845 bytes/cycle - 31027.39 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 93.78 cycles/hash
-Small key speed test - 2-byte keys - 90.89 cycles/hash
-Small key speed test - 3-byte keys - 90.92 cycles/hash
-Small key speed test - 4-byte keys - 91.12 cycles/hash
-Small key speed test - 5-byte keys - 91.22 cycles/hash
-Small key speed test - 6-byte keys - 91.30 cycles/hash
-Small key speed test - 7-byte keys - 91.21 cycles/hash
-Small key speed test - 8-byte keys - 59.00 cycles/hash
-Small key speed test - 9-byte keys - 93.67 cycles/hash
-Small key speed test - 10-byte keys - 93.94 cycles/hash
-Small key speed test - 11-byte keys - 93.98 cycles/hash
-Small key speed test - 12-byte keys - 93.86 cycles/hash
-Small key speed test - 13-byte keys - 93.79 cycles/hash
-Small key speed test - 14-byte keys - 93.71 cycles/hash
-Small key speed test - 15-byte keys - 93.00 cycles/hash
-Small key speed test - 16-byte keys - 64.88 cycles/hash
-Small key speed test - 17-byte keys - 95.81 cycles/hash
-Small key speed test - 18-byte keys - 95.59 cycles/hash
-Small key speed test - 19-byte keys - 95.67 cycles/hash
-Small key speed test - 20-byte keys - 95.83 cycles/hash
-Small key speed test - 21-byte keys - 95.64 cycles/hash
-Small key speed test - 22-byte keys - 95.54 cycles/hash
-Small key speed test - 23-byte keys - 95.76 cycles/hash
-Small key speed test - 24-byte keys - 58.92 cycles/hash
-Small key speed test - 25-byte keys - 113.64 cycles/hash
-Small key speed test - 26-byte keys - 119.63 cycles/hash
-Small key speed test - 27-byte keys - 119.95 cycles/hash
-Small key speed test - 28-byte keys - 119.42 cycles/hash
-Small key speed test - 29-byte keys - 120.50 cycles/hash
-Small key speed test - 30-byte keys - 120.52 cycles/hash
-Small key speed test - 31-byte keys - 119.69 cycles/hash
-Average 96.206 cycles/hash
+Small key speed test - 1-byte keys - 27.00 cycles/hash
+Small key speed test - 2-byte keys - 27.00 cycles/hash
+Small key speed test - 3-byte keys - 27.00 cycles/hash
+Small key speed test - 4-byte keys - 25.65 cycles/hash
+Small key speed test - 5-byte keys - 27.00 cycles/hash
+Small key speed test - 6-byte keys - 27.00 cycles/hash
+Small key speed test - 7-byte keys - 27.00 cycles/hash
+Small key speed test - 8-byte keys - 25.00 cycles/hash
+Small key speed test - 9-byte keys - 27.00 cycles/hash
+Small key speed test - 10-byte keys - 27.00 cycles/hash
+Small key speed test - 11-byte keys - 27.00 cycles/hash
+Small key speed test - 12-byte keys - 27.00 cycles/hash
+Small key speed test - 13-byte keys - 27.00 cycles/hash
+Small key speed test - 14-byte keys - 27.00 cycles/hash
+Small key speed test - 15-byte keys - 27.00 cycles/hash
+Small key speed test - 16-byte keys - 26.00 cycles/hash
+Small key speed test - 17-byte keys - 32.00 cycles/hash
+Small key speed test - 18-byte keys - 32.00 cycles/hash
+Small key speed test - 19-byte keys - 32.00 cycles/hash
+Small key speed test - 20-byte keys - 33.00 cycles/hash
+Small key speed test - 21-byte keys - 32.00 cycles/hash
+Small key speed test - 22-byte keys - 32.00 cycles/hash
+Small key speed test - 23-byte keys - 32.00 cycles/hash
+Small key speed test - 24-byte keys - 32.23 cycles/hash
+Small key speed test - 25-byte keys - 32.12 cycles/hash
+Small key speed test - 26-byte keys - 32.00 cycles/hash
+Small key speed test - 27-byte keys - 32.00 cycles/hash
+Small key speed test - 28-byte keys - 32.00 cycles/hash
+Small key speed test - 29-byte keys - 32.00 cycles/hash
+Small key speed test - 30-byte keys - 32.19 cycles/hash
+Small key speed test - 31-byte keys - 32.00 cycles/hash
+Small key speed test - 32-byte keys - 34.00 cycles/hash
+Average 29.474 cycles/hash
+Average, weighted by key length freq. 29.144 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 26.593 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 515.397 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 461.332 cycles/op (5.8 stdv)
+Init std HashMapTest: 421.667 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 344.515 cycles/op (3.3 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 365.064 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 320.206 cycles/op (5.9 stdv) ....... PASS
+Init fast HashMapTest: 276.876 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 232.544 cycles/op (1.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 20.504726 seconds
---- Testing t1ha0_aes_noavx "Fast Positive Hash (AES-NI)" GOOD
+Verification value is 0x00000001 - Testing took 8.535269 seconds
+--- Testing falkhash "falkhash.asm with aesenc, 64-bit for x64" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 9.587 bytes/cycle - 27427.55 MiB/sec @ 3 ghz
-Alignment 6 - 9.627 bytes/cycle - 27543.31 MiB/sec @ 3 ghz
-Alignment 5 - 9.618 bytes/cycle - 27518.56 MiB/sec @ 3 ghz
-Alignment 4 - 9.647 bytes/cycle - 27599.80 MiB/sec @ 3 ghz
-Alignment 3 - 9.616 bytes/cycle - 27511.32 MiB/sec @ 3 ghz
-Alignment 2 - 9.624 bytes/cycle - 27533.30 MiB/sec @ 3 ghz
-Alignment 1 - 9.627 bytes/cycle - 27542.60 MiB/sec @ 3 ghz
-Alignment 0 - 9.628 bytes/cycle - 27546.28 MiB/sec @ 3 ghz
-Average - 9.622 bytes/cycle - 27527.84 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.00 cycles/hash
-Small key speed test - 2-byte keys - 32.00 cycles/hash
-Small key speed test - 3-byte keys - 32.00 cycles/hash
-Small key speed test - 4-byte keys - 31.79 cycles/hash
-Small key speed test - 5-byte keys - 31.75 cycles/hash
-Small key speed test - 6-byte keys - 31.78 cycles/hash
-Small key speed test - 7-byte keys - 31.78 cycles/hash
-Small key speed test - 8-byte keys - 31.00 cycles/hash
-Small key speed test - 9-byte keys - 34.14 cycles/hash
-Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 34.22 cycles/hash
-Small key speed test - 12-byte keys - 34.16 cycles/hash
-Small key speed test - 13-byte keys - 34.15 cycles/hash
-Small key speed test - 14-byte keys - 34.15 cycles/hash
-Small key speed test - 15-byte keys - 34.11 cycles/hash
-Small key speed test - 16-byte keys - 34.14 cycles/hash
-Small key speed test - 17-byte keys - 39.00 cycles/hash
-Small key speed test - 18-byte keys - 39.00 cycles/hash
-Small key speed test - 19-byte keys - 39.15 cycles/hash
-Small key speed test - 20-byte keys - 39.25 cycles/hash
-Small key speed test - 21-byte keys - 39.28 cycles/hash
-Small key speed test - 22-byte keys - 39.26 cycles/hash
-Small key speed test - 23-byte keys - 39.26 cycles/hash
-Small key speed test - 24-byte keys - 39.24 cycles/hash
-Small key speed test - 25-byte keys - 44.69 cycles/hash
-Small key speed test - 26-byte keys - 44.81 cycles/hash
-Small key speed test - 27-byte keys - 44.81 cycles/hash
-Small key speed test - 28-byte keys - 44.81 cycles/hash
-Small key speed test - 29-byte keys - 44.79 cycles/hash
-Small key speed test - 30-byte keys - 44.81 cycles/hash
-Small key speed test - 31-byte keys - 44.87 cycles/hash
-Average 37.232 cycles/hash
+WARNING: timer resolution is 108 (0x6c) ticks (0x180d7a9eb89c - 0x180d7a9eb830). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 18.093 bytes/cycle - 51765.20 MiB/sec @ 3 ghz
+Alignment 6 - 18.134 bytes/cycle - 51882.93 MiB/sec @ 3 ghz
+Alignment 5 - 18.157 bytes/cycle - 51948.08 MiB/sec @ 3 ghz
+Alignment 4 - 18.200 bytes/cycle - 52070.43 MiB/sec @ 3 ghz
+Alignment 3 - 18.212 bytes/cycle - 52104.28 MiB/sec @ 3 ghz
+Alignment 2 - 18.188 bytes/cycle - 52035.52 MiB/sec @ 3 ghz
+Alignment 1 - 18.218 bytes/cycle - 52121.16 MiB/sec @ 3 ghz
+Alignment 0 - 19.323 bytes/cycle - 55284.21 MiB/sec @ 3 ghz
+Average - 18.316 bytes/cycle - 52401.48 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 106.18 cycles/hash
+Small key speed test - 2-byte keys - 106.00 cycles/hash
+Small key speed test - 3-byte keys - 105.79 cycles/hash
+Small key speed test - 4-byte keys - 105.88 cycles/hash
+Small key speed test - 5-byte keys - 112.80 cycles/hash
+Small key speed test - 6-byte keys - 112.00 cycles/hash
+Small key speed test - 7-byte keys - 112.95 cycles/hash
+Small key speed test - 8-byte keys - 113.12 cycles/hash
+Small key speed test - 9-byte keys - 141.78 cycles/hash
+Small key speed test - 10-byte keys - 145.03 cycles/hash
+Small key speed test - 11-byte keys - 112.95 cycles/hash
+Small key speed test - 12-byte keys - 117.73 cycles/hash
+Small key speed test - 13-byte keys - 118.96 cycles/hash
+Small key speed test - 14-byte keys - 118.36 cycles/hash
+Small key speed test - 15-byte keys - 117.98 cycles/hash
+Small key speed test - 16-byte keys - 122.99 cycles/hash
+Small key speed test - 17-byte keys - 118.95 cycles/hash
+Small key speed test - 18-byte keys - 126.47 cycles/hash
+Small key speed test - 19-byte keys - 126.50 cycles/hash
+Small key speed test - 20-byte keys - 126.46 cycles/hash
+Small key speed test - 21-byte keys - 126.71 cycles/hash
+Small key speed test - 22-byte keys - 126.47 cycles/hash
+Small key speed test - 23-byte keys - 126.01 cycles/hash
+Small key speed test - 24-byte keys - 126.49 cycles/hash
+Small key speed test - 25-byte keys - 126.91 cycles/hash
+Small key speed test - 26-byte keys - 126.89 cycles/hash
+Small key speed test - 27-byte keys - 128.78 cycles/hash
+Small key speed test - 28-byte keys - 133.66 cycles/hash
+Small key speed test - 29-byte keys - 133.91 cycles/hash
+Small key speed test - 30-byte keys - 133.86 cycles/hash
+Small key speed test - 31-byte keys - 133.89 cycles/hash
+Small key speed test - 32-byte keys - 133.84 cycles/hash
+Average 122.698 cycles/hash
+Average, weighted by key length freq. 124.031 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 126.626 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 450.039 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 376.308 cycles/op (8.6 stdv)
+Init std HashMapTest: 514.667 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 431.742 cycles/op (2.8 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 315.498 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 245.098 cycles/op (6.1 stdv) ....... PASS
+Init fast HashMapTest: 359.842 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 316.791 cycles/op (3.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.860186 seconds
---- Testing t1ha0_aes_avx1 "Fast Positive Hash (AES-NI & AVX)" GOOD
+Verification value is 0x00000001 - Testing took 25.285319 seconds
+--- Testing MeowHash32low "MeowHash (requires x64 AES-NI)" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 9.472 bytes/cycle - 27099.39 MiB/sec @ 3 ghz
-Alignment 6 - 9.497 bytes/cycle - 27170.65 MiB/sec @ 3 ghz
-Alignment 5 - 9.511 bytes/cycle - 27209.82 MiB/sec @ 3 ghz
-Alignment 4 - 9.514 bytes/cycle - 27220.53 MiB/sec @ 3 ghz
-Alignment 3 - 9.513 bytes/cycle - 27217.90 MiB/sec @ 3 ghz
-Alignment 2 - 9.519 bytes/cycle - 27233.03 MiB/sec @ 3 ghz
-Alignment 1 - 9.514 bytes/cycle - 27220.12 MiB/sec @ 3 ghz
-Alignment 0 - 9.512 bytes/cycle - 27214.91 MiB/sec @ 3 ghz
-Average - 9.506 bytes/cycle - 27198.29 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.00 cycles/hash
-Small key speed test - 2-byte keys - 32.00 cycles/hash
-Small key speed test - 3-byte keys - 32.00 cycles/hash
-Small key speed test - 4-byte keys - 32.00 cycles/hash
-Small key speed test - 5-byte keys - 32.00 cycles/hash
-Small key speed test - 6-byte keys - 32.00 cycles/hash
-Small key speed test - 7-byte keys - 32.00 cycles/hash
-Small key speed test - 8-byte keys - 31.16 cycles/hash
-Small key speed test - 9-byte keys - 34.73 cycles/hash
-Small key speed test - 10-byte keys - 34.79 cycles/hash
-Small key speed test - 11-byte keys - 34.75 cycles/hash
-Small key speed test - 12-byte keys - 34.74 cycles/hash
-Small key speed test - 13-byte keys - 34.79 cycles/hash
-Small key speed test - 14-byte keys - 34.78 cycles/hash
-Small key speed test - 15-byte keys - 34.78 cycles/hash
-Small key speed test - 16-byte keys - 34.79 cycles/hash
-Small key speed test - 17-byte keys - 39.93 cycles/hash
-Small key speed test - 18-byte keys - 39.87 cycles/hash
-Small key speed test - 19-byte keys - 39.94 cycles/hash
-Small key speed test - 20-byte keys - 39.87 cycles/hash
-Small key speed test - 21-byte keys - 39.97 cycles/hash
-Small key speed test - 22-byte keys - 39.97 cycles/hash
-Small key speed test - 23-byte keys - 39.98 cycles/hash
-Small key speed test - 24-byte keys - 39.99 cycles/hash
-Small key speed test - 25-byte keys - 45.00 cycles/hash
-Small key speed test - 26-byte keys - 45.00 cycles/hash
-Small key speed test - 27-byte keys - 45.00 cycles/hash
-Small key speed test - 28-byte keys - 45.00 cycles/hash
-Small key speed test - 29-byte keys - 45.00 cycles/hash
-Small key speed test - 30-byte keys - 45.00 cycles/hash
-Small key speed test - 31-byte keys - 45.00 cycles/hash
-Average 37.672 cycles/hash
+WARNING: timer resolution is 72 (0x48) ticks (0x1822abcf0b9c - 0x1822abcf0b54). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 10.195 bytes/cycle - 29167.10 MiB/sec @ 3 ghz
+Alignment 6 - 10.196 bytes/cycle - 29169.76 MiB/sec @ 3 ghz
+Alignment 5 - 10.245 bytes/cycle - 29310.87 MiB/sec @ 3 ghz
+Alignment 4 - 10.255 bytes/cycle - 29338.63 MiB/sec @ 3 ghz
+Alignment 3 - 10.190 bytes/cycle - 29152.86 MiB/sec @ 3 ghz
+Alignment 2 - 10.193 bytes/cycle - 29161.47 MiB/sec @ 3 ghz
+Alignment 1 - 11.853 bytes/cycle - 33910.57 MiB/sec @ 3 ghz
+Alignment 0 - 12.334 bytes/cycle - 35289.04 MiB/sec @ 3 ghz
+Average - 10.682 bytes/cycle - 30562.54 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 63.65 cycles/hash
+Small key speed test - 2-byte keys - 63.51 cycles/hash
+Small key speed test - 3-byte keys - 63.39 cycles/hash
+Small key speed test - 4-byte keys - 63.54 cycles/hash
+Small key speed test - 5-byte keys - 63.68 cycles/hash
+Small key speed test - 6-byte keys - 63.59 cycles/hash
+Small key speed test - 7-byte keys - 63.69 cycles/hash
+Small key speed test - 8-byte keys - 63.64 cycles/hash
+Small key speed test - 9-byte keys - 63.65 cycles/hash
+Small key speed test - 10-byte keys - 63.76 cycles/hash
+Small key speed test - 11-byte keys - 63.48 cycles/hash
+Small key speed test - 12-byte keys - 63.74 cycles/hash
+Small key speed test - 13-byte keys - 63.70 cycles/hash
+Small key speed test - 14-byte keys - 63.64 cycles/hash
+Small key speed test - 15-byte keys - 63.54 cycles/hash
+Small key speed test - 16-byte keys - 63.82 cycles/hash
+Small key speed test - 17-byte keys - 64.03 cycles/hash
+Small key speed test - 18-byte keys - 63.46 cycles/hash
+Small key speed test - 19-byte keys - 63.41 cycles/hash
+Small key speed test - 20-byte keys - 63.00 cycles/hash
+Small key speed test - 21-byte keys - 63.41 cycles/hash
+Small key speed test - 22-byte keys - 63.39 cycles/hash
+Small key speed test - 23-byte keys - 63.92 cycles/hash
+Small key speed test - 24-byte keys - 63.44 cycles/hash
+Small key speed test - 25-byte keys - 63.44 cycles/hash
+Small key speed test - 26-byte keys - 63.45 cycles/hash
+Small key speed test - 27-byte keys - 63.48 cycles/hash
+Small key speed test - 28-byte keys - 63.70 cycles/hash
+Small key speed test - 29-byte keys - 65.15 cycles/hash
+Small key speed test - 30-byte keys - 63.99 cycles/hash
+Small key speed test - 31-byte keys - 64.91 cycles/hash
+Small key speed test - 32-byte keys - 66.55 cycles/hash
+Average 63.773 cycles/hash
+Average, weighted by key length freq. 63.659 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 63.718 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 445.163 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 381.557 cycles/op (7.4 stdv)
+Init std HashMapTest: 442.567 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 375.686 cycles/op (3.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 306.252 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 245.230 cycles/op (5.1 stdv) ....... PASS
+Init fast HashMapTest: 323.504 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 283.263 cycles/op (2.6 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.941428 seconds
---- Testing t1ha0_aes_avx2 "Fast Positive Hash (AES-NI & AVX2)" GOOD
+Verification value is 0x00000001 - Testing took 14.728413 seconds
+--- Testing MeowHash64low "MeowHash (requires x64 AES-NI)" POOR
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 19.316 bytes/cycle - 55262.73 MiB/sec @ 3 ghz
-Alignment 6 - 19.352 bytes/cycle - 55365.29 MiB/sec @ 3 ghz
-Alignment 5 - 19.338 bytes/cycle - 55326.80 MiB/sec @ 3 ghz
-Alignment 4 - 19.357 bytes/cycle - 55379.74 MiB/sec @ 3 ghz
-Alignment 3 - 19.346 bytes/cycle - 55349.31 MiB/sec @ 3 ghz
-Alignment 2 - 19.341 bytes/cycle - 55334.95 MiB/sec @ 3 ghz
-Alignment 1 - 19.346 bytes/cycle - 55348.85 MiB/sec @ 3 ghz
-Alignment 0 - 20.228 bytes/cycle - 57872.49 MiB/sec @ 3 ghz
-Average - 19.453 bytes/cycle - 55655.02 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 32.72 cycles/hash
-Small key speed test - 2-byte keys - 32.82 cycles/hash
-Small key speed test - 3-byte keys - 32.81 cycles/hash
-Small key speed test - 4-byte keys - 32.00 cycles/hash
-Small key speed test - 5-byte keys - 32.00 cycles/hash
-Small key speed test - 6-byte keys - 32.00 cycles/hash
-Small key speed test - 7-byte keys - 32.00 cycles/hash
-Small key speed test - 8-byte keys - 32.00 cycles/hash
-Small key speed test - 9-byte keys - 34.00 cycles/hash
-Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 34.00 cycles/hash
-Small key speed test - 12-byte keys - 34.00 cycles/hash
-Small key speed test - 13-byte keys - 34.00 cycles/hash
-Small key speed test - 14-byte keys - 34.00 cycles/hash
-Small key speed test - 15-byte keys - 34.00 cycles/hash
-Small key speed test - 16-byte keys - 34.00 cycles/hash
-Small key speed test - 17-byte keys - 39.51 cycles/hash
-Small key speed test - 18-byte keys - 39.41 cycles/hash
-Small key speed test - 19-byte keys - 39.52 cycles/hash
-Small key speed test - 20-byte keys - 39.46 cycles/hash
-Small key speed test - 21-byte keys - 39.67 cycles/hash
-Small key speed test - 22-byte keys - 39.63 cycles/hash
-Small key speed test - 23-byte keys - 39.66 cycles/hash
-Small key speed test - 24-byte keys - 39.44 cycles/hash
-Small key speed test - 25-byte keys - 44.00 cycles/hash
-Small key speed test - 26-byte keys - 44.00 cycles/hash
-Small key speed test - 27-byte keys - 44.00 cycles/hash
-Small key speed test - 28-byte keys - 44.00 cycles/hash
-Small key speed test - 29-byte keys - 44.00 cycles/hash
-Small key speed test - 30-byte keys - 44.00 cycles/hash
-Small key speed test - 31-byte keys - 44.00 cycles/hash
-Average 37.246 cycles/hash
+WARNING: timer resolution is 108 (0x6c) ticks (0x182f0424543c - 0x182f042453d0). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 10.183 bytes/cycle - 29134.57 MiB/sec @ 3 ghz
+Alignment 6 - 10.194 bytes/cycle - 29165.11 MiB/sec @ 3 ghz
+Alignment 5 - 10.242 bytes/cycle - 29302.91 MiB/sec @ 3 ghz
+Alignment 4 - 10.250 bytes/cycle - 29325.12 MiB/sec @ 3 ghz
+Alignment 3 - 10.194 bytes/cycle - 29164.63 MiB/sec @ 3 ghz
+Alignment 2 - 10.185 bytes/cycle - 29140.37 MiB/sec @ 3 ghz
+Alignment 1 - 11.088 bytes/cycle - 31724.29 MiB/sec @ 3 ghz
+Alignment 0 - 9.979 bytes/cycle - 28550.63 MiB/sec @ 3 ghz
+Average - 10.289 bytes/cycle - 29438.45 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 72.04 cycles/hash
+Small key speed test - 2-byte keys - 63.54 cycles/hash
+Small key speed test - 3-byte keys - 63.64 cycles/hash
+Small key speed test - 4-byte keys - 63.65 cycles/hash
+Small key speed test - 5-byte keys - 63.64 cycles/hash
+Small key speed test - 6-byte keys - 63.80 cycles/hash
+Small key speed test - 7-byte keys - 63.34 cycles/hash
+Small key speed test - 8-byte keys - 63.67 cycles/hash
+Small key speed test - 9-byte keys - 63.73 cycles/hash
+Small key speed test - 10-byte keys - 63.74 cycles/hash
+Small key speed test - 11-byte keys - 63.71 cycles/hash
+Small key speed test - 12-byte keys - 63.73 cycles/hash
+Small key speed test - 13-byte keys - 63.58 cycles/hash
+Small key speed test - 14-byte keys - 63.70 cycles/hash
+Small key speed test - 15-byte keys - 63.36 cycles/hash
+Small key speed test - 16-byte keys - 63.84 cycles/hash
+Small key speed test - 17-byte keys - 63.30 cycles/hash
+Small key speed test - 18-byte keys - 63.33 cycles/hash
+Small key speed test - 19-byte keys - 63.00 cycles/hash
+Small key speed test - 20-byte keys - 63.00 cycles/hash
+Small key speed test - 21-byte keys - 63.41 cycles/hash
+Small key speed test - 22-byte keys - 63.00 cycles/hash
+Small key speed test - 23-byte keys - 63.00 cycles/hash
+Small key speed test - 24-byte keys - 63.00 cycles/hash
+Small key speed test - 25-byte keys - 63.44 cycles/hash
+Small key speed test - 26-byte keys - 63.00 cycles/hash
+Small key speed test - 27-byte keys - 63.44 cycles/hash
+Small key speed test - 28-byte keys - 63.42 cycles/hash
+Small key speed test - 29-byte keys - 63.42 cycles/hash
+Small key speed test - 30-byte keys - 63.50 cycles/hash
+Small key speed test - 31-byte keys - 63.41 cycles/hash
+Small key speed test - 32-byte keys - 65.07 cycles/hash
+Average 63.764 cycles/hash
+Average, weighted by key length freq. 63.475 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 63.736 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 445.059 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 389.155 cycles/op (4.0 stdv)
+Init std HashMapTest: 453.199 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 374.017 cycles/op (3.2 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 300.515 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 258.226 cycles/op (4.9 stdv) ....... PASS
+Init fast HashMapTest: 318.136 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 269.413 cycles/op (4.1 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.750956 seconds
---- Testing xxh3 "xxHash v3, 64-bit" GOOD
+Verification value is 0x00000001 - Testing took 14.766292 seconds
+--- Testing MeowHash "MeowHash (requires x64 AES-NI)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x183b655906fc - 0x183b655906b4). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 7.068 bytes/cycle - 20222.97 MiB/sec @ 3 ghz
-Alignment 6 - 7.102 bytes/cycle - 20320.09 MiB/sec @ 3 ghz
-Alignment 5 - 7.090 bytes/cycle - 20285.32 MiB/sec @ 3 ghz
-Alignment 4 - 7.084 bytes/cycle - 20268.33 MiB/sec @ 3 ghz
-Alignment 3 - 7.073 bytes/cycle - 20235.89 MiB/sec @ 3 ghz
-Alignment 2 - 7.073 bytes/cycle - 20237.43 MiB/sec @ 3 ghz
-Alignment 1 - 7.074 bytes/cycle - 20239.99 MiB/sec @ 3 ghz
-Alignment 0 - 7.430 bytes/cycle - 21258.18 MiB/sec @ 3 ghz
-Average - 7.125 bytes/cycle - 20383.53 MiB/sec @ 3 ghz
+Alignment 7 - 9.987 bytes/cycle - 28572.20 MiB/sec @ 3 ghz
+Alignment 6 - 9.993 bytes/cycle - 28590.16 MiB/sec @ 3 ghz
+Alignment 5 - 10.050 bytes/cycle - 28754.10 MiB/sec @ 3 ghz
+Alignment 4 - 10.052 bytes/cycle - 28758.70 MiB/sec @ 3 ghz
+Alignment 3 - 10.000 bytes/cycle - 28610.59 MiB/sec @ 3 ghz
+Alignment 2 - 9.997 bytes/cycle - 28600.56 MiB/sec @ 3 ghz
+Alignment 1 - 11.623 bytes/cycle - 33254.78 MiB/sec @ 3 ghz
+Alignment 0 - 12.100 bytes/cycle - 34617.38 MiB/sec @ 3 ghz
+Average - 10.475 bytes/cycle - 29969.81 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 29.00 cycles/hash
-Small key speed test - 2-byte keys - 29.00 cycles/hash
-Small key speed test - 3-byte keys - 29.00 cycles/hash
-Small key speed test - 4-byte keys - 29.69 cycles/hash
-Small key speed test - 5-byte keys - 29.71 cycles/hash
-Small key speed test - 6-byte keys - 29.70 cycles/hash
-Small key speed test - 7-byte keys - 29.64 cycles/hash
-Small key speed test - 8-byte keys - 29.69 cycles/hash
-Small key speed test - 9-byte keys - 29.71 cycles/hash
-Small key speed test - 10-byte keys - 29.80 cycles/hash
-Small key speed test - 11-byte keys - 29.72 cycles/hash
-Small key speed test - 12-byte keys - 29.68 cycles/hash
-Small key speed test - 13-byte keys - 29.53 cycles/hash
-Small key speed test - 14-byte keys - 29.77 cycles/hash
-Small key speed test - 15-byte keys - 29.68 cycles/hash
-Small key speed test - 16-byte keys - 29.73 cycles/hash
-Small key speed test - 17-byte keys - 31.00 cycles/hash
-Small key speed test - 18-byte keys - 31.00 cycles/hash
-Small key speed test - 19-byte keys - 31.00 cycles/hash
-Small key speed test - 20-byte keys - 31.00 cycles/hash
-Small key speed test - 21-byte keys - 32.00 cycles/hash
-Small key speed test - 22-byte keys - 32.00 cycles/hash
-Small key speed test - 23-byte keys - 32.00 cycles/hash
-Small key speed test - 24-byte keys - 32.00 cycles/hash
-Small key speed test - 25-byte keys - 33.00 cycles/hash
-Small key speed test - 26-byte keys - 33.00 cycles/hash
-Small key speed test - 27-byte keys - 33.00 cycles/hash
-Small key speed test - 28-byte keys - 32.60 cycles/hash
-Small key speed test - 29-byte keys - 32.57 cycles/hash
-Small key speed test - 30-byte keys - 32.72 cycles/hash
-Small key speed test - 31-byte keys - 32.64 cycles/hash
-Average 30.793 cycles/hash
+Small key speed test - 1-byte keys - 64.96 cycles/hash
+Small key speed test - 2-byte keys - 64.88 cycles/hash
+Small key speed test - 3-byte keys - 64.80 cycles/hash
+Small key speed test - 4-byte keys - 65.00 cycles/hash
+Small key speed test - 5-byte keys - 65.10 cycles/hash
+Small key speed test - 6-byte keys - 64.93 cycles/hash
+Small key speed test - 7-byte keys - 64.79 cycles/hash
+Small key speed test - 8-byte keys - 64.96 cycles/hash
+Small key speed test - 9-byte keys - 65.02 cycles/hash
+Small key speed test - 10-byte keys - 64.89 cycles/hash
+Small key speed test - 11-byte keys - 64.72 cycles/hash
+Small key speed test - 12-byte keys - 64.98 cycles/hash
+Small key speed test - 13-byte keys - 64.98 cycles/hash
+Small key speed test - 14-byte keys - 65.12 cycles/hash
+Small key speed test - 15-byte keys - 64.81 cycles/hash
+Small key speed test - 16-byte keys - 65.00 cycles/hash
+Small key speed test - 17-byte keys - 64.81 cycles/hash
+Small key speed test - 18-byte keys - 64.74 cycles/hash
+Small key speed test - 19-byte keys - 64.78 cycles/hash
+Small key speed test - 20-byte keys - 64.74 cycles/hash
+Small key speed test - 21-byte keys - 64.78 cycles/hash
+Small key speed test - 22-byte keys - 64.77 cycles/hash
+Small key speed test - 23-byte keys - 64.77 cycles/hash
+Small key speed test - 24-byte keys - 64.79 cycles/hash
+Small key speed test - 25-byte keys - 64.79 cycles/hash
+Small key speed test - 26-byte keys - 64.78 cycles/hash
+Small key speed test - 27-byte keys - 64.74 cycles/hash
+Small key speed test - 28-byte keys - 64.78 cycles/hash
+Small key speed test - 29-byte keys - 64.77 cycles/hash
+Small key speed test - 30-byte keys - 64.78 cycles/hash
+Small key speed test - 31-byte keys - 64.78 cycles/hash
+Small key speed test - 32-byte keys - 66.38 cycles/hash
+Average 64.903 cycles/hash
+Average, weighted by key length freq. 64.878 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 64.968 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 435.720 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 373.430 cycles/op (6.2 stdv)
+Init std HashMapTest: 458.375 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 377.222 cycles/op (2.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 303.890 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 237.873 cycles/op (6.4 stdv) ....... PASS
+Init fast HashMapTest: 314.273 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 273.794 cycles/op (8.2 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.790443 seconds
---- Testing xxh3low "xxHash v3, 64-bit, low 32-bits part" GOOD
+Verification value is 0x00000001 - Testing took 14.976911 seconds
+--- Testing t1ha1_64le "Fast Positive Hash (portable, aims 64-bit, little-endian)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x1847f2cb08dc - 0x1847f2cb0894). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 7.185 bytes/cycle - 20555.70 MiB/sec @ 3 ghz
-Alignment 6 - 7.201 bytes/cycle - 20602.19 MiB/sec @ 3 ghz
-Alignment 5 - 7.206 bytes/cycle - 20616.09 MiB/sec @ 3 ghz
-Alignment 4 - 7.201 bytes/cycle - 20601.00 MiB/sec @ 3 ghz
-Alignment 3 - 7.197 bytes/cycle - 20591.55 MiB/sec @ 3 ghz
-Alignment 2 - 7.199 bytes/cycle - 20595.88 MiB/sec @ 3 ghz
-Alignment 1 - 7.200 bytes/cycle - 20598.13 MiB/sec @ 3 ghz
-Alignment 0 - 7.558 bytes/cycle - 21622.97 MiB/sec @ 3 ghz
-Average - 7.243 bytes/cycle - 20722.94 MiB/sec @ 3 ghz
+Alignment 7 - 4.699 bytes/cycle - 13442.61 MiB/sec @ 3 ghz
+Alignment 6 - 4.721 bytes/cycle - 13508.29 MiB/sec @ 3 ghz
+Alignment 5 - 4.670 bytes/cycle - 13361.09 MiB/sec @ 3 ghz
+Alignment 4 - 4.678 bytes/cycle - 13382.94 MiB/sec @ 3 ghz
+Alignment 3 - 4.692 bytes/cycle - 13423.17 MiB/sec @ 3 ghz
+Alignment 2 - 4.689 bytes/cycle - 13414.90 MiB/sec @ 3 ghz
+Alignment 1 - 4.692 bytes/cycle - 13422.70 MiB/sec @ 3 ghz
+Alignment 0 - 4.699 bytes/cycle - 13444.55 MiB/sec @ 3 ghz
+Average - 4.692 bytes/cycle - 13425.03 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 28.97 cycles/hash
-Small key speed test - 2-byte keys - 28.74 cycles/hash
-Small key speed test - 3-byte keys - 28.69 cycles/hash
+Small key speed test - 1-byte keys - 30.00 cycles/hash
+Small key speed test - 2-byte keys - 30.00 cycles/hash
+Small key speed test - 3-byte keys - 30.00 cycles/hash
Small key speed test - 4-byte keys - 29.00 cycles/hash
-Small key speed test - 5-byte keys - 29.00 cycles/hash
-Small key speed test - 6-byte keys - 29.00 cycles/hash
+Small key speed test - 5-byte keys - 29.34 cycles/hash
+Small key speed test - 6-byte keys - 29.33 cycles/hash
Small key speed test - 7-byte keys - 29.00 cycles/hash
Small key speed test - 8-byte keys - 29.00 cycles/hash
-Small key speed test - 9-byte keys - 29.00 cycles/hash
-Small key speed test - 10-byte keys - 29.00 cycles/hash
-Small key speed test - 11-byte keys - 29.00 cycles/hash
-Small key speed test - 12-byte keys - 29.00 cycles/hash
-Small key speed test - 13-byte keys - 29.00 cycles/hash
-Small key speed test - 14-byte keys - 29.00 cycles/hash
-Small key speed test - 15-byte keys - 29.00 cycles/hash
-Small key speed test - 16-byte keys - 29.00 cycles/hash
-Small key speed test - 17-byte keys - 30.49 cycles/hash
-Small key speed test - 18-byte keys - 30.48 cycles/hash
-Small key speed test - 19-byte keys - 30.33 cycles/hash
-Small key speed test - 20-byte keys - 30.47 cycles/hash
+Small key speed test - 9-byte keys - 30.00 cycles/hash
+Small key speed test - 10-byte keys - 30.00 cycles/hash
+Small key speed test - 11-byte keys - 30.00 cycles/hash
+Small key speed test - 12-byte keys - 30.00 cycles/hash
+Small key speed test - 13-byte keys - 30.00 cycles/hash
+Small key speed test - 14-byte keys - 30.00 cycles/hash
+Small key speed test - 15-byte keys - 30.00 cycles/hash
+Small key speed test - 16-byte keys - 30.00 cycles/hash
+Small key speed test - 17-byte keys - 32.00 cycles/hash
+Small key speed test - 18-byte keys - 32.18 cycles/hash
+Small key speed test - 19-byte keys - 32.00 cycles/hash
+Small key speed test - 20-byte keys - 32.12 cycles/hash
Small key speed test - 21-byte keys - 32.00 cycles/hash
Small key speed test - 22-byte keys - 32.00 cycles/hash
Small key speed test - 23-byte keys - 32.00 cycles/hash
-Small key speed test - 24-byte keys - 31.56 cycles/hash
-Small key speed test - 25-byte keys - 32.21 cycles/hash
-Small key speed test - 26-byte keys - 32.55 cycles/hash
-Small key speed test - 27-byte keys - 32.61 cycles/hash
-Small key speed test - 28-byte keys - 32.00 cycles/hash
-Small key speed test - 29-byte keys - 32.00 cycles/hash
-Small key speed test - 30-byte keys - 32.00 cycles/hash
-Small key speed test - 31-byte keys - 32.00 cycles/hash
-Average 30.261 cycles/hash
+Small key speed test - 24-byte keys - 32.00 cycles/hash
+Small key speed test - 25-byte keys - 33.98 cycles/hash
+Small key speed test - 26-byte keys - 33.99 cycles/hash
+Small key speed test - 27-byte keys - 33.98 cycles/hash
+Small key speed test - 28-byte keys - 33.99 cycles/hash
+Small key speed test - 29-byte keys - 34.00 cycles/hash
+Small key speed test - 30-byte keys - 34.00 cycles/hash
+Small key speed test - 31-byte keys - 34.00 cycles/hash
+Small key speed test - 32-byte keys - 34.00 cycles/hash
+Average 31.372 cycles/hash
+Average, weighted by key length freq. 31.054 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 29.943 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 423.533 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 370.325 cycles/op (5.5 stdv)
+Init std HashMapTest: 420.266 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 338.330 cycles/op (2.8 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 306.586 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 256.340 cycles/op (7.1 stdv) ....... PASS
+Init fast HashMapTest: 274.111 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 221.972 cycles/op (1.5 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.704190 seconds
---- Testing xxh128 "xxHash v3, 128-bit" GOOD
+Verification value is 0x00000001 - Testing took 9.093921 seconds
+--- Testing t1ha1_64be "Fast Positive Hash (portable, aims 64-bit, big-endian)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 108 (0x6c) ticks (0x184f922724cc - 0x184f92272460). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 6.527 bytes/cycle - 18672.78 MiB/sec @ 3 ghz
-Alignment 6 - 6.544 bytes/cycle - 18722.25 MiB/sec @ 3 ghz
-Alignment 5 - 6.547 bytes/cycle - 18731.34 MiB/sec @ 3 ghz
-Alignment 4 - 6.557 bytes/cycle - 18759.63 MiB/sec @ 3 ghz
-Alignment 3 - 6.536 bytes/cycle - 18700.77 MiB/sec @ 3 ghz
-Alignment 2 - 6.536 bytes/cycle - 18700.68 MiB/sec @ 3 ghz
-Alignment 1 - 6.540 bytes/cycle - 18710.46 MiB/sec @ 3 ghz
-Alignment 0 - 6.837 bytes/cycle - 19559.53 MiB/sec @ 3 ghz
-Average - 6.578 bytes/cycle - 18819.68 MiB/sec @ 3 ghz
+Alignment 7 - 4.184 bytes/cycle - 11971.42 MiB/sec @ 3 ghz
+Alignment 6 - 4.195 bytes/cycle - 12003.28 MiB/sec @ 3 ghz
+Alignment 5 - 4.194 bytes/cycle - 11999.36 MiB/sec @ 3 ghz
+Alignment 4 - 4.196 bytes/cycle - 12003.79 MiB/sec @ 3 ghz
+Alignment 3 - 4.195 bytes/cycle - 12001.93 MiB/sec @ 3 ghz
+Alignment 2 - 4.192 bytes/cycle - 11992.16 MiB/sec @ 3 ghz
+Alignment 1 - 4.194 bytes/cycle - 11999.57 MiB/sec @ 3 ghz
+Alignment 0 - 4.211 bytes/cycle - 12048.46 MiB/sec @ 3 ghz
+Average - 4.195 bytes/cycle - 12002.50 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 28.24 cycles/hash
-Small key speed test - 2-byte keys - 28.18 cycles/hash
-Small key speed test - 3-byte keys - 28.22 cycles/hash
-Small key speed test - 4-byte keys - 32.00 cycles/hash
-Small key speed test - 5-byte keys - 31.99 cycles/hash
-Small key speed test - 6-byte keys - 31.98 cycles/hash
-Small key speed test - 7-byte keys - 32.00 cycles/hash
-Small key speed test - 8-byte keys - 32.00 cycles/hash
-Small key speed test - 9-byte keys - 34.68 cycles/hash
-Small key speed test - 10-byte keys - 34.69 cycles/hash
-Small key speed test - 11-byte keys - 34.49 cycles/hash
-Small key speed test - 12-byte keys - 34.44 cycles/hash
-Small key speed test - 13-byte keys - 34.68 cycles/hash
-Small key speed test - 14-byte keys - 34.46 cycles/hash
-Small key speed test - 15-byte keys - 34.71 cycles/hash
-Small key speed test - 16-byte keys - 34.87 cycles/hash
+Small key speed test - 1-byte keys - 30.81 cycles/hash
+Small key speed test - 2-byte keys - 30.78 cycles/hash
+Small key speed test - 3-byte keys - 30.80 cycles/hash
+Small key speed test - 4-byte keys - 30.00 cycles/hash
+Small key speed test - 5-byte keys - 30.00 cycles/hash
+Small key speed test - 6-byte keys - 30.00 cycles/hash
+Small key speed test - 7-byte keys - 30.00 cycles/hash
+Small key speed test - 8-byte keys - 30.00 cycles/hash
+Small key speed test - 9-byte keys - 30.00 cycles/hash
+Small key speed test - 10-byte keys - 30.00 cycles/hash
+Small key speed test - 11-byte keys - 30.00 cycles/hash
+Small key speed test - 12-byte keys - 30.00 cycles/hash
+Small key speed test - 13-byte keys - 30.00 cycles/hash
+Small key speed test - 14-byte keys - 30.00 cycles/hash
+Small key speed test - 15-byte keys - 30.00 cycles/hash
+Small key speed test - 16-byte keys - 30.00 cycles/hash
Small key speed test - 17-byte keys - 32.00 cycles/hash
Small key speed test - 18-byte keys - 32.00 cycles/hash
Small key speed test - 19-byte keys - 32.00 cycles/hash
Small key speed test - 20-byte keys - 32.00 cycles/hash
-Small key speed test - 21-byte keys - 33.00 cycles/hash
-Small key speed test - 22-byte keys - 33.00 cycles/hash
-Small key speed test - 23-byte keys - 33.00 cycles/hash
-Small key speed test - 24-byte keys - 33.00 cycles/hash
-Small key speed test - 25-byte keys - 33.00 cycles/hash
-Small key speed test - 26-byte keys - 33.00 cycles/hash
-Small key speed test - 27-byte keys - 33.00 cycles/hash
-Small key speed test - 28-byte keys - 32.97 cycles/hash
-Small key speed test - 29-byte keys - 32.97 cycles/hash
-Small key speed test - 30-byte keys - 32.97 cycles/hash
-Small key speed test - 31-byte keys - 32.97 cycles/hash
-Average 32.662 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 441.970 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 395.271 cycles/op (5.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 312.793 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 256.520 cycles/op (4.3 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.165110 seconds
---- Testing xxh128low "xxHash v3, 128-bit, low 64-bits part" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 6.594 bytes/cycle - 18865.65 MiB/sec @ 3 ghz
-Alignment 6 - 6.620 bytes/cycle - 18940.67 MiB/sec @ 3 ghz
-Alignment 5 - 6.622 bytes/cycle - 18946.39 MiB/sec @ 3 ghz
-Alignment 4 - 6.632 bytes/cycle - 18974.03 MiB/sec @ 3 ghz
-Alignment 3 - 6.623 bytes/cycle - 18948.43 MiB/sec @ 3 ghz
-Alignment 2 - 6.625 bytes/cycle - 18953.28 MiB/sec @ 3 ghz
-Alignment 1 - 6.622 bytes/cycle - 18944.39 MiB/sec @ 3 ghz
-Alignment 0 - 6.912 bytes/cycle - 19774.06 MiB/sec @ 3 ghz
-Average - 6.656 bytes/cycle - 19043.36 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 29.00 cycles/hash
-Small key speed test - 2-byte keys - 29.00 cycles/hash
-Small key speed test - 3-byte keys - 29.00 cycles/hash
-Small key speed test - 4-byte keys - 31.00 cycles/hash
-Small key speed test - 5-byte keys - 31.00 cycles/hash
-Small key speed test - 6-byte keys - 31.00 cycles/hash
-Small key speed test - 7-byte keys - 31.00 cycles/hash
-Small key speed test - 8-byte keys - 31.00 cycles/hash
-Small key speed test - 9-byte keys - 34.00 cycles/hash
-Small key speed test - 10-byte keys - 34.00 cycles/hash
-Small key speed test - 11-byte keys - 34.00 cycles/hash
-Small key speed test - 12-byte keys - 34.00 cycles/hash
-Small key speed test - 13-byte keys - 34.00 cycles/hash
-Small key speed test - 14-byte keys - 34.00 cycles/hash
-Small key speed test - 15-byte keys - 34.00 cycles/hash
-Small key speed test - 16-byte keys - 34.00 cycles/hash
-Small key speed test - 17-byte keys - 31.33 cycles/hash
-Small key speed test - 18-byte keys - 31.00 cycles/hash
-Small key speed test - 19-byte keys - 31.33 cycles/hash
-Small key speed test - 20-byte keys - 31.00 cycles/hash
Small key speed test - 21-byte keys - 32.00 cycles/hash
-Small key speed test - 22-byte keys - 32.22 cycles/hash
-Small key speed test - 23-byte keys - 32.25 cycles/hash
+Small key speed test - 22-byte keys - 32.00 cycles/hash
+Small key speed test - 23-byte keys - 32.00 cycles/hash
Small key speed test - 24-byte keys - 32.00 cycles/hash
-Small key speed test - 25-byte keys - 32.17 cycles/hash
-Small key speed test - 26-byte keys - 32.15 cycles/hash
-Small key speed test - 27-byte keys - 32.12 cycles/hash
-Small key speed test - 28-byte keys - 32.00 cycles/hash
-Small key speed test - 29-byte keys - 32.00 cycles/hash
-Small key speed test - 30-byte keys - 32.00 cycles/hash
-Small key speed test - 31-byte keys - 32.00 cycles/hash
-Average 31.986 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 456.839 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 376.569 cycles/op (7.1 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 296.906 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 250.402 cycles/op (5.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 9.000636 seconds
---- Testing wyhash32low "wyhash v4.1 lower 32bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.959 bytes/cycle - 22770.53 MiB/sec @ 3 ghz
-Alignment 6 - 7.983 bytes/cycle - 22838.37 MiB/sec @ 3 ghz
-Alignment 5 - 7.978 bytes/cycle - 22824.25 MiB/sec @ 3 ghz
-Alignment 4 - 7.971 bytes/cycle - 22806.29 MiB/sec @ 3 ghz
-Alignment 3 - 7.996 bytes/cycle - 22876.29 MiB/sec @ 3 ghz
-Alignment 2 - 7.994 bytes/cycle - 22869.94 MiB/sec @ 3 ghz
-Alignment 1 - 7.992 bytes/cycle - 22865.33 MiB/sec @ 3 ghz
-Alignment 0 - 8.149 bytes/cycle - 23314.74 MiB/sec @ 3 ghz
-Average - 8.003 bytes/cycle - 22895.72 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 27.00 cycles/hash
-Small key speed test - 2-byte keys - 27.00 cycles/hash
-Small key speed test - 3-byte keys - 27.00 cycles/hash
-Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 28.00 cycles/hash
-Small key speed test - 6-byte keys - 28.00 cycles/hash
-Small key speed test - 7-byte keys - 28.00 cycles/hash
-Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 28.00 cycles/hash
-Small key speed test - 10-byte keys - 28.00 cycles/hash
-Small key speed test - 11-byte keys - 28.00 cycles/hash
-Small key speed test - 12-byte keys - 28.00 cycles/hash
-Small key speed test - 13-byte keys - 28.00 cycles/hash
-Small key speed test - 14-byte keys - 28.00 cycles/hash
-Small key speed test - 15-byte keys - 28.00 cycles/hash
-Small key speed test - 16-byte keys - 28.00 cycles/hash
-Small key speed test - 17-byte keys - 30.00 cycles/hash
-Small key speed test - 18-byte keys - 29.98 cycles/hash
-Small key speed test - 19-byte keys - 29.99 cycles/hash
-Small key speed test - 20-byte keys - 29.99 cycles/hash
-Small key speed test - 21-byte keys - 30.00 cycles/hash
-Small key speed test - 22-byte keys - 30.00 cycles/hash
-Small key speed test - 23-byte keys - 30.00 cycles/hash
-Small key speed test - 24-byte keys - 30.00 cycles/hash
-Small key speed test - 25-byte keys - 30.00 cycles/hash
-Small key speed test - 26-byte keys - 30.00 cycles/hash
-Small key speed test - 27-byte keys - 30.00 cycles/hash
-Small key speed test - 28-byte keys - 30.00 cycles/hash
-Small key speed test - 29-byte keys - 30.00 cycles/hash
-Small key speed test - 30-byte keys - 30.00 cycles/hash
-Small key speed test - 31-byte keys - 30.00 cycles/hash
-Average 28.870 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 431.538 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 377.580 cycles/op (5.5 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 310.268 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 260.956 cycles/op (5.6 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.385429 seconds
---- Testing wyhash "wyhash v4.1 (64-bit)" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 7.826 bytes/cycle - 22391.05 MiB/sec @ 3 ghz
-Alignment 6 - 7.849 bytes/cycle - 22456.21 MiB/sec @ 3 ghz
-Alignment 5 - 7.855 bytes/cycle - 22472.91 MiB/sec @ 3 ghz
-Alignment 4 - 7.855 bytes/cycle - 22473.77 MiB/sec @ 3 ghz
-Alignment 3 - 7.858 bytes/cycle - 22481.82 MiB/sec @ 3 ghz
-Alignment 2 - 7.857 bytes/cycle - 22480.02 MiB/sec @ 3 ghz
-Alignment 1 - 7.844 bytes/cycle - 22440.60 MiB/sec @ 3 ghz
-Alignment 0 - 8.007 bytes/cycle - 22907.94 MiB/sec @ 3 ghz
-Average - 7.869 bytes/cycle - 22513.04 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 27.00 cycles/hash
-Small key speed test - 2-byte keys - 27.00 cycles/hash
-Small key speed test - 3-byte keys - 27.00 cycles/hash
-Small key speed test - 4-byte keys - 28.00 cycles/hash
-Small key speed test - 5-byte keys - 28.00 cycles/hash
-Small key speed test - 6-byte keys - 28.00 cycles/hash
-Small key speed test - 7-byte keys - 28.00 cycles/hash
-Small key speed test - 8-byte keys - 28.00 cycles/hash
-Small key speed test - 9-byte keys - 28.00 cycles/hash
-Small key speed test - 10-byte keys - 28.00 cycles/hash
-Small key speed test - 11-byte keys - 28.00 cycles/hash
-Small key speed test - 12-byte keys - 28.00 cycles/hash
-Small key speed test - 13-byte keys - 28.00 cycles/hash
-Small key speed test - 14-byte keys - 28.00 cycles/hash
-Small key speed test - 15-byte keys - 28.00 cycles/hash
-Small key speed test - 16-byte keys - 28.00 cycles/hash
-Small key speed test - 17-byte keys - 30.00 cycles/hash
-Small key speed test - 18-byte keys - 30.00 cycles/hash
-Small key speed test - 19-byte keys - 30.00 cycles/hash
-Small key speed test - 20-byte keys - 30.00 cycles/hash
-Small key speed test - 21-byte keys - 30.00 cycles/hash
-Small key speed test - 22-byte keys - 30.00 cycles/hash
-Small key speed test - 23-byte keys - 30.40 cycles/hash
-Small key speed test - 24-byte keys - 30.00 cycles/hash
-Small key speed test - 25-byte keys - 30.55 cycles/hash
-Small key speed test - 26-byte keys - 30.52 cycles/hash
-Small key speed test - 27-byte keys - 30.51 cycles/hash
-Small key speed test - 28-byte keys - 30.58 cycles/hash
-Small key speed test - 29-byte keys - 30.59 cycles/hash
-Small key speed test - 30-byte keys - 30.58 cycles/hash
-Small key speed test - 31-byte keys - 30.59 cycles/hash
-Average 29.011 cycles/hash
+Small key speed test - 25-byte keys - 34.00 cycles/hash
+Small key speed test - 26-byte keys - 34.00 cycles/hash
+Small key speed test - 27-byte keys - 34.00 cycles/hash
+Small key speed test - 28-byte keys - 34.00 cycles/hash
+Small key speed test - 29-byte keys - 34.00 cycles/hash
+Small key speed test - 30-byte keys - 34.00 cycles/hash
+Small key speed test - 31-byte keys - 34.00 cycles/hash
+Small key speed test - 32-byte keys - 34.00 cycles/hash
+Average 31.575 cycles/hash
+Average, weighted by key length freq. 31.081 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 30.041 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 446.725 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 364.744 cycles/op (9.0 stdv)
+Init std HashMapTest: 416.348 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 337.971 cycles/op (2.7 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 294.890 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 228.761 cycles/op (4.6 stdv) ....... PASS
+Init fast HashMapTest: 272.597 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 226.523 cycles/op (2.5 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 8.481190 seconds
---- Testing nmhash32 "nmhash32" GOOD
+Verification value is 0x00000001 - Testing took 9.111897 seconds
+--- Testing t1ha0_32le "Fast Positive Hash (portable, aims 32-bit, little-endian)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x1857361be76c - 0x1857361be724). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.457 bytes/cycle - 12751.59 MiB/sec @ 3 ghz
-Alignment 6 - 4.463 bytes/cycle - 12767.92 MiB/sec @ 3 ghz
-Alignment 5 - 4.473 bytes/cycle - 12798.06 MiB/sec @ 3 ghz
-Alignment 4 - 4.472 bytes/cycle - 12794.12 MiB/sec @ 3 ghz
-Alignment 3 - 4.473 bytes/cycle - 12796.82 MiB/sec @ 3 ghz
-Alignment 2 - 4.470 bytes/cycle - 12789.39 MiB/sec @ 3 ghz
-Alignment 1 - 4.467 bytes/cycle - 12781.54 MiB/sec @ 3 ghz
-Alignment 0 - 4.474 bytes/cycle - 12801.50 MiB/sec @ 3 ghz
-Average - 4.469 bytes/cycle - 12785.12 MiB/sec @ 3 ghz
+Alignment 7 - 2.540 bytes/cycle - 7267.44 MiB/sec @ 3 ghz
+Alignment 6 - 2.542 bytes/cycle - 7273.32 MiB/sec @ 3 ghz
+Alignment 5 - 2.542 bytes/cycle - 7273.52 MiB/sec @ 3 ghz
+Alignment 4 - 2.544 bytes/cycle - 7277.34 MiB/sec @ 3 ghz
+Alignment 3 - 2.545 bytes/cycle - 7280.81 MiB/sec @ 3 ghz
+Alignment 2 - 2.544 bytes/cycle - 7278.99 MiB/sec @ 3 ghz
+Alignment 1 - 2.545 bytes/cycle - 7280.09 MiB/sec @ 3 ghz
+Alignment 0 - 2.544 bytes/cycle - 7277.75 MiB/sec @ 3 ghz
+Average - 2.543 bytes/cycle - 7276.16 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 44.31 cycles/hash
-Small key speed test - 2-byte keys - 44.00 cycles/hash
-Small key speed test - 3-byte keys - 47.00 cycles/hash
-Small key speed test - 4-byte keys - 44.00 cycles/hash
-Small key speed test - 5-byte keys - 47.19 cycles/hash
-Small key speed test - 6-byte keys - 47.20 cycles/hash
-Small key speed test - 7-byte keys - 47.00 cycles/hash
-Small key speed test - 8-byte keys - 47.46 cycles/hash
-Small key speed test - 9-byte keys - 60.00 cycles/hash
-Small key speed test - 10-byte keys - 60.00 cycles/hash
-Small key speed test - 11-byte keys - 60.00 cycles/hash
-Small key speed test - 12-byte keys - 59.98 cycles/hash
-Small key speed test - 13-byte keys - 59.93 cycles/hash
-Small key speed test - 14-byte keys - 60.00 cycles/hash
-Small key speed test - 15-byte keys - 59.98 cycles/hash
-Small key speed test - 16-byte keys - 59.99 cycles/hash
-Small key speed test - 17-byte keys - 59.92 cycles/hash
-Small key speed test - 18-byte keys - 59.92 cycles/hash
-Small key speed test - 19-byte keys - 59.92 cycles/hash
-Small key speed test - 20-byte keys - 59.93 cycles/hash
-Small key speed test - 21-byte keys - 60.94 cycles/hash
-Small key speed test - 22-byte keys - 60.75 cycles/hash
-Small key speed test - 23-byte keys - 60.77 cycles/hash
-Small key speed test - 24-byte keys - 59.92 cycles/hash
-Small key speed test - 25-byte keys - 61.29 cycles/hash
-Small key speed test - 26-byte keys - 61.26 cycles/hash
-Small key speed test - 27-byte keys - 61.19 cycles/hash
-Small key speed test - 28-byte keys - 59.89 cycles/hash
-Small key speed test - 29-byte keys - 60.84 cycles/hash
-Small key speed test - 30-byte keys - 60.85 cycles/hash
-Small key speed test - 31-byte keys - 60.98 cycles/hash
-Average 56.658 cycles/hash
+Small key speed test - 1-byte keys - 36.96 cycles/hash
+Small key speed test - 2-byte keys - 36.96 cycles/hash
+Small key speed test - 3-byte keys - 36.97 cycles/hash
+Small key speed test - 4-byte keys - 36.16 cycles/hash
+Small key speed test - 5-byte keys - 38.69 cycles/hash
+Small key speed test - 6-byte keys - 38.73 cycles/hash
+Small key speed test - 7-byte keys - 38.67 cycles/hash
+Small key speed test - 8-byte keys - 38.67 cycles/hash
+Small key speed test - 9-byte keys - 43.23 cycles/hash
+Small key speed test - 10-byte keys - 43.23 cycles/hash
+Small key speed test - 11-byte keys - 43.21 cycles/hash
+Small key speed test - 12-byte keys - 43.27 cycles/hash
+Small key speed test - 13-byte keys - 48.87 cycles/hash
+Small key speed test - 14-byte keys - 48.93 cycles/hash
+Small key speed test - 15-byte keys - 48.98 cycles/hash
+Small key speed test - 16-byte keys - 48.85 cycles/hash
+Small key speed test - 17-byte keys - 50.00 cycles/hash
+Small key speed test - 18-byte keys - 50.00 cycles/hash
+Small key speed test - 19-byte keys - 50.00 cycles/hash
+Small key speed test - 20-byte keys - 50.00 cycles/hash
+Small key speed test - 21-byte keys - 54.94 cycles/hash
+Small key speed test - 22-byte keys - 54.93 cycles/hash
+Small key speed test - 23-byte keys - 54.91 cycles/hash
+Small key speed test - 24-byte keys - 54.93 cycles/hash
+Small key speed test - 25-byte keys - 59.30 cycles/hash
+Small key speed test - 26-byte keys - 59.30 cycles/hash
+Small key speed test - 27-byte keys - 59.29 cycles/hash
+Small key speed test - 28-byte keys - 59.27 cycles/hash
+Small key speed test - 29-byte keys - 64.67 cycles/hash
+Small key speed test - 30-byte keys - 64.82 cycles/hash
+Small key speed test - 31-byte keys - 64.83 cycles/hash
+Small key speed test - 32-byte keys - 50.00 cycles/hash
+Average 49.112 cycles/hash
+Average, weighted by key length freq. 49.275 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 45.588 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 450.419 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 390.360 cycles/op (3.9 stdv)
+Init std HashMapTest: 433.178 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 348.944 cycles/op (1.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 339.526 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 271.670 cycles/op (4.3 stdv) ....... PASS
+Init fast HashMapTest: 284.515 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 236.392 cycles/op (1.7 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.453275 seconds
---- Testing nmhash32x "nmhash32x" GOOD
+Verification value is 0x00000001 - Testing took 12.606784 seconds
+--- Testing t1ha0_32be "Fast Positive Hash (portable, aims 32-bit, big-endian)" POOR
[[[ Speed Tests ]]]
+WARNING: timer resolution is 72 (0x48) ticks (0x1861c71af6f8 - 0x1861c71af6b0). Broken VDSO?
Bulk speed test - 262144-byte keys
-Alignment 7 - 4.432 bytes/cycle - 12680.86 MiB/sec @ 3 ghz
-Alignment 6 - 4.443 bytes/cycle - 12711.12 MiB/sec @ 3 ghz
-Alignment 5 - 4.449 bytes/cycle - 12728.66 MiB/sec @ 3 ghz
-Alignment 4 - 4.436 bytes/cycle - 12691.76 MiB/sec @ 3 ghz
-Alignment 3 - 4.432 bytes/cycle - 12681.47 MiB/sec @ 3 ghz
-Alignment 2 - 4.443 bytes/cycle - 12711.93 MiB/sec @ 3 ghz
-Alignment 1 - 4.437 bytes/cycle - 12695.53 MiB/sec @ 3 ghz
-Alignment 0 - 4.445 bytes/cycle - 12716.53 MiB/sec @ 3 ghz
-Average - 4.440 bytes/cycle - 12702.23 MiB/sec @ 3 ghz
+Alignment 7 - 2.408 bytes/cycle - 6887.92 MiB/sec @ 3 ghz
+Alignment 6 - 2.410 bytes/cycle - 6895.73 MiB/sec @ 3 ghz
+Alignment 5 - 2.409 bytes/cycle - 6891.11 MiB/sec @ 3 ghz
+Alignment 4 - 2.393 bytes/cycle - 6846.95 MiB/sec @ 3 ghz
+Alignment 3 - 2.385 bytes/cycle - 6823.62 MiB/sec @ 3 ghz
+Alignment 2 - 2.388 bytes/cycle - 6831.33 MiB/sec @ 3 ghz
+Alignment 1 - 2.392 bytes/cycle - 6844.69 MiB/sec @ 3 ghz
+Alignment 0 - 2.400 bytes/cycle - 6865.56 MiB/sec @ 3 ghz
+Average - 2.398 bytes/cycle - 6860.87 MiB/sec @ 3 ghz
-Small key speed test - 1-byte keys - 29.00 cycles/hash
-Small key speed test - 2-byte keys - 29.00 cycles/hash
-Small key speed test - 3-byte keys - 31.00 cycles/hash
-Small key speed test - 4-byte keys - 29.00 cycles/hash
-Small key speed test - 5-byte keys - 32.66 cycles/hash
-Small key speed test - 6-byte keys - 32.81 cycles/hash
-Small key speed test - 7-byte keys - 32.69 cycles/hash
-Small key speed test - 8-byte keys - 32.78 cycles/hash
-Small key speed test - 9-byte keys - 38.00 cycles/hash
-Small key speed test - 10-byte keys - 38.00 cycles/hash
-Small key speed test - 11-byte keys - 38.00 cycles/hash
-Small key speed test - 12-byte keys - 38.00 cycles/hash
-Small key speed test - 13-byte keys - 38.32 cycles/hash
-Small key speed test - 14-byte keys - 38.59 cycles/hash
-Small key speed test - 15-byte keys - 38.17 cycles/hash
-Small key speed test - 16-byte keys - 38.25 cycles/hash
-Small key speed test - 17-byte keys - 48.25 cycles/hash
-Small key speed test - 18-byte keys - 48.17 cycles/hash
-Small key speed test - 19-byte keys - 48.14 cycles/hash
-Small key speed test - 20-byte keys - 48.16 cycles/hash
-Small key speed test - 21-byte keys - 50.99 cycles/hash
-Small key speed test - 22-byte keys - 50.99 cycles/hash
-Small key speed test - 23-byte keys - 51.00 cycles/hash
-Small key speed test - 24-byte keys - 51.00 cycles/hash
-Small key speed test - 25-byte keys - 53.53 cycles/hash
-Small key speed test - 26-byte keys - 53.16 cycles/hash
-Small key speed test - 27-byte keys - 53.50 cycles/hash
-Small key speed test - 28-byte keys - 53.50 cycles/hash
-Small key speed test - 29-byte keys - 55.45 cycles/hash
-Small key speed test - 30-byte keys - 55.44 cycles/hash
-Small key speed test - 31-byte keys - 55.49 cycles/hash
-Average 42.936 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 444.972 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 368.215 cycles/op (7.6 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 322.800 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 261.021 cycles/op (5.1 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 11.044006 seconds
---- Testing k-hashv32 "Vectorized K-HashV, 32-bit" GOOD
-
-[[[ Speed Tests ]]]
-
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3.159 bytes/cycle - 9037.43 MiB/sec @ 3 ghz
-Alignment 6 - 3.165 bytes/cycle - 9053.77 MiB/sec @ 3 ghz
-Alignment 5 - 3.166 bytes/cycle - 9058.95 MiB/sec @ 3 ghz
-Alignment 4 - 3.164 bytes/cycle - 9051.14 MiB/sec @ 3 ghz
-Alignment 3 - 3.164 bytes/cycle - 9052.72 MiB/sec @ 3 ghz
-Alignment 2 - 3.164 bytes/cycle - 9052.67 MiB/sec @ 3 ghz
-Alignment 1 - 3.148 bytes/cycle - 9006.94 MiB/sec @ 3 ghz
-Alignment 0 - 3.160 bytes/cycle - 9041.62 MiB/sec @ 3 ghz
-Average - 3.161 bytes/cycle - 9044.40 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 50.25 cycles/hash
-Small key speed test - 2-byte keys - 50.00 cycles/hash
-Small key speed test - 3-byte keys - 50.00 cycles/hash
-Small key speed test - 4-byte keys - 48.15 cycles/hash
-Small key speed test - 5-byte keys - 50.44 cycles/hash
-Small key speed test - 6-byte keys - 50.52 cycles/hash
-Small key speed test - 7-byte keys - 50.71 cycles/hash
-Small key speed test - 8-byte keys - 48.46 cycles/hash
-Small key speed test - 9-byte keys - 50.56 cycles/hash
-Small key speed test - 10-byte keys - 50.61 cycles/hash
-Small key speed test - 11-byte keys - 51.15 cycles/hash
-Small key speed test - 12-byte keys - 49.91 cycles/hash
-Small key speed test - 13-byte keys - 51.14 cycles/hash
-Small key speed test - 14-byte keys - 51.00 cycles/hash
-Small key speed test - 15-byte keys - 52.43 cycles/hash
-Small key speed test - 16-byte keys - 51.21 cycles/hash
-Small key speed test - 17-byte keys - 55.68 cycles/hash
-Small key speed test - 18-byte keys - 55.41 cycles/hash
-Small key speed test - 19-byte keys - 56.18 cycles/hash
-Small key speed test - 20-byte keys - 55.71 cycles/hash
-Small key speed test - 21-byte keys - 56.87 cycles/hash
-Small key speed test - 22-byte keys - 56.40 cycles/hash
-Small key speed test - 23-byte keys - 57.63 cycles/hash
-Small key speed test - 24-byte keys - 55.00 cycles/hash
-Small key speed test - 25-byte keys - 57.00 cycles/hash
-Small key speed test - 26-byte keys - 56.80 cycles/hash
-Small key speed test - 27-byte keys - 56.91 cycles/hash
-Small key speed test - 28-byte keys - 55.81 cycles/hash
-Small key speed test - 29-byte keys - 56.96 cycles/hash
-Small key speed test - 30-byte keys - 56.95 cycles/hash
-Small key speed test - 31-byte keys - 58.95 cycles/hash
-Average 53.381 cycles/hash
+Small key speed test - 1-byte keys - 37.00 cycles/hash
+Small key speed test - 2-byte keys - 37.00 cycles/hash
+Small key speed test - 3-byte keys - 37.00 cycles/hash
+Small key speed test - 4-byte keys - 36.61 cycles/hash
+Small key speed test - 5-byte keys - 39.78 cycles/hash
+Small key speed test - 6-byte keys - 39.80 cycles/hash
+Small key speed test - 7-byte keys - 39.78 cycles/hash
+Small key speed test - 8-byte keys - 39.78 cycles/hash
+Small key speed test - 9-byte keys - 44.91 cycles/hash
+Small key speed test - 10-byte keys - 44.91 cycles/hash
+Small key speed test - 11-byte keys - 44.91 cycles/hash
+Small key speed test - 12-byte keys - 44.88 cycles/hash
+Small key speed test - 13-byte keys - 48.85 cycles/hash
+Small key speed test - 14-byte keys - 48.80 cycles/hash
+Small key speed test - 15-byte keys - 48.78 cycles/hash
+Small key speed test - 16-byte keys - 48.75 cycles/hash
+Small key speed test - 17-byte keys - 52.00 cycles/hash
+Small key speed test - 18-byte keys - 52.00 cycles/hash
+Small key speed test - 19-byte keys - 52.00 cycles/hash
+Small key speed test - 20-byte keys - 52.00 cycles/hash
+Small key speed test - 21-byte keys - 55.84 cycles/hash
+Small key speed test - 22-byte keys - 55.81 cycles/hash
+Small key speed test - 23-byte keys - 55.86 cycles/hash
+Small key speed test - 24-byte keys - 55.84 cycles/hash
+Small key speed test - 25-byte keys - 61.12 cycles/hash
+Small key speed test - 26-byte keys - 61.00 cycles/hash
+Small key speed test - 27-byte keys - 61.00 cycles/hash
+Small key speed test - 28-byte keys - 61.13 cycles/hash
+Small key speed test - 29-byte keys - 65.32 cycles/hash
+Small key speed test - 30-byte keys - 65.27 cycles/hash
+Small key speed test - 31-byte keys - 65.33 cycles/hash
+Small key speed test - 32-byte keys - 51.99 cycles/hash
+Average 50.158 cycles/hash
+Average, weighted by key length freq. 50.357 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset)
+Average, weighted by key length freq. 46.344 cycles/hash (using 27.1% of startup-1M UMASH trace dataset)
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 481.366 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 377.858 cycles/op (7.3 stdv)
+Init std HashMapTest: 435.491 cycles/op (104334 inserts, 1% deletions)
+Running std HashMapTest: 350.405 cycles/op (1.9 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 340.450 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 259.249 cycles/op (4.7 stdv) ....... PASS
+Init fast HashMapTest: 286.745 cycles/op (104334 inserts, 1% deletions)
+Running fast HashMapTest: 241.262 cycles/op (2.3 stdv) ....... PASS
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 13.056904 seconds
---- Testing k-hashv64 "Vectorized K-HashV, 64-bit" GOOD
+Verification value is 0x00000001 - Testing took 12.872361 seconds
+--- Testing tifuhash_64 "Tiny Floatingpoint Unique Hash with continued egyptian fractions" GOOD
[[[ Speed Tests ]]]
-Bulk speed test - 262144-byte keys
-Alignment 7 - 3.139 bytes/cycle - 8979.61 MiB/sec @ 3 ghz
-Alignment 6 - 3.142 bytes/cycle - 8988.35 MiB/sec @ 3 ghz
-Alignment 5 - 3.146 bytes/cycle - 9002.12 MiB/sec @ 3 ghz
-Alignment 4 - 3.142 bytes/cycle - 8990.54 MiB/sec @ 3 ghz
-Alignment 3 - 3.140 bytes/cycle - 8984.36 MiB/sec @ 3 ghz
-Alignment 2 - 3.144 bytes/cycle - 8994.99 MiB/sec @ 3 ghz
-Alignment 1 - 3.145 bytes/cycle - 8996.96 MiB/sec @ 3 ghz
-Alignment 0 - 3.141 bytes/cycle - 8986.28 MiB/sec @ 3 ghz
-Average - 3.142 bytes/cycle - 8990.40 MiB/sec @ 3 ghz
-
-Small key speed test - 1-byte keys - 48.86 cycles/hash
-Small key speed test - 2-byte keys - 48.89 cycles/hash
-Small key speed test - 3-byte keys - 50.00 cycles/hash
-Small key speed test - 4-byte keys - 47.34 cycles/hash
-Small key speed test - 5-byte keys - 48.69 cycles/hash
-Small key speed test - 6-byte keys - 49.00 cycles/hash
-Small key speed test - 7-byte keys - 49.99 cycles/hash
-Small key speed test - 8-byte keys - 47.25 cycles/hash
-Small key speed test - 9-byte keys - 49.88 cycles/hash
-Small key speed test - 10-byte keys - 49.94 cycles/hash
-Small key speed test - 11-byte keys - 51.19 cycles/hash
-Small key speed test - 12-byte keys - 49.94 cycles/hash
-Small key speed test - 13-byte keys - 51.22 cycles/hash
-Small key speed test - 14-byte keys - 50.00 cycles/hash
-Small key speed test - 15-byte keys - 51.00 cycles/hash
-Small key speed test - 16-byte keys - 49.84 cycles/hash
-Small key speed test - 17-byte keys - 56.32 cycles/hash
-Small key speed test - 18-byte keys - 56.61 cycles/hash
-Small key speed test - 19-byte keys - 56.30 cycles/hash
-Small key speed test - 20-byte keys - 54.00 cycles/hash
-Small key speed test - 21-byte keys - 57.15 cycles/hash
-Small key speed test - 22-byte keys - 57.13 cycles/hash
-Small key speed test - 23-byte keys - 57.14 cycles/hash
-Small key speed test - 24-byte keys - 54.97 cycles/hash
-Small key speed test - 25-byte keys - 56.42 cycles/hash
-Small key speed test - 26-byte keys - 56.41 cycles/hash
-Small key speed test - 27-byte keys - 57.78 cycles/hash
-Small key speed test - 28-byte keys - 55.86 cycles/hash
-Small key speed test - 29-byte keys - 58.45 cycles/hash
-Small key speed test - 30-byte keys - 57.02 cycles/hash
-Small key speed test - 31-byte keys - 58.59 cycles/hash
-Average 53.005 cycles/hash
-
-[[[ 'Hashmap' Speed Tests ]]]
-
-std::unordered_map
-Init std HashMapTest: 480.170 cycles/op (104334 inserts, 1% deletions)
-Running std HashMapTest: 379.720 cycles/op (4.0 stdv)
-
-greg7mdp/parallel-hashmap
-Init fast HashMapTest: 319.471 cycles/op (104334 inserts, 1% deletions)
-Running fast HashMapTest: 243.538 cycles/op (6.8 stdv) ....... PASS
-
-
-Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
-Verification value is 0x00000001 - Testing took 12.989628 seconds
+WARNING: timer resolution is 72 (0x48) ticks (0x186c91321500 - 0x186c913214b8). Broken VDSO?
+Bulk speed test - 262144-byte keys
+Alignment 7 - 0.056 bytes/cycle - 160.28 MiB/sec @ 3 ghz
+Alignment 6 - 0.056 bytes/cycle - 160.28 MiB/sec @ 3 ghz
+Alignment 5 - 0.056 bytes/cycle - 160.29 MiB/sec @ 3 ghz
+Alignment 4 - 0.056 bytes/cycle - 160.28 MiB/sec @ 3 ghz
+Alignment 3 - 0.055 bytes/cycle - 157.56 MiB/sec @ 3 ghz
+Alignment 2 - 0.055 bytes/cycle - 157.60 MiB/sec @ 3 ghz
+Alignment 1 - 0.055 bytes/cycle - 157.61 MiB/sec @ 3 ghz
+Alignment 0 - 0.055 bytes/cycle - 157.68 MiB/sec @ 3 ghz
+Average - 0.056 bytes/cycle - 158.95 MiB/sec @ 3 ghz
+
+Small key speed test - 1-byte keys - 230.77 cycles/hash
+Small key speed test - 2-byte keys - 242.85 cycles/hash
+Small key speed test - 3-byte keys - 267.90 cycles/hash
+Small key speed test - 4-byte keys - 280.27 cycles/hash
+Small key speed test - 5-byte keys - 296.62 cycles/hash
+Small key speed test - 6-byte keys - 313.70 cycles/hash
+Small key speed test - 7-byte keys - 334.00 cycles/hash
+Small key speed test - 8-byte keys - 351.02 cycles/hash
+Small key speed test - 9-byte keys - 367.54 cycles/hash
+Small key speed test - 10-byte keys - 385.63 cycles/hash
+Small key speed test - 11-byte keys - 403.83 cycles/hash
+Small key speed test - 12-byte keys -
\ No newline at end of file
diff --git a/testspeed-epyc.sh b/testspeed-epyc.sh
new file mode 100755
index 00000000..2376fe40
--- /dev/null
+++ b/testspeed-epyc.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+make -C build
+./start-bench.sh
+if [ -z "$1" ]; then
+ test -f log.speed-epyc && mv log.speed-epyc log.speed-epyc.bak
+ (for g in `build/SMHasher --listnames`; do \
+ build/SMHasher --test=Speed,Hashmap $g 2>&1; done) | tee log.speed-epyc
+ ./speed.pl -h=doc/epyc log.speed-epyc
+else
+ for g in `build/SMHasher --listnames`; do
+ for p in $@; do
+ if [[ $g =~ $p.* ]]; then
+ build/SMHasher --test=Speed,Hashmap $g 2>&1
+ fi
+ done
+ done | tee "log.speed-epyc-$1"
+ ./speed.pl -h=doc/epyc "log.speed-epyc-$1"
+fi
+./stop-bench.sh
diff --git a/testspeed-i7.sh b/testspeed-i7.sh
new file mode 100755
index 00000000..484f5d55
--- /dev/null
+++ b/testspeed-i7.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+make -C build
+./start-bench.sh
+if [ -z "$1" ]; then
+ test -f log.speed-i7-6820 && mv log.speed-i7-6820 log.speed-i7-6820.bak
+ (for g in `build/SMHasher --listnames`; do \
+ build/SMHasher --test=Speed,Hashmap $g 2>&1; done) | tee log.speed-i7-6820
+ ./speed.pl -h=doc/i7 log.speed-i7-6820
+else
+ for g in `build/SMHasher --listnames`; do
+ for p in $@; do
+ if [[ $g =~ $p.* ]]; then
+ build/SMHasher --test=Speed,Hashmap $g 2>&1
+ fi
+ done
+ done | tee "log.speed-i7-6820-$1"
+ ./speed.pl -h=doc/i7 "log.speed-i7-6820-$1"
+fi
+./stop-bench.sh
diff --git a/testspeed.sh b/testspeed.sh
index a21f8c06..e3e3d4f3 100755
--- a/testspeed.sh
+++ b/testspeed.sh
@@ -4,6 +4,7 @@ if [ x$hname = xe495 ]; then
./testspeed-ryzen3.sh $@
exit
fi
+# the new default
#if [ x$hname = xlorikeet ]; then
# ./testspeed-ryzen5.sh $@
# exit
@@ -12,6 +13,14 @@ if [ x$hname = xreini ]; then
./testspeed-intel.sh $@
exit
fi
+if [ x$hname = xreinip50 ]; then
+ ./testspeed-i7.sh $@
+ exit
+fi
+if [ x$hname = xmamba ]; then
+ ./testspeed-epyc.sh $@
+ exit
+fi
if [ x$hname = xairc ]; then
./testspeed-air.sh $@
exit