updated documentation

This commit is contained in:
Yann Collet 2018-09-04 14:57:45 -07:00
parent 11b8b8c100
commit 1d487d587f
2 changed files with 32 additions and 16 deletions

View File

@ -3,17 +3,23 @@ largeNbDicts
`largeNbDicts` is a benchmark test tool `largeNbDicts` is a benchmark test tool
dedicated to the specific scenario of dedicated to the specific scenario of
dictionary decompression using a very large number of dictionaries, dictionary decompression using a very large number of dictionaries.
which suffers from increased latency due to cache misses. When dictionaries are constantly changing, they are always "cold",
It's created in a bid to investigate performance for this scenario, suffering from increased latency due to cache misses.
The tool is created in a bid to investigate performance for this scenario,
and experiment mitigation techniques. and experiment mitigation techniques.
Command line : Command line :
``` ```
$ largeNbDicts filename [Options] largeNbDicts [Options] filename(s)
Options : Options :
--clevel=# : use compression level # (default: 3) -r : recursively load all files in subdirectories (default: off)
--blockSize=# : cut input into blocks of size # (default: 4096) -B# : split input into blocks of size # (default: no split)
--dictionary=# : use # as a dictionary (default: create one) -# : use compression level # (default: 3)
-D # : use # as a dictionary (default: create one)
-i# : nb benchmark rounds (default: 6)
--nbDicts=# : set nb of dictionaries to # (default: one per block) --nbDicts=# : set nb of dictionaries to # (default: one per block)
-h : help (this text)
``` ```

View File

@ -716,10 +716,11 @@ static unsigned longCommandWArg(const char** stringPtr, const char* longCommand)
} }
int bad_usage(const char* exeName) int usage(const char* exeName)
{ {
DISPLAY (" bad usage : \n"); DISPLAY (" \n");
DISPLAY (" %s filename [Options] \n", exeName); DISPLAY (" %s [Options] filename(s) \n", exeName);
DISPLAY (" \n");
DISPLAY ("Options : \n"); DISPLAY ("Options : \n");
DISPLAY ("-r : recursively load all files in subdirectories (default: off) \n"); DISPLAY ("-r : recursively load all files in subdirectories (default: off) \n");
DISPLAY ("-B# : split input into blocks of size # (default: no split) \n"); DISPLAY ("-B# : split input into blocks of size # (default: no split) \n");
@ -727,6 +728,14 @@ int bad_usage(const char* exeName)
DISPLAY ("-D # : use # as a dictionary (default: create one) \n"); DISPLAY ("-D # : use # as a dictionary (default: create one) \n");
DISPLAY ("-i# : nb benchmark rounds (default: %u) \n", BENCH_TIME_DEFAULT_S); DISPLAY ("-i# : nb benchmark rounds (default: %u) \n", BENCH_TIME_DEFAULT_S);
DISPLAY ("--nbDicts=# : create # dictionaries for bench (default: one per block) \n"); DISPLAY ("--nbDicts=# : create # dictionaries for bench (default: one per block) \n");
DISPLAY ("-h : help (this text) \n");
return 0;
}
int bad_usage(const char* exeName)
{
DISPLAY (" bad usage : \n");
usage(exeName);
return 1; return 1;
} }
@ -749,6 +758,7 @@ int main (int argc, const char** argv)
for (int argNb = 1; argNb < argc ; argNb++) { for (int argNb = 1; argNb < argc ; argNb++) {
const char* argument = argv[argNb]; const char* argument = argv[argNb];
if (!strcmp(argument, "-h")) { return usage(exeName); }
if (!strcmp(argument, "-r")) { recursiveMode = 1; continue; } if (!strcmp(argument, "-r")) { recursiveMode = 1; continue; }
if (!strcmp(argument, "-D")) { argNb++; assert(argNb < argc); dictionary = argv[argNb]; continue; } if (!strcmp(argument, "-D")) { argNb++; assert(argNb < argc); dictionary = argv[argNb]; continue; }
if (longCommandWArg(&argument, "-i")) { nbRounds = readU32FromChar(&argument); continue; } if (longCommandWArg(&argument, "-i")) { nbRounds = readU32FromChar(&argument); continue; }