Thought it would be fun to compare your superstong PRVhash vs my superweak FNV1A-Pippip, sadly no available machine at the moment, yet, I uploaded a .C source which includes your hash in order to compare it against Hardware CRC32C, SHA3, WY, XXH3, XXH64 within the same codepath and the same compiler and options, to be fair, that is.
Allow me to include your function in my amateurish 'Lookuperorama' benchmark, have done it a year ago, it is compileable with Intel C, also with GCC, so will be glad if you yourself take a shot at it. My two 16GB laptops are crunching, pausing may be problematic.
The download link is at:
Lookuperorama.c_r8.zip (7,489,752 bytes): https://drive.google.com/file/d/1ltloR3nCP0zUUA_oN4muqofwdDArO-KK/view?usp=sharing
You see, hashing all positions of a given file with some fixed length is a good idea to measure collisions.
Here comes 'BENCHMARK.bat' it runs all hashers for a given file.
A quick dirty benchmark (on my 32 bit Windows, Core 2) with Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html (570,901 bytes) in chunks a.k.a. Building-Blocks, (Slots=1<<Bits): 20, meaning 10x2^20 total slots in 10 hashtables or 10 x 1,048,576:
Note1: RAW (i.e. 'ON THE FLY') Hashing Speed is given - one order at a time, without touching any SLOTS (uncached RAM).
Note2: Last column contains CUMULATIVE Collisions i.e. TOTAL ones.
Note3: The 570 million are due to the time was under 1 clock, not a bug - just the bench needs bigger files.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Hasher / Speed in Keys/s for | 4 bytes | 6 bytes | 8 bytes | 10 bytes | 12 bytes | 14 bytes | 16 bytes | 18 bytes | 36 bytes | 64 bytes | Total Collisions |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SHA3-224 (Intel v15.0) | 28,587 | 28,632 | 28,453 | 28,543 | 28,543 | 28,299 | 28,587 | 28,565 | 28,587 | 28,607 | 899,364 |
| PRVhash (Intel v15.0) | 33,582,235 | 17,840,500 | 17,840,437 | 12,146,638 | 8,920,156 | 8,920,125 | 7,226,405 | 6,009,305 | 3,299,803 | 1,823,763 | 898,908 |
| WYHASH (Intel v15.0) | 35,681,125 | 33,582,117 | 33,582,000 | 33,581,882 | 35,680,625 | 33,581,647 | 33,581,529 | 17,299,515 | 11,893,041 | 8,919,343 | 898,534 |
| XXH3 (Intel v15.0) | 570,898,000 | 570,896,000 | 570,894,000 | 570,892,000 | 570,890,000 | 570,888,000 | 570,886,000 | 35,680,250 | 17,839,562 | 17,838,687 | 899,046 |
| FNV1A-Pippip-Yurii (Intel v15.0) | 570,898,000 | 570,896,000 | 570,894,000 | 570,892,000 | 570,890,000 | 570,888,000 | 570,886,000 | 570,884,000 | 33,580,352 | 33,578,705 | 899,286 |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE, without touching any SLOTS (uncached RAM):
SHA3-224 (Intel v15.0) : RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 26,566 KEYS-PER-SECOND; all in 200,204 clocks
PRVhash (Intel v15.0) : RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 5,075,124 KEYS-PER-SECOND; all in 1048 clocks
WYHASH (Intel v15.0) : RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 14,774,250 KEYS-PER-SECOND; all in 360 clocks
XXH3 (Intel v15.0) : RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 26,072,205 KEYS-PER-SECOND; all in 204 clocks
FNV1A-Pippip-Yurii (Intel v15.0) : RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 48,352,090 KEYS-PER-SECOND; all in 110 clocks
And the actual console dump, if you can increase 20 (which is hashtable in bits) and 1200 (which is RAM needed for B-trees in MB):
E:\Lookuperorama.c_r8>BENCHMARK.bat Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html
E:\Lookuperorama.c_r8>Lookuperorama_ICC-V15.0_PRV_32bit.exe "Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html" x 20 1200 i
RAW Hashing Speed for key 570,901 bytes long = 118,591,815 118,591,815 118,616,455 118,616,455 118,616,455 | 118,616,455 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 33,582,235 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 06 bytes long = 17,840,500 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 08 bytes long = 17,840,437 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 10 bytes long = 12,146,638 KEYS-PER-SECOND; all in 47 clocks
RAW Hashing Speed for keys 12 bytes long = 8,920,156 KEYS-PER-SECOND; all in 64 clocks
RAW Hashing Speed for keys 14 bytes long = 8,920,125 KEYS-PER-SECOND; all in 64 clocks
RAW Hashing Speed for keys 16 bytes long = 7,226,405 KEYS-PER-SECOND; all in 79 clocks
RAW Hashing Speed for keys 18 bytes long = 6,009,305 KEYS-PER-SECOND; all in 95 clocks
RAW Hashing Speed for keys 36 bytes long = 3,299,803 KEYS-PER-SECOND; all in 173 clocks
RAW Hashing Speed for keys 64 bytes long = 1,823,763 KEYS-PER-SECOND; all in 313 clocks
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 5,075,124 KEYS-PER-SECOND; all in 1048 clocks
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,001,200 MB; Pass #001 of 1 ... DONE; 00,000,044,950 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 005,189,981
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,001,197 MB; Pass #001 of 1 ... DONE; 00,000,233,443 B-trees have been rooted so far; HashtableS_Utilization = 002%; Keys/s = 003,636,280
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,001,188 MB; Pass #001 of 1 ... DONE; 00,000,543,034 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 003,299,965
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,001,170 MB; Pass #001 of 1 ... DONE; 00,000,915,081 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 003,036,659
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,001,146 MB; Pass #001 of 1 ... DONE; 00,001,319,870 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 002,798,480
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,001,119 MB; Pass #001 of 1 ... DONE; 00,001,741,700 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 002,594,945
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,089 MB; Pass #001 of 1 ... DONE; 00,002,171,294 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 002,429,302
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,056 MB; Pass #001 of 1 ... DONE; 00,002,605,134 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 002,274,438
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,021 MB; Pass #001 of 1 ... DONE; 00,003,044,803 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 001,654,684
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,000,969 MB; Pass #001 of 1 ... DONE; 00,003,485,119 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 001,070,990
Leprechaun: (Total Hashing Speed) plus Searches-n-Inserts Per Second: 1,902,944 SNIPS
Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 898,908
Number Of Trees(GREATER THE BETTER): 3,485,119
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 242,400
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2
E:\Lookuperorama.c_r8>Lookuperorama_ICC-V15.0_SHA3_32bit.exe "Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html" x 20 1200 i
RAW Hashing Speed for key 570,901 bytes long = 4,530,960 4,530,960 4,530,960 4,020,429 4,530,960 | 4,530,960 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 28,587 KEYS-PER-SECOND; all in 19970 clocks
RAW Hashing Speed for keys 06 bytes long = 28,632 KEYS-PER-SECOND; all in 19939 clocks
RAW Hashing Speed for keys 08 bytes long = 28,453 KEYS-PER-SECOND; all in 20064 clocks
RAW Hashing Speed for keys 10 bytes long = 28,543 KEYS-PER-SECOND; all in 20001 clocks
RAW Hashing Speed for keys 12 bytes long = 28,543 KEYS-PER-SECOND; all in 20001 clocks
RAW Hashing Speed for keys 14 bytes long = 28,299 KEYS-PER-SECOND; all in 20173 clocks
RAW Hashing Speed for keys 16 bytes long = 28,587 KEYS-PER-SECOND; all in 19970 clocks
RAW Hashing Speed for keys 18 bytes long = 28,565 KEYS-PER-SECOND; all in 19985 clocks
RAW Hashing Speed for keys 36 bytes long = 28,587 KEYS-PER-SECOND; all in 19969 clocks
RAW Hashing Speed for keys 64 bytes long = 28,607 KEYS-PER-SECOND; all in 19954 clocks
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 26,566 KEYS-PER-SECOND; all in 200204 clocks
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,001,200 MB; Pass #001 of 1 ... DONE; 00,000,044,929 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 000,028,366
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,001,197 MB; Pass #001 of 1 ... DONE; 00,000,233,534 B-trees have been rooted so far; HashtableS_Utilization = 002%; Keys/s = 000,028,300
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,001,188 MB; Pass #001 of 1 ... DONE; 00,000,543,036 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 000,028,409
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,001,170 MB; Pass #001 of 1 ... DONE; 00,000,915,267 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 000,028,411
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,001,146 MB; Pass #001 of 1 ... DONE; 00,001,320,039 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 000,028,454
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,001,119 MB; Pass #001 of 1 ... DONE; 00,001,742,076 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 000,028,388
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,089 MB; Pass #001 of 1 ... DONE; 00,002,172,100 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 000,028,365
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,056 MB; Pass #001 of 1 ... DONE; 00,002,605,583 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 000,028,431
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,021 MB; Pass #001 of 1 ... DONE; 00,003,044,763 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 000,028,298
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,000,969 MB; Pass #001 of 1 ... DONE; 00,003,484,663 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 000,028,297
Leprechaun: (Total Hashing Speed) plus Searches-n-Inserts Per Second: 28,261 SNIPS
Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 899,364
Number Of Trees(GREATER THE BETTER): 3,484,663
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 242,855
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2
E:\Lookuperorama.c_r8>Lookuperorama_ICC-V15.0_Pippip_32bit.exe "Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html" x 20 1200 i
RAW Hashing Speed for key 570,901 bytes long = 1,915,775,167 1,823,964,856 1,823,964,856 1,915,775,167 1,823,964,856 | 1,915,775,167 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 570,898,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 06 bytes long = 570,896,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 08 bytes long = 570,894,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 10 bytes long = 570,892,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 12 bytes long = 570,890,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 14 bytes long = 570,888,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 16 bytes long = 570,886,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 18 bytes long = 570,884,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 36 bytes long = 33,580,352 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 64 bytes long = 33,578,705 KEYS-PER-SECOND; all in 17 clocks
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 48,352,090 KEYS-PER-SECOND; all in 110 clocks
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,001,200 MB; Pass #001 of 1 ... DONE; 00,000,044,993 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 006,073,382
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,001,197 MB; Pass #001 of 1 ... DONE; 00,000,233,582 B-trees have been rooted so far; HashtableS_Utilization = 002%; Keys/s = 004,020,394
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,001,188 MB; Pass #001 of 1 ... DONE; 00,000,542,600 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 003,636,267
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,001,170 MB; Pass #001 of 1 ... DONE; 00,000,915,175 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 003,299,953
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,001,146 MB; Pass #001 of 1 ... DONE; 00,001,320,172 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 003,319,127
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,001,119 MB; Pass #001 of 1 ... DONE; 00,001,741,637 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 003,299,930
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,089 MB; Pass #001 of 1 ... DONE; 00,002,171,317 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 003,299,919
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,056 MB; Pass #001 of 1 ... DONE; 00,002,604,920 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 002,798,450
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,021 MB; Pass #001 of 1 ... DONE; 00,003,044,643 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 002,784,712
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,000,969 MB; Pass #001 of 1 ... DONE; 00,003,484,741 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 002,274,254
Leprechaun: (Total Hashing Speed) plus Searches-n-Inserts Per Second: 1,902,944 SNIPS
Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 899,286
Number Of Trees(GREATER THE BETTER): 3,484,741
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 242,687
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2
E:\Lookuperorama.c_r8>Lookuperorama_ICC-V15.0_WY_32bit.exe "Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html" x 20 1200 i
RAW Hashing Speed for key 570,901 bytes long = 828,593,613 828,593,613 828,593,613 828,593,613 829,797,965 | 829,797,965 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 35,681,125 KEYS-PER-SECOND; all in 16 clocks
RAW Hashing Speed for keys 06 bytes long = 33,582,117 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 08 bytes long = 33,582,000 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 10 bytes long = 33,581,882 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 12 bytes long = 35,680,625 KEYS-PER-SECOND; all in 16 clocks
RAW Hashing Speed for keys 14 bytes long = 33,581,647 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 16 bytes long = 33,581,529 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 18 bytes long = 17,299,515 KEYS-PER-SECOND; all in 33 clocks
RAW Hashing Speed for keys 36 bytes long = 11,893,041 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 64 bytes long = 8,919,343 KEYS-PER-SECOND; all in 64 clocks
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 14,774,250 KEYS-PER-SECOND; all in 360 clocks
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,001,200 MB; Pass #001 of 1 ... DONE; 00,000,044,941 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 005,189,981
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,001,197 MB; Pass #001 of 1 ... DONE; 00,000,233,721 B-trees have been rooted so far; HashtableS_Utilization = 002%; Keys/s = 003,613,265
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,001,188 MB; Pass #001 of 1 ... DONE; 00,000,543,031 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 003,636,267
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,001,170 MB; Pass #001 of 1 ... DONE; 00,000,915,409 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 003,299,953
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,001,146 MB; Pass #001 of 1 ... DONE; 00,001,320,678 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 003,036,648
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,001,119 MB; Pass #001 of 1 ... DONE; 00,001,742,342 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 003,299,930
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,089 MB; Pass #001 of 1 ... DONE; 00,002,172,282 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 003,036,627
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,056 MB; Pass #001 of 1 ... DONE; 00,002,606,050 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 002,594,927
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,021 MB; Pass #001 of 1 ... DONE; 00,003,045,377 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 002,418,923
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,000,969 MB; Pass #001 of 1 ... DONE; 00,003,485,493 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 001,915,563
Leprechaun: (Total Hashing Speed) plus Searches-n-Inserts Per Second: 1,902,944 SNIPS
Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 898,534
Number Of Trees(GREATER THE BETTER): 3,485,493
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 241,616
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2
E:\Lookuperorama.c_r8>Lookuperorama_ICC-V15.0_XXH64_32bit.exe "Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html" x 20 1200 i
RAW Hashing Speed for key 570,901 bytes long = 461,894,012 461,894,012 461,894,012 461,894,012 461,894,012 | 461,894,012 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 33,582,235 KEYS-PER-SECOND; all in 17 clocks
RAW Hashing Speed for keys 06 bytes long = 17,840,500 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 08 bytes long = 17,840,437 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 10 bytes long = 11,893,583 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 12 bytes long = 17,840,312 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 14 bytes long = 11,893,500 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 16 bytes long = 11,893,458 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 18 bytes long = 9,061,650 KEYS-PER-SECOND; all in 63 clocks
RAW Hashing Speed for keys 36 bytes long = 4,530,682 KEYS-PER-SECOND; all in 126 clocks
RAW Hashing Speed for keys 64 bytes long = 3,635,910 KEYS-PER-SECOND; all in 157 clocks
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 7,387,125 KEYS-PER-SECOND; all in 720 clocks
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,001,200 MB; Pass #001 of 1 ... DONE; 00,000,044,969 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 004,530,936
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,001,197 MB; Pass #001 of 1 ... DONE; 00,000,233,517 B-trees have been rooted so far; HashtableS_Utilization = 002%; Keys/s = 003,299,976
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,001,188 MB; Pass #001 of 1 ... DONE; 00,000,542,820 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 003,036,670
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,001,170 MB; Pass #001 of 1 ... DONE; 00,000,915,253 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 002,798,490
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,001,146 MB; Pass #001 of 1 ... DONE; 00,001,319,824 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 002,784,829
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,001,119 MB; Pass #001 of 1 ... DONE; 00,001,741,164 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 002,594,945
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,089 MB; Pass #001 of 1 ... DONE; 00,002,170,640 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 002,606,785
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,056 MB; Pass #001 of 1 ... DONE; 00,002,604,525 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 002,274,438
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,021 MB; Pass #001 of 1 ... DONE; 00,003,043,942 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 001,735,155
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,000,969 MB; Pass #001 of 1 ... DONE; 00,003,483,716 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 001,518,186
Leprechaun: (Total Hashing Speed) plus Searches-n-Inserts Per Second: 1,427,208 SNIPS
Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 900,311
Number Of Trees(GREATER THE BETTER): 3,483,716
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 242,761
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2
E:\Lookuperorama.c_r8>Lookuperorama_ICC-V15.0_XXH3_32bit.exe "Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html" x 20 1200 i
RAW Hashing Speed for key 570,901 bytes long = 6,009,484,210 6,009,484,210 6,009,484,210 6,073,414,893 6,009,484,210 | 6,073,414,893 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 570,898,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 06 bytes long = 570,896,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 08 bytes long = 570,894,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 10 bytes long = 570,892,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 12 bytes long = 570,890,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 14 bytes long = 570,888,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 16 bytes long = 570,886,000 KEYS-PER-SECOND; all in 1 clocks
RAW Hashing Speed for keys 18 bytes long = 35,680,250 KEYS-PER-SECOND; all in 16 clocks
RAW Hashing Speed for keys 36 bytes long = 17,839,562 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 64 bytes long = 17,838,687 KEYS-PER-SECOND; all in 32 clocks
The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
RAW Hashing Speed for keys 4,6,8,10,12,14,16,18,36,64 bytes long = 26,072,205 KEYS-PER-SECOND; all in 204 clocks
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,001,200 MB; Pass #001 of 1 ... DONE; 00,000,044,919 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 006,009,452
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,001,197 MB; Pass #001 of 1 ... DONE; 00,000,233,400 B-trees have been rooted so far; HashtableS_Utilization = 002%; Keys/s = 003,636,280
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,001,188 MB; Pass #001 of 1 ... DONE; 00,000,542,711 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 003,299,965
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,001,170 MB; Pass #001 of 1 ... DONE; 00,000,915,142 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 003,636,254
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,001,147 MB; Pass #001 of 1 ... DONE; 00,001,320,402 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 003,020,582
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,001,119 MB; Pass #001 of 1 ... DONE; 00,001,741,938 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 003,020,571
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,089 MB; Pass #001 of 1 ... DONE; 00,002,171,481 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 003,020,560
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,056 MB; Pass #001 of 1 ... DONE; 00,002,605,256 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 002,784,800
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,021 MB; Pass #001 of 1 ... DONE; 00,003,044,824 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 002,594,845
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,000,969 MB; Pass #001 of 1 ... DONE; 00,003,484,981 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 002,274,254
Leprechaun: (Total Hashing Speed) plus Searches-n-Inserts Per Second: 1,902,944 SNIPS
Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 899,046
Number Of Trees(GREATER THE BETTER): 3,484,981
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 241,898
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2
E:\Lookuperorama.c_r8>
Collisionwise, I feel it will be interesting to stress your function by replacing SHA3-224...