The IO Ring now supports bashing multiple submissions and can handle multiple files at the same time. Hashing small files using XXH3_128bits() instead of the streaming pipeline(XXH3_128bits_reset(), XXH3_128bits_update(), XXH3_128bits_digest()), this reduses the overhead of creating a state and digest, coupled with the IO Ring it improves the hashing of small files whose size is inferior to the size of IO Ring buffers
filehasher
Collects some metadata and hashes files.
Building:
Windows:
Release:
clang-cl /O3 file_hasher.c xxh_x86dispatch.c
Note: MinGW does not provide IO Ring headers yet, to fix that include ioringapi.c, this will dynamically load all the functions and define all the symbols necessary to replace the official header.
clang -O3 file_hasher.c xxh_x86dispatch.c -o file_hasher
gcc -O3 file_hasher.c xxh_x86dispatch.c -o file_hasher
Debug:
clang-cl /Zi /Od file_hasher.c xxh_x86dispatch.c
clang -g -O0 file_hasher.c xxh_x86dispatch.c -o file_hasher
gcc -g -O0 file_hasher.c xxh_x86dispatch.c -o file_hasher
Linux:
Release:
clang -O3 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
gcc -O3 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
Debug:
clang -g -O0 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
gcc -g -O0 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher