Feedback, benchmarking PRVhash versus SHA3, WY, XXH3, iSCSI CRC32

Hi Aleksey,
thanks for your work, appreciate your nifty etude despite not understanding how it works.
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>

For comparison it is nice to see your Assembly:
https://godbolt.org/z/ozrhxP
Your main loop being only 18 instructions, but 63 as a whole:
.L6:
        movzx   esi, BYTE PTR [r10]
        mov     rax, rdi
        xor     r8, rsi
.L5:
        imul    r8, rbp
        mov     edx, DWORD PTR [rax]
        add     rax, 4
        mov     rcx, r8
        xor     r8, rsi
        shr     rcx, 32
        xor     r8, rdx
        xor     ecx, edx
        mov     DWORD PTR [rax-4], ecx
        cmp     rax, r9
        jne     .L5
        add     r10, 1
        add     rbp, r8
        cmp     r11, r10
        jne     .L6
.L1:

My whole 'FNV1A-Pippip', 32 instructions:
https://godbolt.org/z/i40ipj
        mov     rax, QWORD PTR [rdi]
        cmp     rsi, 8
        jbe     .L2
        lea     rax, [rsi-1]
        shr     rax, 4
        lea     rdx, [8+rax*8]
        movabs  rax, -3750763034362895579
        sub     rsi, rdx
        add     rdx, rdi
.L3:
        xor     rax, QWORD PTR [rdi]
        add     rdi, 8
        imul    rax, rax, 591798841
        xor     rax, QWORD PTR [rdi-8+rsi]
        imul    rax, rax, 591798841
        cmp     rdi, rdx
        jne     .L3
.L4:
        mov     rdx, rax
        shr     rdx, 32
        xor     eax, edx
        mov     edx, eax
        shr     edx, 16
        xor     eax, edx
        ret
.L2:
        movabs  rdx, -3750763034362895579
        mov     ecx, 8
        sub     ecx, esi
        sal     ecx, 3
        sal     rax, cl
        shr     rax, cl
        xor     rax, rdx
        imul    rax, rax, 591798841
        jmp     .L4

Collisionwise, I feel it will be interesting to stress your function by replacing SHA3-224...

Thanks! Please include the hash length in PRVHASH you've used for comparisons. By the way, I've added prvhash42opt.h with faster 32- and 64-bit hashes. Hashing speed wasn't a factor in my effort. Collision resistance is more important to me.

Please include the hash length in PRVHASH you've used for comparisons.

Will do, hashlen = 4 bytes, tomorrow will share results for your new ones.
The thing that interests me is to reduce the length of keys going to the leaf of B-trees, in order to save much RAM currently I use SHA3-224 to reduce all keys longer than 28 to 28B=7x4B=224bits, my question is could PRVhash say 7x4B ensure collision free hashing, you see SHA3 is 3x slower than Blake, roughly, my wish is to use it even with 5x4B hashlen, the leaves are many millions so every byte counts since my wish is to use RAM instead of external RAM.

You can easily use it for 160-bit hashing, without collisions.

You can easily use it for 160-bit hashing, without collisions.
Wow, that is what I need! Wanna include PRVhash_160 along with SHA3-224 in my Nakamichi compressor in order to deduplicate blocks 64,128 bytes long.

Please re-benchmark the function - I've made an exponential performance improvement in latest version 2.5.

Here comes v2.6:
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 = 117,083,880 117,083,880 117,083,880 117,083,880 117,083,880 | 117,083,880 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 17,840,562 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 06 bytes long = 11,893,666 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 08 bytes long = 11,893,625 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 10 bytes long = 9,061,777 KEYS-PER-SECOND; all in 63 clocks
RAW Hashing Speed for keys 12 bytes long = 7,226,455 KEYS-PER-SECOND; all in 79 clocks
RAW Hashing Speed for keys 14 bytes long = 7,226,430 KEYS-PER-SECOND; all in 79 clocks
RAW Hashing Speed for keys 16 bytes long = 6,073,255 KEYS-PER-SECOND; all in 94 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,036,521 KEYS-PER-SECOND; all in 188 clocks
RAW Hashing Speed for keys 64 bytes long = 1,735,069 KEYS-PER-SECOND; all in 329 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 = 4,477,045 KEYS-PER-SECOND; all in 1188 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,045,011 B-trees have been rooted so far; HashtableS_Utilization = 000%; Keys/s = 004,020,408
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,606 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,479 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,914,663 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,147 MB; Pass #001 of 1 ... DONE; 00,001,319,563 B-trees have been rooted so far; HashtableS_Utilization = 012%; Keys/s = 002,606,803
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,198 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 002,429,310
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,117 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 002,274,446
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,579 B-trees have been rooted so far; HashtableS_Utilization = 024%; Keys/s = 002,146,180
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,844 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 001,518,260
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,162 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,427,208 SNIPS

Number Of Bits (Slots=1<<Bits): 20
Number Of Hash Collisions(Distinct WORDs - Number Of Trees): 899,865
Number Of Trees(GREATER THE BETTER): 3,484,162
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 241,537
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2

Compared to the previous one:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
| PRVhash42_32 version 2.0 (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 |
| PRVhash42_32 version 2.6 (Intel v15.0) |  17,840,562 |  11,893,666 |  12,146,680 |   8,920,187 |   7,226,455 |   7,226,430 |   6,073,255 |   6,009,305 |   3,020,455 |   1,735,069 |          899,865 |
| 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 |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Slower, why?
https://godbolt.org/z/ffe9nK
A quick look at the mainloop shows 21 instructions (3 more):
.L8:
        imul    rbx, r9
        movsx   r8, edx
        movzx   r13d, BYTE PTR [rdi]
        add     edx, 4
        add     r8, r10
        add     esi, 1
        add     rdi, 1
        mov     ecx, DWORD PTR [r8]
        mov     rax, rbx
        shr     rax, 32
        xor     eax, ecx
        mov     DWORD PTR [r8], eax
        mov     r8, r13
        xor     r8, rbx
        mov     ebx, ecx
        xor     rbx, r8
        add     r9, rbx
        cmp     ebp, edx
        je      .L21
        cmp     r12d, esi
        jg      .L8

Want to run it as 64bit code, but have to lose 2 weeks of work on my i5-7200U... can you run it on your machine? If not I have to stop the task.

Please try version 2.7. Note that PRVHASH can create hashes of any length in the same time. So, it's much faster than SHA.

Here comes v2.7:
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 = 204,111,905 204,038,956 204,111,905 204,038,956 202,950,942 | 204,111,905 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 17,840,562 KEYS-PER-SECOND; all in 32 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,299,818 KEYS-PER-SECOND; all in 33 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 = 11,893,541 KEYS-PER-SECOND; all in 48 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 = 8,920,093 KEYS-PER-SECOND; all in 64 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 = 5,189,690 KEYS-PER-SECOND; all in 110 clocks
RAW Hashing Speed for keys 64 bytes long = 3,036,372 KEYS-PER-SECOND; all in 188 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 = 6,801,445 KEYS-PER-SECOND; all in 782 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,991 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,679 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,149 B-trees have been rooted so far; HashtableS_Utilization = 005%; Keys/s = 003,319,151
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,591 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 003,020,592
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,043 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,431 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,137 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 002,419,008
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,593 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,610 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 001,915,657
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,644 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 001,399,112

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): 900,383
Number Of Trees(GREATER THE BETTER): 3,483,644
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 244,039
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 2

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
| PRVhash42_32 version 2.0 (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 |
| PRVhash42_32 version 2.6 (Intel v15.0) |  17,840,562 |  11,893,666 |  12,146,680 |   8,920,187 |   7,226,455 |   7,226,430 |   6,073,255 |   6,009,305 |   3,020,455 |   1,735,069 |          899,865 |
| PRVhash42_32 version 2.7 (Intel v15.0) |  17,840,562 |  17,840,500 |  17,299,818 |  11,893,583 |  11,893,541 |   8,920,125 |   8,920,093 |   9,061,650 |   5,189,690 |   3,036,372 |          900,383 |
| 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 |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Much better speed, indeed.

Please try version 2.7. Note that PRVHASH can create hashes of any length in the same time. So, it's much faster than SHA.

According to the roster above PRVhash42_32 is 3,036,372/28,607= 106x faster than SHA3-224 when hashing 64 bytes, and 5,189,690/28,587= 181x faster when 36, SWEET!
Sure, exactly what I need, already thinking how keys 24/28/36/48/64/128/256 bytes long will be reduced to 20 bytes via PRVhash42_160 version 2.7, how much денежки you want from me in order to use it in Nakamichi?

It's a free software.

Please try version 2.9 - it's even faster now.

Here comes v2.11:
E:\Lookuperorama.c_r9>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 = 410,130,028 414,898,982 410,424,874 405,757,640 410,130,028 | 414,898,982 BYTES-PER-SECOND
RAW Hashing Speed for keys 04 bytes long = 17,840,562 KEYS-PER-SECOND; all in 32 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 = 17,840,375 KEYS-PER-SECOND; all in 32 clocks
RAW Hashing Speed for keys 12 bytes long = 11,893,541 KEYS-PER-SECOND; all in 48 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 = 11,893,416 KEYS-PER-SECOND; all in 48 clocks
RAW Hashing Speed for keys 36 bytes long = 7,226,151 KEYS-PER-SECOND; all in 79 clocks
RAW Hashing Speed for keys 64 bytes long = 4,530,460 KEYS-PER-SECOND; all in 126 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,903,016 KEYS-PER-SECOND; all in 673 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,938 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,554 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,773 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,914,789 B-trees have been rooted so far; HashtableS_Utilization = 008%; Keys/s = 003,319,139
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,319,814 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,396 B-trees have been rooted so far; HashtableS_Utilization = 016%; Keys/s = 002,798,470
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,698 B-trees have been rooted so far; HashtableS_Utilization = 020%; Keys/s = 002,798,460
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,151 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,043,307 B-trees have been rooted so far; HashtableS_Utilization = 029%; Keys/s = 002,274,366
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,482,989 B-trees have been rooted so far; HashtableS_Utilization = 033%; Keys/s = 001,817,955

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): 901,038
Number Of Trees(GREATER THE BETTER): 3,482,989
Number Of LEAFs(littler THE BETTER) not counting ROOT LEAFs: 243,166
Highest Tree not counting ROOT Level i.e. CORONA levels(littler THE BETTER): 1

E:\Lookuperorama.c_r9>

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
| PRVhash42_32 version 2.0 (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 |
| PRVhash42_32 version 2.6 (Intel v15.0)  |  17,840,562 |  11,893,666 |  12,146,680 |   8,920,187 |   7,226,455 |   7,226,430 |   6,073,255 |   6,009,305 |   3,020,455 |   1,735,069 |          899,865 |
| PRVhash42_32 version 2.7 (Intel v15.0)  |  17,840,562 |  17,840,500 |  17,299,818 |  11,893,583 |  11,893,541 |   8,920,125 |   8,920,093 |   9,061,650 |   5,189,690 |   3,036,372 |          900,383 |
| PRVhash42_32 version 2.11 (Intel v15.0) |  17,840,562 |  17,840,500 |  17,840,437 |  17,840,375 |  11,893,541 |  11,893,500 |  11,893,458 |  11,893,416 |   7,226,151 |   4,530,460 |          901,038 |
| 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 fastest so far of all variants, nice.
Now, for keys 64 bytes long, PRVhash42_32 is 4,530,460/28,607=158x faster than SHA3-224, wanna include Blake3 next time, this hasher looks AWESOME!
Wanna, highlight that for the first time I see maximum height of B-trees being 1 - this means the dispersion is best (a single slot houses minimum collisions which lowers the maximum I/O attempts/seeks), whereas the "deceptive" mere collisions is all-high 901,038, my point, this anomaly begs for more tests with bigger files.

I would not worry about 0.19% more collisions, it's due to a better quality randomness. Overly-uniform, unnatural randomness does offer a bit lesser number of collisions.

@Sanmayce I can easily generate default seeds that offer a minimal number of collisions, but such randomness won't be natural. You can try these seed values (replace existing values in prvhash42.h):
lcg =<PHONE_NUMBER>395122929ULL;
Seed =<PHONE_NUMBER>6502886653ULL;

Also update to v2.15 - it should be even faster now.

@Sanmayce Here are values that offer even less number of collisions:
lcg =<PHONE_NUMBER>492786904ULL;
Seed =<PHONE_NUMBER>7613608419ULL;

GCC 7.3.0 complained about this line inline void prvhash42_ec( uint8_t* const, const int ) in prvhash42ec.h, had to change it to inline void prvhash42_ec( uint8_t* const Hash, const int HashLen ).
Anyway, some stats about v.2.15, since the i5-7200U machine has no enough RAM (Windows 10 paused a task using 6GB), I was unable to report collisions for Shakespeare:
Bench #2: Small keys 4,6,8,10,12,14,16,18,36,64 bytes long at first position, in that order, and then advancing one position in the file until the end:
-----------------------------------------------------------------------------
| Hasher / Speed in keys/s for           | 4,6,8,10,12,14,16,18,36,64 bytes |
-----------------------------------------------------------------------------
| WYHASH final (GCC 7.3.0)               |                      222,490,615 |
| FNV1A-Pippip-Yurii (GCC 7.3.0)         |                      312,689,513 | ! Fastest !
| XXH3 0.7.2 (GCC 7.3.0)                 |                      212,674,852 |
| XXH3 0.8.0 (GCC 7.3.0)                 |                      217,472,030 |
| iSCSI CRC32 (GCC 7.3.0)                |                      258,248,035 |
| SHA3-224 (GCC 7.3.0)                   |                           97,766 |
| PRVhash42_32 version 2.11 (GCC 7.3.0)  |                       52,828,821 |
| PRVhash42_32 version 2.15 (GCC 7.3.0)  |                       59,945,658 |
-----------------------------------------------------------------------------

Bench #3: Small keys 4 bytes long at first position, and then advancing one position in the file until the end, then same for 6,8,10,12,14,16,18,36,64:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| WYHASH final (GCC 7.3.0)                | 321,375,277 | 321,375,166 | 321,375,055 | 321,374,944 | 321,374,833 | 321,374,722 | 321,374,611 | 206,597,892 | 186,603,967 | 160,685,972 |             N.A. |
| FNV1A-Pippip-Yurii (GCC 7.3.0)          | 525,886,818 | 482,062,750 | 525,886,454 | 525,886,272 | 525,886,090 | 578,474,500 | 525,885,727 | 385,649,400 | 304,459,105 | 241,028,958 |             N.A. |
| XXH3 0.7.2 (GCC 7.3.0)                  | 241,031,458 | 241,031,375 | 251,510,913 | 275,464,238 | 275,464,142 | 275,464,047 | 275,463,952 | 214,249,666 | 156,343,864 | 156,343,108 |             N.A. |
| XXH3 0.8.0 (GCC 7.3.0)                  | 241,031,458 | 241,031,375 | 251,510,913 | 251,510,826 | 262,943,045 | 262,942,954 | 251,510,565 | 222,490,038 | 160,686,750 | 160,685,972 |             N.A. |
| iSCSI CRC32 (GCC 7.3.0)                 | 723,094,375 | 642,750,333 | 578,475,100 | 525,886,272 | 482,062,250 | 444,980,384 | 413,195,928 | 361,546,312 | 206,597,250 | 109,145,188 |             N.A. |
| SHA3-224 (GCC 7.3.0)                    |      98,094 |      97,975 |      97,890 |      97,965 |      97,879 |      98,187 |      98,473 |      97,885 |      97,751 |      97,364 |             N.A. |
| PRVhash42_32 version 2.11 (GCC 7.3.0)   |  91,821,507 |  91,821,476 |  80,343,763 |  77,129,986 |  68,866,035 |  68,055,823 |  60,892,031 |  60,892,010 |  38,564,820 |  24,511,419 |             N.A. |
| PRVhash42_32 version 2.15 (GCC 7.3.0)   | 101,486,929 | 101,486,894 |  90,386,734 |  91,821,412 |  85,069,808 |  82,639,214 |  76,115,039 |  75,126,506 |  43,823,659 |  24,615,723 |             N.A. |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Note: Latest version is boosted significantly for 4..36 long keys, slightly for 64 long keys.

Thanks, I've fixed the issue with the prvhash42_ec function.

@Sanmayce Hey, you can try v2.21, it's a bit slower, but a lot better randomness.

@Sanmayce v2.22 should be even faster in your test: a lot faster hashing of 64-byte blocks.

Nice, will do extensive (with collision stats) benchmarking when the second laptop with 16GB is ready, in 9 days...

From: Aleksey Vaneev<EMAIL_ADDRESS>Sent: Friday, September 18, 2020 2:01 PM
To: avaneev/prvhash<EMAIL_ADDRESS>Cc: Sanmayce<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [avaneev/prvhash] Feedback, benchmarking PRVhash versus SHA3, WY, XXH3, iSCSI CRC32 (#1)
@Sanmaycehttps://github.com/Sanmayce v2.22 should be even faster in your test: a lot faster hashing of 64-byte blocks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/avaneev/prvhash/issues/1#issuecomment-694802850, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADLJHVHIRIBA42MXUH6F2RLSGM4W3ANCNFSM4P5EK6WA.

@Sanmayce OK, I've just released v2.24 - should be faster than all other versions in your test.

Here comes v2.24:
Much better speed, indeed.
Testmachine: Core 2 4GB
Testcompiler: Intel v15.0 32bit
Testfile: 'Yenne', KAZE_Gulyakovskiyi_E._Dolgiyi_Voshod_Na_Yenne.html (570,901 bytes)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
| PRVhash42_32 version 2.0 (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 |
| PRVhash42_32 version 2.6 (Intel v15.0)  |  17,840,562 |  11,893,666 |  12,146,680 |   8,920,187 |   7,226,455 |   7,226,430 |   6,073,255 |   6,009,305 |   3,020,455 |   1,735,069 |          899,865 |
| PRVhash42_32 version 2.24 (Intel v15.0) |  33,582,235 |  35,681,000 |  35,680,875 |  33,581,882 |  33,581,764 |  35,680,500 |  17,840,187 |  17,840,125 |  17,839,562 |   8,919,343 |          899,902 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Note: Collisions are cumulative for all the 10 hash-tables.
Supersweet! 8,919,343/28,607=311x faster than SHA3-224, assuming PRVhash42_224 keeps the pace.
Testmachine: i5-2430M 16GB
Testcompiler: Intel v15.0 64bit
Testfile: 'Shakespeare', KAZE_www.gutenberg.org_ebooks_100.txt (5,784,758 bytes)
Bench #1: Linear speed, the whole file length as one key:
----------------------------------------------------------------------------
| Hasher / Speed in bytes/s for           |                5,784,758 bytes |
----------------------------------------------------------------------------
| XXH3 0.8.0 (Intel v15.0)                | 8,519,525,773 BYTES-PER-SECOND |
| WYHASH final (Intel v15.0)              | 6,927,853,892 BYTES-PER-SECOND |
| FNV1A-Pippip-Yurii (Intel v15.0)        | 5,321,764,489 BYTES-PER-SECOND |
| iSCSI CRC32 (Intel v15.0)               | 2,786,492,292 BYTES-PER-SECOND |
| PRVhash42_32 version 2.24 (Intel v15.0) | 1,428,335,308 BYTES-PER-SECOND |
| SHA3-224 (Intel v15.0)                  |     9,838,023 BYTES-PER-SECOND |
-----------------------------------------------------------------------------

The hash scanner - hashing in one pass all orders - TESTING CUMULATIVE PERFORMANCE...
Bench #2: Small keys 4,6,8,10,12,14,16,18,36,64 bytes long at first position, in that order, and then advancing one position in the file until the end:
------------------------------------------------------------------------------
| Hasher / Speed in keys/s for            | 4,6,8,10,12,14,16,18,36,64 bytes |
------------------------------------------------------------------------------
| FNV1A-Pippip-Yurii (Intel v15.0)        |      200,859,687 KEYS-PER-SECOND |
| iSCSI CRC32 (Intel v15.0)               |      174,766,132 KEYS-PER-SECOND |
| XXH3 0.8.0 (Intel v15.0)                |      135,157,920 KEYS-PER-SECOND |
| WYHASH final (Intel v15.0)              |      100,779,773 KEYS-PER-SECOND |
| PRVhash42_32 version 2.24 (Intel v15.0) |       25,675,805 KEYS-PER-SECOND |
| SHA3-224 (Intel v15.0)                  |           49,770 KEYS-PER-SECOND |
------------------------------------------------------------------------------

Again, supersweetness! 25,675,805/49,770=515x faster than SHA3-224, assuming PRVhash42_224 keeps the pace.
Bench #3: Small keys 4 bytes long at first position, and then advancing one position in the file until the end, then same for 6,8,10,12,14,16,18,36,64:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| WYHASH final (Intel v15.0)              | 128,550,111 | 128,550,066 | 128,550,022 | 125,755,413 | 125,755,369 | 125,755,326 | 128,549,844 |  81,475,225 |  60,891,821 |  47,030,040 |        4,992,090 |
| XXH3 0.8.0 (Intel v15.0)                | 156,344,729 | 160,687,583 | 160,687,527 | 144,618,725 | 144,618,675 | 144,618,625 | 148,326,743 | 125,755,239 |  86,339,149 |  87,646,893 |        4,995,968 |
| FNV1A-Pippip-Yurii (Intel v15.0)        | 241,031,458 | 241,031,375 | 251,510,913 | 231,389,960 | 222,490,269 | 222,490,192 | 222,490,115 | 170,139,441 | 137,731,500 | 113,425,392 |        4,996,488 |
| SHA3-224 (Intel v15.0)                  |      62,094 |      56,355 |      53,808 |      53,041 |      53,019 |      51,595 |      51,290 |      51,159 |      50,972 |      50,154 |        4,996,663 |
| iSCSI CRC32 (Intel v15.0)               | 525,886,818 | 482,062,750 | 444,980,846 | 361,546,812 | 206,598,107 | 304,460,263 | 170,139,500 | 192,824,700 |  90,386,296 |  55,092,333 |        4,997,190 |
| PRVhash42_32 version 2.24 (Intel v15.0) |  34,027,970 |  35,708,351 |  37,563,318 |  28,218,287 |  29,972,782 |  32,317,011 |  31,438,820 |  24,721,115 |  19,028,694 |  14,354,081 |        4,997,634 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Note0: Collisions are cumulative for all the 10 hash-tables, the table is sorted by 'Total Collisions'.
Note1: The teststand is this, each chunk (i.e. key or Building-Block) is hashed to its own hash-table of size 24bit, thus, all the 10 chunksizes occupy in total 10x2^24 slots.
Note2: For more stable results, the affinity to one core was enforced, also the REAL-TIME priority.
Note3: Number Of Hash Collisions = Distinct WORDs - Number Of Trees, where 'WORDs' equals 'KEYs', 'Trees' equals 'Used Slots'. The last column is CUMULATIVE!
In order to be able to reproduce the benchmark, it is uploaded on my Internet drive:
https://drive.google.com/file/d/1ebGusUORxxE6u-rRP0ue3dylGJ7-RzN_/view?usp=sharing
Aleksey, feel free to run D:\Lookuperorama.c_r10>bench_ICL.bat KAZE_www.gutenberg.org_ebooks_100.txt on some Zen, and share the console log, will put the results in tables as above ones.
Exciting work of yours, salute you.

@Cyan4973 @wangyi-fudan
My latest showdown ... shows latest XXH3 is the fastest (high-quality) hasher, outperforms latest WYHASH in bench #1,#2 and #3.

@Sanmayce Thanks for sharing! You can try PRVHASH 224 in bench #2 yourself to evaluate its speed: it's easy to do the same way you do with SHA3.

@Sanmayce Hi! I suggest you to test the latest Prvhash 2.29 - I think its collision stats should be now more in line with more classic hashing methods. I did improve the hash function considerably in all aspects with several latest versions. It's not too fast, but it won't be ever too fast as for me security and statistical properties are more important than speed.

Thank you.
Will test v2.29 soon in my latest deduplicator, will share inhere the link for C source and how to reproduce the "benchmark" (or rather the collision stress-test)...
Can you elaborate a bit on why v2.24 (using 12 bytes or 96bit output) produced collisions, to me, seeing how compressing 'Silesia' corpus (a popular 200MB testfile) resulted in differences when decompressed (after quick investigation, the first culprits were keys/sequences of ASCII 00, I guess this prompts for revisiting the way such sequences are hashed)- it was counter-intuitive, thought that using aggressively short lengths could be practical, don't get it. You see, I remember you recommended 160bit, but greediness in me dictated to experiment with lower values, this night I ran the same test with 128bit, again comparing gave differences at 00 00 00 ... will retest with v2.29 with 128bit, then with 160bit, tomorrow night...
SHA3-224 in this test works fine, but works so slow, nearly unpractical, therefore looking forward putting PRVhash into use as a main helper in reducing memory footprint in Nakamichi, in next months will throw many testfiles at this "benchmark", wanna find the minimum (160bit is still great) bits producing no collisions...

Sorry, I do not really understand your use case for hashing. Maybe an issue in your compressor? Every version of PRVHASH produced good hashes which passed all SMHasher test. Given this fact I'm not quite sure how it could fail your use case.

96-bit hash has 2^48 collision resistance, meaning there will be about 1 collision per 2^48 different hashed messages, but collision resistance is no guarantee for no collisions. If you are hashing similarly to your test above, for 200 MB file you have 2billion messages, or 2^31 hashes. It's far from 2^48, but there is no guarantee for no collisions. A collision may pop up even if there is only 0.001% chance of it.

SHA3-224 is far higher collision resistance. I think you should have collision resolution scheme in your program.

No, I'm sorry not having explained better, no enough time at the moment.
The idea is to shrink all keys 14,16,18,...256 bytes long (from a given file) down to 12 bytes with your PRV96, it works fine with 'OSHO', 'Autobiography' corpora each 200+MB strong, but when I tried 'Silesia' (having 00 sequences) then differences poped up.
The reason can be as you say on my side, but my first guess is that something with those NULL is going on, will try to device a small testfile having such 00...00 in order to catch the culprit...

I suggest you to try prv2.29 - in some prior version I've made a serious improvement to the "hashing finalization", previously it wasn't optimal.

I've also just tested hashing of an array of zero messages in the range 1 to 256000 bytes - they are hashed like any other messages, collision results are normal.

@Sanmayce How well your compressor works in comparison e.g. to ZIP and LZMA? Your approach sounds very interesting - I've never heard of hash-based compressors before.

Bottomline, first:
Almost 100% the problem with "collisions" is not fault of PRVhash, nor v2.0, nor v2.24, nor v2.29, still I am in dismay since those codepaths in Nakamichi dealing with shrinking the keys are not complicated, I wrote them easily, however obviously something buggy happens on my part, will dig deeper, next week.
Unfortunately, using v2.0 (compiled with Intel v15.0) also resulted in different decompressed file (again at the same around 10MB mark in SILESIA).
First Nakamichi is a texttoy enabling to play with real-life scenarios in hashing/searching/deduplicating. The name of the game is "boosting-text-techniques".
It can be called a compressor (textual one, meaning no good for other data types), but actually it is a microdeduplicator. It uses no entropy coding (as ZIP and LZMA), it simply substitutes.
Your PRVhash fits very well in this tool, yes, I am too not aware of other compressor using (optional) lossy compression to produce lossless output. The priority in Nakamichi always was decompression speed, so resources needed for compression are not important, yet to reduce the huge memory footprint it is a good idea to "compress" the building-blocks of the file, ant then to put them into B-trees.
In order to see the lines concerning SHA and PRV just search through the C source for "//2020-Nov-12", the fragments for both hashes are identical, thus a fair comparison can be made.
Still haven't found the culprit for this problematic SILESIA case, caused by collisions.
I had several ideas how to make a culprit-hunt, but all they require either a lot of time and a lot of CPU power.
Still wish to dump all the ~200 million SILESIA keys in form of:
| PRVhash-96 in HEX        | key order 14, in HEX         |
+--------------------------+------------------------------+
| AFC9..................7B | 1310....................00FF |

Similarly for `MatchLens[MatchLensNUMdummy]={4,6,8,10,12,14,16,18,36,64,24,28,48,56,128,256};`:

| PRVhash-96 in HEX        | key order 16, in HEX             |
+--------------------------+----------------------------------+
| E1F2..................7B | 1310........................23AF |

Dumping them all is big, only order 14 needs 200,000,000x(12x2bytes + 14x2bytes) =~ 10GB, order 256 needs 200,000,000x(12x2bytes + 256x2bytes) =~ 100GB.
Maybe someone has to write a very simple tool doing JUST that...
Up to 256, in this way if there was a collision we would have exactly the keys causing it... wish I had the time and a powerful machine...
Since all keys are hashed into their own hash-pools, this would be instrumental as a torture test.
Regarding the unknown problem causing different keys to have the same hash, my first thought was it is unlikely 96bit to be soo weak, probably the problem is in my code, haven't figured it out yet.
Intel compiler gives no errors, but GCC does:
Output for GCC 7.3.0 with v2.29:
E:\N\Nakamichi_Kaidanji_PRV229>gcc
gcc: fatal error: no input files
compilation terminated.

E:\N\Nakamichi_Kaidanji_PRV229>gcc -O3 -msse4.1 -fomit-frame-pointer Nakamichi_Ryuugan-ditto-1TB_btree.c -o Nakamichi_PRV-96_LITE_GCC_64bit.exe -D_N_XMM -D_N_prefetch_4096 -D_N_alone -D_N_HIGH_PRIORITY -DHashInBITS=24 -DHashChunkSizeInBITS=24 -DRAMpoolInKB=5120 -DBtreeHEURISTIC -D_WIN32_ENVIRONMENT_ -DLongestLineInclusive=128 -DSpeedUpBuilding=320 -DLITE -D_NPRV
In file included from prvhash42.h:34:0,
                 from Nakamichi_Ryuugan-ditto-1TB_btree.c:743:
prvhash42core.h:57:43: error: expected ';', ',' or ')' before '&' token
 inline uint32_t prvhash42_core64( uint64_t& Seed, uint64_t& lcg,
                                           ^
prvhash42core.h:73:43: error: expected ';', ',' or ')' before '&' token
 inline uint16_t prvhash42_core32( uint32_t& Seed, uint32_t& lcg,
                                           ^
prvhash42core.h:89:42: error: expected ';', ',' or ')' before '&' token
 inline uint8_t prvhash42_core16( uint16_t& Seed, uint16_t& lcg,
                                          ^
prvhash42core.h:105:40: error: expected ';', ',' or ')' before '&' token
 inline uint8_t prvhash42_core8( uint8_t& Seed, uint8_t& lcg,
                                        ^
prvhash42core.h:121:40: error: expected ';', ',' or ')' before '&' token
 inline uint8_t prvhash42_core4( uint8_t& Seed, uint8_t& lcg,
                                        ^
prvhash42core.h:140:40: error: expected ';', ',' or ')' before '&' token
 inline uint8_t prvhash42_core2( uint8_t& Seed, uint8_t& lcg,
                                        ^
In file included from Nakamichi_Ryuugan-ditto-1TB_btree.c:743:0:
prvhash42.h: In function 'prvhash42':
prvhash42.h:104:4: warning: implicit declaration of function 'prvhash42_core64'; did you mean 'prvhash42_u32ec'? [-Wimplicit-function-declaration]
    prvhash42_core64( Seed, lcg, *(uint32_t*) ( Hash + hpos ));
    ^~~~~~~~~~~~~~~~
    prvhash42_u32ec

E:\N\Nakamichi_Kaidanji_PRV229>

Output for GCC 7.3.0 with v2.24:
E:\N\Nakamichi_Kaidanji_PRV224>gcc -O3 -msse4.1 -fomit-frame-pointer Nakamichi_Ryuugan-ditto-1TB_btree.c -o Nakamichi_PRV-96_LITE_GCC_64bit.exe -D_N_XMM -D_N_prefetch_4096 -D_N_alone -D_N_HIGH_PRIORITY -DHashInBITS=24 -DHashChunkSizeInBITS=24 -DRAMpoolInKB=5120 -DBtreeHEURISTIC -D_WIN32_ENVIRONMENT_ -DLongestLineInclusive=128 -DSpeedUpBuilding=320 -DLITE -D_NPRV
In file included from prvhash42.h:43:0,
                 from Nakamichi_Ryuugan-ditto-1TB_btree.c:743:
prvhash42ec.h:228:40: error: expected ';', ',' or ')' before '&' token
 inline uint32_t prvhash42_rnd( uint64_t& Seed, uint64_t& lcg )
                                        ^
prvhash42ec.h: In function 'prvhash42_cond':
prvhash42ec.h:261:4: warning: implicit declaration of function 'prvhash42_rnd'; did you mean 'prvhash42_cond'? [-Wimplicit-function-declaration]
    prvhash42_rnd( Seed, lcg );
    ^~~~~~~~~~~~~
    prvhash42_cond

E:\N\Nakamichi_Kaidanji_PRV224>

Looking forward to seeing PRVhash working in Nakamichi as a far more viable alternative to other hashes...
Okay, now the showdown between PRVhash-96 v2.0 and SHA3-96 (first 12bytes taken from the SHA3-224), on i5-7200U, 8GB DDR4 2133MHz:
E:\N\Nakamichi_Kaidanji_PRV20>timer64.exe "Nakamichi_PRV-96_LITE_GCC_64bit.exe" "Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar" "Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar".PRV.Nakamichi 20 2300 i
...
Current priority class is REALTIME_PRIORITY_CLASS.
This compile uses B-trees only, no memmem() invocations - it compresses worse but much faster.
Allocating Source-Buffer 38 MB ...
Allocating Target-Buffer 2,902 MB ...
Source-file-Hash(FNV1A_YoshimitsuTRIAD) = 0xcd46,fbc3
Leprechaun: Memory pool for B-trees is 2,300 MB.
Leprechaun: In this revision 8MB 16-way hash is used which results in 16 x 1,048,576 internal B-Trees of order 3.
Leprechaun: Allocating HASH memory 142,606,401 bytes = 8*(16+1)*2^(20) ... OK
Leprechaun: Allocating memory for B-trees 2301 MB ... OK
Leprechaun: Size of input file: 40,303,104

Leprechaun: Using (first 12 bytes of) PRV-224 for Matches 12+ long, in order to reduce memory footprint.
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,002,300 MB; Pass #000,001 of 000,001 ... DONE; 00,000,047,380 DEFRAGMENTED B-trees have been rooted so far.
            48,515 TotalNonUnique (of length 004) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,002,297 MB; Pass #000,001 of 000,001 ... DONE; 00,000,247,888 DEFRAGMENTED B-trees have been rooted so far.
            222,478 TotalNonUnique (of length 006) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,002,287 MB; Pass #000,001 of 000,001 ... DONE; 00,000,782,848 DEFRAGMENTED B-trees have been rooted so far.
            749,422 TotalNonUnique (of length 008) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,002,253 MB; Pass #000,001 of 000,001 ... DONE; 00,001,642,248 DEFRAGMENTED B-trees have been rooted so far.
            1,796,194 TotalNonUnique (of length 010) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,002,170 MB; Pass #000,001 of 000,001 ... DONE; 00,002,635,634 DEFRAGMENTED B-trees have been rooted so far.
            3,081,115 TotalNonUnique (of length 012) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,002,020 MB; Pass #000,001 of 000,001 ... DONE; 00,003,662,837 DEFRAGMENTED B-trees have been rooted so far.
            4,081,817 TotalNonUnique (of length 014) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,822 MB; Pass #000,001 of 000,001 ... DONE; 00,004,698,075 DEFRAGMENTED B-trees have been rooted so far.
            4,569,580 TotalNonUnique (of length 016) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,599 MB; Pass #000,001 of 000,001 ... DONE; 00,005,733,491 DEFRAGMENTED B-trees have been rooted so far.
            4,581,025 TotalNonUnique (of length 018) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,374 MB; Pass #000,001 of 000,001 ... DONE; 00,006,498,800 DEFRAGMENTED B-trees have been rooted so far.
            1,371,489 TotalNonUnique (of length 036) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,001,306 MB; Pass #000,001 of 000,001 ... DONE; 00,006,957,291 DEFRAGMENTED B-trees have been rooted so far.
            602,894 TotalNonUnique (of length 064) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 024 into B-trees, free RAM in B-tree pool is 00,001,275 MB; Pass #000,001 of 000,001 ... DONE; 00,007,961,001 DEFRAGMENTED B-trees have been rooted so far.
            3,298,133 TotalNonUnique (of length 024) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 028 into B-trees, free RAM in B-tree pool is 00,001,112 MB; Pass #000,001 of 000,001 ... DONE; 00,008,905,130 DEFRAGMENTED B-trees have been rooted so far.
            2,421,610 TotalNonUnique (of length 028) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 048 into B-trees, free RAM in B-tree pool is 00,000,992 MB; Pass #000,001 of 000,001 ... DONE; 00,009,479,038 DEFRAGMENTED B-trees have been rooted so far.
            830,120 TotalNonUnique (of length 048) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 056 into B-trees, free RAM in B-tree pool is 00,000,950 MB; Pass #000,001 of 000,001 ... DONE; 00,009,985,296 DEFRAGMENTED B-trees have been rooted so far.
            691,378 TotalNonUnique (of length 056) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 128 into B-trees, free RAM in B-tree pool is 00,000,914 MB; Pass #000,001 of 000,001 ... DONE; 00,010,240,193 DEFRAGMENTED B-trees have been rooted so far.
            292,062 TotalNonUnique (of length 128) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 256 into B-trees, free RAM in B-tree pool is 00,000,898 MB; Pass #000,001 of 000,001 ... DONE; 00,010,348,163 DEFRAGMENTED B-trees have been rooted so far.
            113,892 TotalNonUnique (of length 256) keys have been inserted into DEFRAGMENTED B-trees.

Histogram (rotate it 90 degrees clockwise) of Unique-Building-Blocks appearing 2[+] times (e.g. 'alfalfa-alfa' stream has 1 BB with length 4 appearing 3 times thus adding 1 to the count for {004]):
  113,892{256]
  292,062{128]
  602,894{064]
  691,378{056]
  830,120{048]
1,371,489{036]
2,421,610{028]
3,298,133{024]
4,581,025{018]
4,569,580{016]
4,081,817{014]
3,081,115{012]
1,796,194{010]
  749,422{008]
  222,478{006]
   48,515{004]

Leprechaun: Total Searches-n-Inserts Per Second: 2,295,768 SNIPS = 1,014,729,716 keys in 442 seconds
Leprechaun: RAM needed to house B-trees (relative to the file being ripped): 36N = 1,409MB
Leprechaun: RAM needed to build B-trees IN ONE PASS: (Target-Buffer = 2,902 MB) x 1 passes = 2,902MB
Note: In case of RAM in spades then may use compile option: -DSpeedUpBuilding=2902

Compressing 40,303,104 bytes ...
-; Each rotation means 64KB are encoded; Speed: 0,133,897 B/s; Done 100%; Compression Ratio: 4.40:1; Matches(16/24/48): 752,671/380,552/16,687; 128[+] long matches: 3,322; ETA: 0.00 hours
NumberOfFullLiterals (lower-the-better): 1272
Tsuyo_HEURISTIC_APPLIED_thrice_back-to-back: 0
NumberOf(Tiny)Matches[Micro]Window (4)[16B]: 9661
NumberOfMatches[Bheema]Window [128GB window]: 6042
RAM-to-RAM performance: 133897 B/s.
Compressed to 9,150,137 bytes.
Source-file-Hash(FNV1A_YoshimitsuTRIAD) = 0xcd46,fbc3
Target-file-Hash(FNV1A_YoshimitsuTRIAD) = 0x3168,4dc9

Kernel  Time =     1.078 =    0%
User    Time =   739.796 =   98%
Process Time =   740.875 =   99%    Virtual  Memory =   5389 MB
Global  Time =   747.291 =  100%    Physical Memory =   4489 MB

E:\N\Nakamichi_Kaidanji_PRV20>"Nakamichi_PRV-96_LITE_GCC_64bit.exe" "Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar".PRV.Nakamichi 1>prv

E:\N\Nakamichi_Kaidanji_PRV20>fc "Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar" prv /b
Comparing files Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar and PRV
FC: no differences encountered

E:\N\Nakamichi_Kaidanji_PRV20>timer64.exe Nakamichi_SHA3-96_LITE_GCC_64bit.exe "Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar" "Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar".SHA.Nakamichi 20 2300 i
...
Current priority class is REALTIME_PRIORITY_CLASS.
This compile uses B-trees only, no memmem() invocations - it compresses worse but much faster.
Allocating Source-Buffer 38 MB ...
Allocating Target-Buffer 2,902 MB ...
Source-file-Hash(FNV1A_YoshimitsuTRIAD) = 0xcd46,fbc3
Leprechaun: Memory pool for B-trees is 2,300 MB.
Leprechaun: In this revision 8MB 16-way hash is used which results in 16 x 1,048,576 internal B-Trees of order 3.
Leprechaun: Allocating HASH memory 142,606,401 bytes = 8*(16+1)*2^(20) ... OK
Leprechaun: Allocating memory for B-trees 2301 MB ... OK
Leprechaun: Size of input file: 40,303,104

Leprechaun: Using (first 12 bytes of) SHA3-224 for Matches 12+ long, in order to reduce memory footprint.
Leprechaun: Inserting keys/BBs of order 004 into B-trees, free RAM in B-tree pool is 00,002,300 MB; Pass #000,001 of 000,001 ... DONE; 00,000,047,380 DEFRAGMENTED B-trees have been rooted so far.
            48,515 TotalNonUnique (of length 004) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 006 into B-trees, free RAM in B-tree pool is 00,002,297 MB; Pass #000,001 of 000,001 ... DONE; 00,000,247,888 DEFRAGMENTED B-trees have been rooted so far.
            222,478 TotalNonUnique (of length 006) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 008 into B-trees, free RAM in B-tree pool is 00,002,287 MB; Pass #000,001 of 000,001 ... DONE; 00,000,782,848 DEFRAGMENTED B-trees have been rooted so far.
            749,422 TotalNonUnique (of length 008) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 010 into B-trees, free RAM in B-tree pool is 00,002,253 MB; Pass #000,001 of 000,001 ... DONE; 00,001,642,248 DEFRAGMENTED B-trees have been rooted so far.
            1,796,194 TotalNonUnique (of length 010) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 012 into B-trees, free RAM in B-tree pool is 00,002,170 MB; Pass #000,001 of 000,001 ... DONE; 00,002,635,634 DEFRAGMENTED B-trees have been rooted so far.
            3,081,115 TotalNonUnique (of length 012) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 014 into B-trees, free RAM in B-tree pool is 00,002,020 MB; Pass #000,001 of 000,001 ... DONE; 00,003,662,822 DEFRAGMENTED B-trees have been rooted so far.
            4,081,817 TotalNonUnique (of length 014) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 016 into B-trees, free RAM in B-tree pool is 00,001,822 MB; Pass #000,001 of 000,001 ... DONE; 00,004,698,017 DEFRAGMENTED B-trees have been rooted so far.
            4,569,580 TotalNonUnique (of length 016) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 018 into B-trees, free RAM in B-tree pool is 00,001,599 MB; Pass #000,001 of 000,001 ... DONE; 00,005,733,402 DEFRAGMENTED B-trees have been rooted so far.
            4,581,025 TotalNonUnique (of length 018) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 036 into B-trees, free RAM in B-tree pool is 00,001,374 MB; Pass #000,001 of 000,001 ... DONE; 00,006,498,404 DEFRAGMENTED B-trees have been rooted so far.
            1,371,489 TotalNonUnique (of length 036) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 064 into B-trees, free RAM in B-tree pool is 00,001,306 MB; Pass #000,001 of 000,001 ... DONE; 00,006,956,469 DEFRAGMENTED B-trees have been rooted so far.
            602,894 TotalNonUnique (of length 064) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 024 into B-trees, free RAM in B-tree pool is 00,001,275 MB; Pass #000,001 of 000,001 ... DONE; 00,007,960,134 DEFRAGMENTED B-trees have been rooted so far.
            3,298,133 TotalNonUnique (of length 024) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 028 into B-trees, free RAM in B-tree pool is 00,001,112 MB; Pass #000,001 of 000,001 ... DONE; 00,008,904,707 DEFRAGMENTED B-trees have been rooted so far.
            2,421,610 TotalNonUnique (of length 028) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 048 into B-trees, free RAM in B-tree pool is 00,000,992 MB; Pass #000,001 of 000,001 ... DONE; 00,009,477,717 DEFRAGMENTED B-trees have been rooted so far.
            830,120 TotalNonUnique (of length 048) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 056 into B-trees, free RAM in B-tree pool is 00,000,950 MB; Pass #000,001 of 000,001 ... DONE; 00,009,983,940 DEFRAGMENTED B-trees have been rooted so far.
            691,378 TotalNonUnique (of length 056) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 128 into B-trees, free RAM in B-tree pool is 00,000,914 MB; Pass #000,001 of 000,001 ... DONE; 00,010,238,774 DEFRAGMENTED B-trees have been rooted so far.
            292,062 TotalNonUnique (of length 128) keys have been inserted into DEFRAGMENTED B-trees.
Leprechaun: Inserting keys/BBs of order 256 into B-trees, free RAM in B-tree pool is 00,000,898 MB; Pass #000,001 of 000,001 ... DONE; 00,010,346,734 DEFRAGMENTED B-trees have been rooted so far.
            113,892 TotalNonUnique (of length 256) keys have been inserted into DEFRAGMENTED B-trees.

Histogram (rotate it 90 degrees clockwise) of Unique-Building-Blocks appearing 2[+] times (e.g. 'alfalfa-alfa' stream has 1 BB with length 4 appearing 3 times thus adding 1 to the count for {004]):
  113,892{256]
  292,062{128]
  602,894{064]
  691,378{056]
  830,120{048]
1,371,489{036]
2,421,610{028]
3,298,133{024]
4,581,025{018]
4,569,580{016]
4,081,817{014]
3,081,115{012]
1,796,194{010]
  749,422{008]
  222,478{006]
   48,515{004]

Leprechaun: Total Searches-n-Inserts Per Second: 192,110 SNIPS = 1,014,729,716 keys in 5,282 seconds
Leprechaun: RAM needed to house B-trees (relative to the file being ripped): 36N = 1,409MB
Leprechaun: RAM needed to build B-trees IN ONE PASS: (Target-Buffer = 2,902 MB) x 1 passes = 2,902MB
Note: In case of RAM in spades then may use compile option: -DSpeedUpBuilding=2902

Compressing 40,303,104 bytes ...
-; Each rotation means 64KB are encoded; Speed: 0,007,361 B/s; Done 100%; Compression Ratio: 4.40:1; Matches(16/24/48): 752,671/380,552/16,687; 128[+] long matches: 3,322; ETA: 0.00 hours
NumberOfFullLiterals (lower-the-better): 1272
Tsuyo_HEURISTIC_APPLIED_thrice_back-to-back: 0
NumberOf(Tiny)Matches[Micro]Window (4)[16B]: 9661
NumberOfMatches[Bheema]Window [128GB window]: 6042
RAM-to-RAM performance: 7361 B/s.
Compressed to 9,150,137 bytes.
Source-file-Hash(FNV1A_YoshimitsuTRIAD) = 0xcd46,fbc3
Target-file-Hash(FNV1A_YoshimitsuTRIAD) = 0x3168,4dc9

Kernel  Time =     1.218 =    0%
User    Time = 10748.718 =   99%
Process Time = 10749.937 =   99%    Virtual  Memory =   5389 MB
Global  Time = 10757.582 =  100%    Physical Memory =   4488 MB

The oldest-n-slowest of your versions (which looks as a prime candidate to me) is effectively 10757s/747s=14.4x faster, in a fair 1on1 test.
You can see the full console dump in the results_i5-7200U.txt included in the latest Nakamichi: www.sanmayce.com/Nakamichi/Nakamichi_Kaidanji_PRV20.zip

How well your compressor works in comparison e.g. to ZIP and LZMA?

Better than ZIP and worse than LZMA, as expected, the thing is that the approach is different, good only for texts, very good for big texts.
Talking of ZIP, in 'Dostoyevski' even the best ZIP known to me Eric Biggers' LIBDEFLATE is outperformed (decompression-wise and ratio-wise).
Using inikep's bench:
E:\N\Nakamichi_Kaidanji_PRV20>lzbench18 -c4 -i1,15 -o3 -elzham,4/slz_deflate,3/tornado,16/bzip2,9/zstd,22/zstdLDM,22/fastlzma2,10/brotli,1,2,3,5,11/crush,2/density,3/fastlz,2/gipfeli/lzo1b,999/libdeflate,1,12/lizard,19,29,39,49/lzf,1/lzfse/lzjb/lzma,1,9/lzrw,5/lzsse2,1,17/quicklz,3/snappy/xpack,1,9/xz,9/yappy,99/zlib,1,2,3,9 ""Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar""
lzbench 1.8 (64-bit Windows)   Assembled by P.Skibinski
The results sorted by column number 4:
Compressor name         Compress. Decompress.  Orig. size  Compr. size  Ratio Filename
xz 5.2.4 -9              1.20 MB/s   102 MB/s    40303104      6941839  17.22 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzma 19.00 -9            1.18 MB/s   107 MB/s    40303104      6942920  17.23 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzham 1.0 -d26 -4        0.86 MB/s   258 MB/s    40303104      6998371  17.36 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
zstd 1.4.3 -22           1.31 MB/s   593 MB/s    40303104      7038628  17.46 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
zstdLDM 1.4.3 -22        1.32 MB/s   590 MB/s    40303104      7041901  17.47 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
bzip2 1.0.8 -9             10 MB/s    26 MB/s    40303104      7125183  17.68 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
fastlzma2 1.0.1 -10      2.98 MB/s    95 MB/s    40303104      7129376  17.69 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
tornado 0.6a -16         1.49 MB/s   242 MB/s    40303104      7132739  17.70 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
brotli 2019-10-01 -11    0.39 MB/s   472 MB/s    40303104      7405212  18.37 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lizard 1.0 -49           1.36 MB/s   928 MB/s    40303104      8061821  20.00 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar

Nakamichi_Kaidanji_PRV20 0.05 MB/s  1103 MB/s                  9150137        ! 40,303,104B/747s = 52KB/s ! outside lzbench !

crush 1.0 -2             0.07 MB/s   352 MB/s    40303104      9263238  22.98 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lizard 1.0 -29           1.40 MB/s  1221 MB/s    40303104      9438742  23.42 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
brotli 2019-10-01 -5       23 MB/s   461 MB/s    40303104      9830695  24.39 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
xpack 2016-06-02 -9      4.53 MB/s   935 MB/s    40303104      9948452  24.68 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lizard 1.0 -39           4.25 MB/s  1844 MB/s    40303104     10064398  24.97 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
libdeflate 1.3 -12       3.59 MB/s  1036 MB/s    40303104     10073076  24.99 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzsse2 2019-04-18 -17    4.75 MB/s  4029 MB/s    40303104     10359314  25.70 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
zlib 1.2.11 -9           4.36 MB/s   299 MB/s    40303104     10771354  26.73 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzma 19.00 -1              16 MB/s    63 MB/s    40303104     10978703  27.24 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzo1b 2.10 -999          4.15 MB/s   580 MB/s    40303104     11728605  29.10 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lizard 1.0 -19           4.43 MB/s  2633 MB/s    40303104     11812204  29.31 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
brotli 2019-10-01 -3       69 MB/s   385 MB/s    40303104     11988003  29.74 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzfse 2017-03-08           50 MB/s   542 MB/s    40303104     12239442  30.37 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
brotli 2019-10-01 -2       86 MB/s   356 MB/s    40303104     12351203  30.65 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
brotli 2019-10-01 -1      165 MB/s   351 MB/s    40303104     12670827  31.44 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
zlib 1.2.11 -3             33 MB/s   284 MB/s    40303104     12792829  31.74 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
libdeflate 1.3 -1         141 MB/s   772 MB/s    40303104     13457486  33.39 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
xpack 2016-06-02 -1       121 MB/s   513 MB/s    40303104     14072776  34.92 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
zlib 1.2.11 -2             57 MB/s   265 MB/s    40303104     14152669  35.12 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
yappy 2014-03-22 -99       56 MB/s  1922 MB/s    40303104     15109577  37.49 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
zlib 1.2.11 -1             68 MB/s   246 MB/s    40303104     15173875  37.65 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
quicklz 1.5.0 -3           37 MB/s   561 MB/s    40303104     16194509  40.18 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
gipfeli 2016-07-13        234 MB/s   443 MB/s    40303104     16243953  40.30 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzrw 15-Jul-1991 -5        90 MB/s   411 MB/s    40303104     16370457  40.62 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
density 0.14.2 -3         401 MB/s   363 MB/s    40303104     17802558  44.17 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzsse2 2019-04-18 -1       14 MB/s  2373 MB/s    40303104     18298841  45.40 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
snappy 2019-09-30         242 MB/s   843 MB/s    40303104     19976663  49.57 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
fastlz 0.1 -2             246 MB/s   385 MB/s    40303104     20596666  51.10 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzf 3.6 -1                232 MB/s   473 MB/s    40303104     20904695  51.87 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
slz_deflate 1.0.0 -3      207 MB/s   248 MB/s    40303104     21287369  52.82 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
lzjb 2010                 177 MB/s   287 MB/s    40303104     25454117  63.16 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
memcpy                  10972 MB/s 11694 MB/s    40303104     40303104 100.00 Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar

E:\N\Nakamichi_Kaidanji_PRV20>

Compared also to the latest versions of Yann's LZ4 and ZSTD:
E:\N\Nakamichi_Kaidanji_PRV20>lz4_win64_v1_9_3.exe -b1 -e12 -i9 --no-frame-crc ""Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar""
Benchmarking levels from 1 to 12
 1#mes_(Russian).tar :  40303104 ->  19276004 (2.091), 316.7 MB/s ,2335.4 MB/s
 2#mes_(Russian).tar :  40303104 ->  19276004 (2.091), 316.7 MB/s ,2331.5 MB/s
 3#mes_(Russian).tar :  40303104 ->  15235909 (2.645),  65.0 MB/s ,2603.3 MB/s
 4#mes_(Russian).tar :  40303104 ->  14098086 (2.859),  48.1 MB/s ,2720.9 MB/s
 5#mes_(Russian).tar :  40303104 ->  13234920 (3.045),  34.1 MB/s ,2813.2 MB/s
 6#mes_(Russian).tar :  40303104 ->  12641222 (3.188),  23.4 MB/s ,2874.7 MB/s
 7#mes_(Russian).tar :  40303104 ->  12288831 (3.280),  16.3 MB/s ,2913.0 MB/s
 8#mes_(Russian).tar :  40303104 ->  12125256 (3.324),  12.1 MB/s ,2928.7 MB/s
 9#mes_(Russian).tar :  40303104 ->  12073673 (3.338),  10.1 MB/s ,2935.3 MB/s
10#mes_(Russian).tar :  40303104 ->  11913524 (3.383),   9.0 MB/s ,3062.7 MB/s
11#mes_(Russian).tar :  40303104 ->  11800756 (3.415),   6.6 MB/s ,3083.5 MB/s
12#mes_(Russian).tar :  40303104 ->  11800132 (3.415),   7.0 MB/s ,3113.2 MB/s

E:\N\Nakamichi_Kaidanji_PRV20>zstd-v1.4.5-win64.exe -b1 -e22 --threads=1 --priority=rt --no-check -i9 ""Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar""
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 1#mes_(Russian).tar :  40303104 ->  12277131 (3.283), 213.1 MB/s , 799.8 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 2#mes_(Russian).tar :  40303104 ->  12274339 (3.284), 193.6 MB/s , 685.9 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 3#mes_(Russian).tar :  40303104 ->  11202673 (3.598), 164.1 MB/s , 741.7 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 4#mes_(Russian).tar :  40303104 ->  11113840 (3.626), 146.9 MB/s , 735.2 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 5#mes_(Russian).tar :  40303104 ->  11299135 (3.567),  85.8 MB/s , 698.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 6#mes_(Russian).tar :  40303104 ->  10777421 (3.740),  56.8 MB/s , 744.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 7#mes_(Russian).tar :  40303104 ->  10286862 (3.918),  39.2 MB/s , 811.6 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 8#mes_(Russian).tar :  40303104 ->  10082942 (3.997),  30.0 MB/s , 842.5 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
 9#mes_(Russian).tar :  40303104 ->   9704445 (4.153),  17.6 MB/s , 875.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
10#mes_(Russian).tar :  40303104 ->   9615290 (4.192),  14.8 MB/s , 860.4 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
11#mes_(Russian).tar :  40303104 ->   9560726 (4.215),  13.3 MB/s , 846.5 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
12#mes_(Russian).tar :  40303104 ->   9216733 (4.373),  6.40 MB/s , 861.5 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
13#mes_(Russian).tar :  40303104 ->   8542319 (4.718),  3.48 MB/s , 893.8 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
14#mes_(Russian).tar :  40303104 ->   8321635 (4.843),  2.94 MB/s , 765.7 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
15#mes_(Russian).tar :  40303104 ->   8106982 (4.971),  2.00 MB/s , 653.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
16#mes_(Russian).tar :  40303104 ->   7649805 (5.269),  2.49 MB/s , 841.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
17#mes_(Russian).tar :  40303104 ->   7467122 (5.397),  2.04 MB/s , 725.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
18#mes_(Russian).tar :  40303104 ->   7349844 (5.484),  1.70 MB/s , 633.3 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
19#mes_(Russian).tar :  40303104 ->   7251735 (5.558),  1.55 MB/s , 586.4 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
20#mes_(Russian).tar :  40303104 ->   7076322 (5.695),  1.43 MB/s , 746.1 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
21#mes_(Russian).tar :  40303104 ->   7040626 (5.724),  1.36 MB/s , 749.2 MB/s
Note : switching to real-time priority evsky_in_15_volumes_(Russian).tar...
22#mes_(Russian).tar :  40303104 ->   7038628 (5.726),  1.35 MB/s , 748.5 MB/s

And top-of-the-top - the fastest decompressors in the known Internet:
     8365932    20.8       0.77    1553.94   oodle 99         Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
     7960854    19.8       0.90    1303.84   lzturbo 29       Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
     6998037    17.4       0.90     843.02   lzturbo 39       Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar
     5446497    13.5       7.24      45.04   lzturbo 59       Complete_works_of_Fyodor_Dostoyevsky_in_15_volumes_(Russian).tar

Aleksey, please consider making something that fits that use case scenario (3x4bytes hash output), it will benefit my benchmarks and Nakamichi, bigtime!
I thought of using the hardware SCSI-CRC32, twice, once for straight key and once more for reversed key, thus concatenating the two to 64bits, you see instead of stressing the hasher with juggling/rotating, doing it with the key itself, no idea what the third round of 32bits could be, but want to try that dummy idea.
But first, have to find where I messed up the shrinking...

Please update your prvhash 2.29 sources fully - they compile OK in GCC, maybe you missed some files.
"Aleksey, please consider making something that fits that use case scenario (3x4bytes hash output), it will benefit my benchmarks and Nakamichi, bigtime!"
I've already tested hashing of zero messages with 96 bit hashes - prvhash2.29 works fine. What other do you mean?

I've fixed C99 compatibility issue in the latest version 3.30

The crisis is over.
It is one of those superrare situations where hardware or (probably Windows 7 somehow broken) fails you, nothing wrong in Nakamichi, it took my the whole night to troubleshoot, still cannot believe how this bamboozled me. Will install Windows 10 on it when have enough time. I ran exact same tests on another of my laptops, no problems - checksums were OK while on the first one not.
I have shared on my Internet drive the latest Nakamichi with PRVhash 2.30, Nakamichi_Kaidanji_PRV230.zip (68,277,650 bytes):
https://drive.google.com/file/d/18KAoybVw7aPyZakYlUWW4uyanJFDI11J/view?usp=sharing
In the package there are the sources and all Intel and GCC binaries along with the 'Silesia' corpus.

I'm glad for you!

Hello @Sanmayce . Do you still use prvhash? Could you try the latest version 4.3 in your benchmark?

Hi Aleksey,
yes, PRVHASH is still used within my Nakamichi, it is still the best hash for my needs, however the default hash is my amateurish 128bit hasher called Gumbotron, it is good enough for lossy compression of keys down to 16bytes, more in next links.
https://github.com/Cyan4973/xxHash/issues/568
https://github.com/google/highwayhash/issues/102
Next week will try to benchmark v.4.3, but kinda forgot which of the packages to run.
Thanks again for your work, much appreciated it is.