What's faster, hashing a string and comparing the hash, or simply comparing the string? This Rust benchmark measures just that.
Here are the results in a benchmark done in my machine:
Timer precision: 23 ns
hashing fastest โ slowest โ median โ mean โ samples โ iters
โโ comparison_long 3.23 ns โ 3.236 ns โ 3.231 ns โ 3.232 ns โ 100 โ 102400
โโ comparison_short 3.231 ns โ 12.12 ns โ 3.233 ns โ 3.334 ns โ 100 โ 102400
โโ comparison_true 143.1 ยตs โ 1.787 ms โ 144.5 ยตs โ 163.2 ยตs โ 100 โ 100
โโ ahash โ โ โ โ โ
โ โโ equal 365.8 ยตs โ 1.913 ms โ 375 ยตs โ 394.2 ยตs โ 100 โ 100
โ โโ long 365.4 ยตs โ 1.755 ms โ 374.5 ยตs โ 388.6 ยตs โ 100 โ 100
โ โฐโ short 6.427 ยตs โ 62.46 ยตs โ 6.489 ยตs โ 7.146 ยตs โ 100 โ 100
โโ blake3 โ โ โ โ โ
โ โโ equal 4.337 ms โ 7.094 ms โ 4.874 ms โ 4.941 ms โ 100 โ 100
โ โโ long 4.491 ms โ 6.591 ms โ 4.813 ms โ 4.891 ms โ 100 โ 100
โ โฐโ short 93.45 ยตs โ 118.7 ยตs โ 93.57 ยตs โ 94.71 ยตs โ 100 โ 100
โโ cityhasher โ โ โ โ โ
โ โโ equal 675.5 ยตs โ 2.43 ms โ 720.7 ยตs โ 763.3 ยตs โ 100 โ 100
โ โโ long 649.7 ยตs โ 2.627 ms โ 716.3 ยตs โ 744.8 ยตs โ 100 โ 100
โ โฐโ short 12.73 ยตs โ 111.2 ยตs โ 12.78 ยตs โ 13.89 ยตs โ 100 โ 100
โโ default_hasher โ โ โ โ โ
โ โโ equal 2.132 ms โ 3.027 ms โ 2.343 ms โ 2.322 ms โ 100 โ 100
โ โโ long 2.322 ms โ 2.461 ms โ 2.333 ms โ 2.343 ms โ 100 โ 100
โ โฐโ short 45.12 ยตs โ 55.72 ยตs โ 45.24 ยตs โ 45.57 ยตs โ 100 โ 100
โโ fasthash โ โ โ โ โ
โ โโ equal 378.7 ยตs โ 396.8 ยตs โ 379.7 ยตs โ 383.4 ยตs โ 100 โ 100
โ โโ long 405.2 ยตs โ 556.6 ยตs โ 415.8 ยตs โ 417.6 ยตs โ 100 โ 100
โ โฐโ short 7.923 ยตs โ 20.42 ยตs โ 7.976 ยตs โ 8.102 ยตs โ 100 โ 100
โโ fnv โ โ โ โ โ
โ โโ equal 8.995 ms โ 11.08 ms โ 9.668 ms โ 9.63 ms โ 100 โ 100
โ โโ long 8.782 ms โ 10.73 ms โ 9.113 ms โ 9.145 ms โ 100 โ 100
โ โฐโ short 165 ยตs โ 385 ยตs โ 170.3 ยตs โ 176.8 ยตs โ 100 โ 100
โโ fxhash โ โ โ โ โ
โ โโ equal 1.528 ms โ 2.738 ms โ 1.537 ms โ 1.552 ms โ 100 โ 100
โ โโ long 1.527 ms โ 2.851 ms โ 1.536 ms โ 1.552 ms โ 100 โ 100
โ โฐโ short 29.66 ยตs โ 84.24 ยตs โ 29.66 ยตs โ 30.42 ยตs โ 100 โ 100
โโ gxhash โ โ โ โ โ
โ โโ equal 351.6 ยตs โ 606.7 ยตs โ 354 ยตs โ 360.3 ยตs โ 100 โ 100
โ โโ long 358.1 ยตs โ 580.3 ยตs โ 364.4 ยตs โ 370.7 ยตs โ 100 โ 100
โ โฐโ short 6.411 ยตs โ 20.41 ยตs โ 6.481 ยตs โ 6.705 ยตs โ 100 โ 100
โโ highway โ โ โ โ โ
โ โโ equal 862.4 ยตs โ 1.023 ms โ 872.3 ยตs โ 876.9 ยตs โ 100 โ 100
โ โโ long 860.5 ยตs โ 979.7 ยตs โ 870.2 ยตs โ 872.5 ยตs โ 100 โ 100
โ โฐโ short 16.79 ยตs โ 29.05 ยตs โ 16.84 ยตs โ 17.11 ยตs โ 100 โ 100
โโ hud_slice_by_8 โ โ โ โ โ
โ โโ equal 3.574 ms โ 4.08 ms โ 3.955 ms โ 3.882 ms โ 100 โ 100
โ โโ long 3.564 ms โ 17.53 ms โ 3.69 ms โ 3.868 ms โ 100 โ 100
โ โฐโ short 69.32 ยตs โ 119.1 ยตs โ 87.84 ยตs โ 86.88 ยตs โ 100 โ 100
โโ meowhash โ โ โ โ โ
โ โโ equal 308.3 ยตs โ 727.4 ยตs โ 324.4 ยตs โ 330.7 ยตs โ 100 โ 100
โ โโ long 291.4 ยตs โ 582.4 ยตs โ 300.9 ยตs โ 307.5 ยตs โ 100 โ 100
โ โฐโ short 6.084 ยตs โ 34.68 ยตs โ 6.286 ยตs โ 6.941 ยตs โ 100 โ 100
โโ rustc_hash โ โ โ โ โ
โ โโ equal 438.9 ยตs โ 803.4 ยตs โ 464.9 ยตs โ 473.4 ยตs โ 100 โ 100
โ โโ long 434.5 ยตs โ 750.1 ยตs โ 462.7 ยตs โ 469 ยตs โ 100 โ 100
โ โฐโ short 8.5 ยตs โ 28.5 ยตs โ 8.792 ยตs โ 9.26 ยตs โ 100 โ 100
โโ wyhash โ โ โ โ โ
โ โโ equal 616.2 ยตs โ 1.367 ms โ 655.9 ยตs โ 673.9 ยตs โ 100 โ 100
โ โโ long 636.5 ยตs โ 1.076 ms โ 681.2 ยตs โ 700.7 ยตs โ 100 โ 100
โ โฐโ short 11.36 ยตs โ 35.87 ยตs โ 12.14 ยตs โ 13.24 ยตs โ 100 โ 100
โโ xxh3 โ โ โ โ โ
โ โโ equal 623.8 ยตs โ 1.094 ms โ 661.1 ยตs โ 696.4 ยตs โ 100 โ 100
โ โโ long 634.5 ยตs โ 1.756 ms โ 998.1 ยตs โ 933.2 ยตs โ 100 โ 100
โ โฐโ short 12.11 ยตs โ 34.39 ยตs โ 12.14 ยตs โ 14.61 ยตs โ 100 โ 100
โฐโ xxhash_rust_xxh3 โ โ โ โ โ
โโ equal 549.6 ยตs โ 1.048 ms โ 585.1 ยตs โ 599.6 ยตs โ 100 โ 100
โโ long 551.4 ยตs โ 951.7 ยตs โ 596.4 ยตs โ 606 ยตs โ 100 โ 100
โฐโ short 10.13 ยตs โ 40.44 ยตs โ 10.19 ยตs โ 11.25 ยตs โ 100 โ 100
Timer precision: 17 ns
small fastest โ slowest โ median โ mean โ samples โ iters
โโ ahash โ โ โ โ โ
โ โโ _100_bytes 50.68 ns โ 17.81 ยตs โ 67.68 ns โ 247.9 ns โ 100 โ 100
โ โโ _100_bytes_x1000 27.13 ยตs โ 49.97 ยตs โ 29.75 ยตs โ 31.17 ยตs โ 100 โ 100
โ โโ _10_bytes 8.903 ns โ 17.05 ns โ 8.931 ns โ 10.53 ns โ 100 โ 12800
โ โโ _10_bytes_x1000 15.26 ยตs โ 34.69 ยตs โ 16.25 ยตs โ 17.01 ยตs โ 100 โ 100
โ โโ _30_bytes 8.919 ns โ 109 ns โ 8.95 ns โ 11.65 ns โ 100 โ 12800
โ โโ _30_bytes_x1000 14.87 ยตs โ 31.48 ยตs โ 15.86 ยตs โ 16.35 ยตs โ 100 โ 100
โ โโ _3_bytes 8.317 ns โ 110.7 ns โ 8.38 ns โ 10.03 ns โ 100 โ 12800
โ โฐโ _3_bytes_x1000 8.615 ยตs โ 15.3 ยตs โ 8.625 ยตs โ 8.815 ยตs โ 100 โ 100
โโ blake3 โ โ โ โ โ
โ โโ _100_bytes 186.6 ns โ 10.77 ยตs โ 242.1 ns โ 405 ns โ 100 โ 100
โ โโ _100_bytes_x1000 160.6 ยตs โ 220.4 ยตs โ 183.2 ยตs โ 185.3 ยตs โ 100 โ 100
โ โโ _10_bytes 90.87 ns โ 878.6 ns โ 91.02 ns โ 102.8 ns โ 100 โ 1600
โ โโ _10_bytes_x1000 89.26 ยตs โ 129.1 ยตs โ 96.92 ยตs โ 100.7 ยตs โ 100 โ 100
โ โโ _30_bytes 91.49 ns โ 1.045 ยตs โ 94.93 ns โ 111.1 ns โ 100 โ 1600
โ โโ _30_bytes_x1000 89.72 ยตs โ 124.6 ยตs โ 95.51 ยตs โ 98.56 ยตs โ 100 โ 100
โ โโ _3_bytes 90.68 ns โ 984.7 ns โ 94.06 ns โ 116.4 ns โ 100 โ 1600
โ โฐโ _3_bytes_x1000 88.2 ยตs โ 180.6 ยตs โ 93.92 ยตs โ 100 ยตs โ 100 โ 100
โโ cityhasher โ โ โ โ โ
โ โโ _100_bytes 49.68 ns โ 3.626 ยตs โ 52.68 ns โ 89.95 ns โ 100 โ 100
โ โโ _100_bytes_x1000 31.87 ยตs โ 110.2 ยตs โ 33.96 ยตs โ 35.56 ยตs โ 100 โ 100
โ โโ _10_bytes 8.837 ns โ 58.2 ns โ 9.423 ns โ 9.763 ns โ 100 โ 25600
โ โโ _10_bytes_x1000 13.91 ยตs โ 33.37 ยตs โ 14.81 ยตs โ 15.97 ยตs โ 100 โ 100
โ โโ _30_bytes 12.74 ns โ 12.92 ns โ 12.8 ns โ 12.8 ns โ 100 โ 25600
โ โโ _30_bytes_x1000 14.51 ยตs โ 101.8 ยตs โ 15.45 ยตs โ 17.33 ยตs โ 100 โ 100
โ โโ _3_bytes 9.435 ns โ 9.477 ns โ 9.46 ns โ 9.455 ns โ 100 โ 25600
โ โฐโ _3_bytes_x1000 8.499 ยตs โ 24.9 ยตs โ 9.114 ยตs โ 9.8 ยตs โ 100 โ 100
โโ default_hasher โ โ โ โ โ
โ โโ _100_bytes 39.93 ns โ 242.7 ns โ 42.82 ns โ 44.23 ns โ 100 โ 6400
โ โโ _100_bytes_x1000 41.28 ยตs โ 62.82 ยตs โ 44.05 ยตs โ 45.79 ยตs โ 100 โ 100
โ โโ _10_bytes 15.19 ns โ 15.98 ns โ 15.26 ns โ 15.25 ns โ 100 โ 12800
โ โโ _10_bytes_x1000 17.74 ยตs โ 38.98 ยตs โ 18.89 ยตs โ 20.41 ยตs โ 100 โ 100
โ โโ _30_bytes 19.78 ns โ 120.5 ns โ 20.45 ns โ 21.35 ns โ 100 โ 12800
โ โโ _30_bytes_x1000 18.96 ยตs โ 55.97 ยตs โ 19.83 ยตs โ 21.22 ยตs โ 100 โ 100
โ โโ _3_bytes 13.63 ns โ 150.6 ns โ 14.1 ns โ 16.96 ns โ 100 โ 12800
โ โฐโ _3_bytes_x1000 12.16 ยตs โ 30.32 ยตs โ 12.62 ยตs โ 13.92 ยตs โ 100 โ 100
โโ fasthash โ โ โ โ โ
โ โโ _100_bytes 17.1 ns โ 119.3 ns โ 17.76 ns โ 20.5 ns โ 100 โ 12800
โ โโ _100_bytes_x1000 28.65 ยตs โ 51.46 ยตs โ 30.56 ยตs โ 32.08 ยตs โ 100 โ 100
โ โโ _10_bytes 6.966 ns โ 99.78 ns โ 7.198 ns โ 9.098 ns โ 100 โ 25600
โ โโ _10_bytes_x1000 15.31 ยตs โ 34.1 ยตs โ 16.51 ยตs โ 17.64 ยตs โ 100 โ 100
โ โโ _30_bytes 11.17 ns โ 64.43 ns โ 11.91 ns โ 13.28 ns โ 100 โ 25600
โ โโ _30_bytes_x1000 21.4 ยตs โ 42.49 ยตs โ 22.77 ยตs โ 23.75 ยตs โ 100 โ 100
โ โโ _3_bytes 7.036 ns โ 56.83 ns โ 7.044 ns โ 7.62 ns โ 100 โ 25600
โ โฐโ _3_bytes_x1000 6.69 ยตs โ 20.28 ยตs โ 6.902 ยตs โ 7.484 ยตs โ 100 โ 100
โโ fnv โ โ โ โ โ
โ โโ _100_bytes 1.519 ns โ 14.41 ns โ 1.577 ns โ 1.82 ns โ 100 โ 102400
โ โโ _100_bytes_x1000 106.4 ยตs โ 322.1 ยตs โ 113.4 ยตs โ 122 ยตs โ 100 โ 100
โ โโ _10_bytes 1.519 ns โ 46.7 ns โ 1.52 ns โ 2.37 ns โ 100 โ 102400
โ โโ _10_bytes_x1000 6.756 ยตs โ 20.05 ยตs โ 7.056 ยตs โ 7.725 ยตs โ 100 โ 100
โ โโ _30_bytes 1.818 ns โ 13.59 ns โ 1.891 ns โ 1.989 ns โ 100 โ 102400
โ โโ _30_bytes_x1000 24.78 ยตs โ 51.03 ยตs โ 26.49 ยตs โ 28.03 ยตs โ 100 โ 100
โ โโ _3_bytes 1.82 ns โ 14.69 ns โ 1.961 ns โ 2.26 ns โ 100 โ 102400
โ โฐโ _3_bytes_x1000 3.37 ยตs โ 9.188 ยตs โ 3.373 ยตs โ 3.559 ยตs โ 100 โ 100
โโ fxhash โ โ โ โ โ
โ โโ _100_bytes 63.62 ns โ 450 ns โ 64.2 ns โ 68.49 ns โ 100 โ 3200
โ โโ _100_bytes_x1000 18.55 ยตs โ 40.92 ยตs โ 18.57 ยตs โ 20.06 ยตs โ 100 โ 100
โ โโ _10_bytes 1.518 ns โ 15.78 ns โ 1.578 ns โ 1.842 ns โ 100 โ 102400
โ โโ _10_bytes_x1000 10.32 ยตs โ 23.67 ยตs โ 10.98 ยตs โ 11.15 ยตs โ 100 โ 100
โ โโ _30_bytes 1.82 ns โ 14.98 ns โ 1.959 ns โ 2.357 ns โ 100 โ 102400
โ โโ _30_bytes_x1000 13.35 ยตs โ 121.7 ยตs โ 13.77 ยตs โ 16.6 ยตs โ 100 โ 100
โ โโ _3_bytes 1.826 ns โ 14.11 ns โ 1.96 ns โ 2.23 ns โ 100 โ 102400
โ โฐโ _3_bytes_x1000 2.405 ยตs โ 15.74 ยตs โ 2.493 ยตs โ 2.606 ยตs โ 100 โ 100
โโ gxhash โ โ โ โ โ
โ โโ _100_bytes 13.56 ns โ 115.1 ns โ 14.04 ns โ 16.11 ns โ 100 โ 12800
โ โโ _100_bytes_x1000 28.84 ยตs โ 79.26 ยตs โ 30.71 ยตs โ 32.29 ยตs โ 100 โ 100
โ โโ _10_bytes 5.497 ns โ 30.08 ns โ 5.513 ns โ 5.774 ns โ 100 โ 51200
โ โโ _10_bytes_x1000 17.89 ยตs โ 31.82 ยตs โ 18.46 ยตs โ 19.7 ยตs โ 100 โ 100
โ โโ _30_bytes 8.114 ns โ 29.98 ns โ 8.208 ns โ 8.427 ns โ 100 โ 25600
โ โโ _30_bytes_x1000 21.49 ยตs โ 42.19 ยตs โ 22.83 ยตs โ 24.19 ยตs โ 100 โ 100
โ โโ _3_bytes 5.308 ns โ 32 ns โ 5.496 ns โ 6.18 ns โ 100 โ 51200
โ โฐโ _3_bytes_x1000 17.29 ยตs โ 43.3 ยตs โ 17.83 ยตs โ 18.62 ยตs โ 100 โ 100
โโ highway โ โ โ โ โ
โ โโ _100_bytes 66.68 ns โ 4.875 ยตs โ 75.68 ns โ 124 ns โ 100 โ 100
โ โโ _100_bytes_x1000 52.8 ยตs โ 94.13 ยตs โ 53.8 ยตs โ 56.92 ยตs โ 100 โ 100
โ โโ _10_bytes 40.32 ns โ 312.7 ns โ 41.74 ns โ 44.19 ns โ 100 โ 6400
โ โโ _10_bytes_x1000 38.89 ยตs โ 223.4 ยตs โ 43.36 ยตs โ 47.45 ยตs โ 100 โ 100
โ โโ _30_bytes 45.18 ns โ 45.7 ns โ 45.57 ns โ 45.59 ns โ 100 โ 6400
โ โโ _30_bytes_x1000 41.84 ยตs โ 67.45 ยตs โ 44.54 ยตs โ 46.42 ยตs โ 100 โ 100
โ โโ _3_bytes 40.13 ns โ 255.1 ns โ 41.6 ns โ 45.61 ns โ 100 โ 6400
โ โฐโ _3_bytes_x1000 38.65 ยตs โ 62.86 ยตs โ 41.17 ยตs โ 43.02 ยตs โ 100 โ 100
โโ hud_slice_by_8 โ โ โ โ โ
โ โโ _100_bytes 97.68 ns โ 6.478 ยตs โ 113.6 ns โ 180.7 ns โ 100 โ 100
โ โโ _100_bytes_x1000 61.4 ยตs โ 112.1 ยตs โ 65.5 ยตs โ 70.94 ยตs โ 100 โ 100
โ โโ _10_bytes 11.78 ns โ 61.81 ns โ 12.41 ns โ 13.79 ns โ 100 โ 25600
โ โโ _10_bytes_x1000 14.12 ยตs โ 39.69 ยตs โ 14.63 ยตs โ 15.87 ยตs โ 100 โ 100
โ โโ _30_bytes 33.48 ns โ 1.39 ยตs โ 33.84 ns โ 50.4 ns โ 100 โ 6400
โ โโ _30_bytes_x1000 30.5 ยตs โ 52.96 ยตs โ 33.36 ยตs โ 34.4 ยตs โ 100 โ 100
โ โโ _3_bytes 8.528 ns โ 59.28 ns โ 8.81 ns โ 9.651 ns โ 100 โ 25600
โ โฐโ _3_bytes_x1000 8.153 ยตs โ 21.71 ยตs โ 8.415 ยตs โ 8.719 ยตs โ 100 โ 100
โโ meowhash โ โ โ โ โ
โ โโ _100_bytes 78.68 ns โ 1.758 ยตs โ 80.68 ns โ 97.98 ns โ 100 โ 100
โ โโ _100_bytes_x1000 64.5 ยตs โ 95.34 ยตs โ 69.32 ยตs โ 71.86 ยตs โ 100 โ 100
โ โโ _10_bytes 57.68 ns โ 63.99 ns โ 58.06 ns โ 58.15 ns โ 100 โ 3200
โ โโ _10_bytes_x1000 55.8 ยตs โ 85.74 ยตs โ 59.43 ยตs โ 61.46 ยตs โ 100 โ 100
โ โโ _30_bytes 53.59 ns โ 463.5 ns โ 57.15 ns โ 64.37 ns โ 100 โ 3200
โ โโ _30_bytes_x1000 56.25 ยตs โ 100.3 ยตs โ 59.96 ยตs โ 63.75 ยตs โ 100 โ 100
โ โโ _3_bytes 56.52 ns โ 220.2 ns โ 58.4 ns โ 59.79 ns โ 100 โ 3200
โ โฐโ _3_bytes_x1000 54.92 ยตs โ 179.4 ยตs โ 59.45 ยตs โ 64.22 ยตs โ 100 โ 100
โโ rustc_hash โ โ โ โ โ
โ โโ _100_bytes 1.575 ns โ 5.994 ns โ 1.577 ns โ 1.627 ns โ 100 โ 102400
โ โโ _100_bytes_x1000 13.66 ยตs โ 31.75 ยตs โ 14.22 ยตs โ 15.08 ยตs โ 100 โ 100
โ โโ _10_bytes 1.638 ns โ 13.53 ns โ 1.639 ns โ 1.76 ns โ 100 โ 102400
โ โโ _10_bytes_x1000 9.719 ยตs โ 36.38 ยตs โ 10.02 ยตs โ 10.65 ยตs โ 100 โ 100
โ โโ _30_bytes 1.889 ns โ 15.14 ns โ 1.96 ns โ 2.195 ns โ 100 โ 102400
โ โโ _30_bytes_x1000 9.719 ยตs โ 22.72 ยตs โ 10.34 ยตs โ 10.61 ยตs โ 100 โ 100
โ โโ _3_bytes 1.817 ns โ 21.57 ns โ 1.826 ns โ 2.083 ns โ 100 โ 102400
โ โฐโ _3_bytes_x1000 3.568 ยตs โ 17.06 ยตs โ 3.575 ยตs โ 3.764 ยตs โ 100 โ 100
โโ wyhash โ โ โ โ โ
โ โโ _100_bytes 16.42 ns โ 110.9 ns โ 17.06 ns โ 17.92 ns โ 100 โ 12800
โ โโ _100_bytes_x1000 18.59 ยตs โ 46.36 ยตs โ 19.87 ยตs โ 20.76 ยตs โ 100 โ 100
โ โโ _10_bytes 9.13 ns โ 9.169 ns โ 9.161 ns โ 9.151 ns โ 100 โ 25600
โ โโ _10_bytes_x1000 10.56 ยตs โ 28.27 ยตs โ 10.91 ยตs โ 11.73 ยตs โ 100 โ 100
โ โโ _30_bytes 11.44 ns โ 64.27 ns โ 11.61 ns โ 12.46 ns โ 100 โ 25600
โ โโ _30_bytes_x1000 11.74 ยตs โ 29.22 ยตs โ 12.49 ยตs โ 13.22 ยตs โ 100 โ 100
โ โโ _3_bytes 9.149 ns โ 58.52 ns โ 9.47 ns โ 9.937 ns โ 100 โ 25600
โ โฐโ _3_bytes_x1000 7.599 ยตs โ 20.92 ยตs โ 8.087 ยตs โ 8.403 ยตs โ 100 โ 100
โโ xxh3 โ โ โ โ โ
โ โโ _100_bytes 2.93 ns โ 7.499 ns โ 2.931 ns โ 2.979 ns โ 100 โ 102400
โ โโ _100_bytes_x1000 17.57 ยตs โ 30.87 ยตs โ 18.14 ยตs โ 18.72 ยตs โ 100 โ 100
โ โโ _10_bytes 2.831 ns โ 15.61 ns โ 2.932 ns โ 3.026 ns โ 100 โ 102400
โ โโ _10_bytes_x1000 10.66 ยตs โ 23.82 ยตs โ 11 ยตs โ 11.37 ยตs โ 100 โ 100
โ โโ _30_bytes 2.734 ns โ 51.68 ns โ 2.833 ns โ 3.942 ns โ 100 โ 102400
โ โโ _30_bytes_x1000 11.56 ยตs โ 31.44 ยตs โ 12.31 ยตs โ 12.76 ยตs โ 100 โ 100
โ โโ _3_bytes 2.735 ns โ 6.887 ns โ 2.933 ns โ 2.924 ns โ 100 โ 102400
โ โฐโ _3_bytes_x1000 4.069 ยตs โ 17.18 ยตs โ 4.334 ยตs โ 4.752 ยตs โ 100 โ 100
โฐโ xxhash_rust_xxh3 โ โ โ โ โ
โโ _100_bytes 50.68 ns โ 3.465 ยตs โ 54.68 ns โ 90.86 ns โ 100 โ 100
โโ _100_bytes_x1000 35.55 ยตs โ 63.06 ยตs โ 37.2 ยตs โ 39.76 ยตs โ 100 โ 100
โโ _10_bytes 23.48 ns โ 123 ns โ 25.05 ns โ 25.69 ns โ 100 โ 12800
โโ _10_bytes_x1000 24.92 ยตs โ 53.82 ยตs โ 27.39 ยตs โ 29.1 ยตs โ 100 โ 100
โโ _30_bytes 23.2 ns โ 126.8 ns โ 24.7 ns โ 25.43 ns โ 100 โ 12800
โโ _30_bytes_x1000 24.52 ยตs โ 51.26 ยตs โ 26.96 ยตs โ 27.73 ยตs โ 100 โ 100
โโ _3_bytes 18.62 ns โ 210.7 ns โ 18.68 ns โ 21.1 ns โ 100 โ 12800
โฐโ _3_bytes_x1000 18.26 ยตs โ 51.02 ยตs โ 20.03 ยตs โ 20.99 ยตs โ 100 โ 100
As you can see, the default stringA == stringB
is about 10^6 times faster than the fastest hashing algorithm. So yeah, hashing is slower than comparing (at least in Rust). This was tested on the article*.txt
files you see on the file tree.
To see the full Criterion report check here
(Git and Cargo must be installed)
Just clone this repo with git clone https://github.com/rosetta-rs/hashing-rosetta-rs
or download the ZIP with the green button, and run cargo bench
.