diff options
author | inikep <inikep@gmail.com> | 2016-09-02 20:59:18 (GMT) |
---|---|---|
committer | inikep <inikep@gmail.com> | 2016-09-02 20:59:18 (GMT) |
commit | 2cf32ef0f107d18c9779283b8bd1d56f0517dd39 (patch) | |
tree | 7a2845b5052b03ae73e04d4e21e4674bd6da27b9 /programs/bench.c | |
parent | c1864f69e87d68fe79420c9303ecf97eb66bc7c7 (diff) | |
download | lz4-2cf32ef0f107d18c9779283b8bd1d56f0517dd39.zip lz4-2cf32ef0f107d18c9779283b8bd1d56f0517dd39.tar.gz lz4-2cf32ef0f107d18c9779283b8bd1d56f0517dd39.tar.bz2 |
-b# and -e# options from zstd
Diffstat (limited to 'programs/bench.c')
-rw-r--r-- | programs/bench.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/programs/bench.c b/programs/bench.c index b03d562..b56bac2 100644 --- a/programs/bench.c +++ b/programs/bench.c @@ -201,7 +201,7 @@ static U64 BMK_GetFileSize(const char* infilename) * Public function **********************************************************/ -int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) +int BMK_benchLevel(const char** fileNamesTable, int nbFiles, int cLevel) { int fileIdx=0; char* orig_buff; @@ -214,7 +214,7 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) double totald = 0.; /* Init */ - if (cLevel <= 2) cfunctionId = 0; else cfunctionId = 1; + if (cLevel < LZ4HC_MIN_CLEVEL) cfunctionId = 0; else cfunctionId = 1; switch (cfunctionId) { #ifdef COMPRESSOR0 @@ -228,7 +228,7 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) /* Loop for each file */ while (fileIdx<nbFiles) { - const char* const inFileName = fileNamesTable[fileIdx++]; + const char* inFileName = fileNamesTable[fileIdx++]; FILE* const inFile = fopen( inFileName, "rb" ); U64 const inFileSize = BMK_GetFileSize(inFileName); size_t benchedSize = BMK_findMaxMem(inFileSize * 2) / 2; @@ -280,6 +280,7 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) /* Fill input buffer */ DISPLAY("Loading %s... \r", inFileName); + if (strlen(inFileName)>16) inFileName += strlen(inFileName)-16; /* can only display 16 characters */ readSize = fread(orig_buff, 1, benchedSize, inFile); fclose(inFile); @@ -308,7 +309,7 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) unsigned chunkNb; /* Compression */ - DISPLAY("%1i-%-14.14s : %9i ->\r", loopNb, inFileName, (int)benchedSize); + DISPLAY("%2i#%1i-%-14.14s : %9i ->\r", cLevel, loopNb, inFileName, (int)benchedSize); { size_t i; for (i=0; i<benchedSize; i++) compressedBuffer[i]=(char)i; } /* warmimg up memory */ clockStart = clock(); @@ -326,8 +327,8 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) cSize=0; for (chunkNb=0; chunkNb<nbChunks; chunkNb++) cSize += chunkP[chunkNb].compressedSize; ratio = (double)cSize/(double)benchedSize*100.; - DISPLAY("%1i-%-14.14s : %9i -> %9i (%5.2f%%),%7.1f MB/s\r", - loopNb, inFileName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / (fastestC / CLOCKS_PER_SEC) / 1000000); + DISPLAY("%2i#%1i-%-14.14s : %9i -> %9i (%5.2f%%),%7.1f MB/s\r", + cLevel, loopNb, inFileName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / (fastestC / CLOCKS_PER_SEC) / 1000000); /* Decompression */ { size_t i; for (i=0; i<benchedSize; i++) orig_buff[i]=0; } /* zeroing area, for CRC checking */ @@ -346,8 +347,8 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) nbLoops += !nbLoops; /* avoid division by zero */ if ((double)clockEnd < fastestD*nbLoops) fastestD = (double)clockEnd/nbLoops; - DISPLAY("%1i-%-14.14s : %9i -> %9i (%5.2f%%),%7.1f MB/s ,%7.1f MB/s \r", - loopNb, inFileName, (int)benchedSize, (int)cSize, ratio, + DISPLAY("%2i#%1i-%-14.14s : %9i -> %9i (%5.2f%%),%7.1f MB/s ,%7.1f MB/s \r", + cLevel, loopNb, inFileName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / (fastestC / CLOCKS_PER_SEC) / 1000000, (double)benchedSize / (fastestD / CLOCKS_PER_SEC) / 1000000 ); /* CRC Checking */ @@ -357,12 +358,12 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) if (crcOrig==crcCheck) { if (ratio < 100.) - DISPLAY("%-16.16s : %9i -> %9i (%5.2f%%),%7.1f MB/s ,%7.1f MB/s \n", - inFileName, (int)benchedSize, (int)cSize, ratio, + DISPLAY("%2i#%-16.16s : %9i -> %9i (%5.2f%%),%7.1f MB/s ,%7.1f MB/s \n", + cLevel, inFileName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / (fastestC / CLOCKS_PER_SEC) / 1000000, (double)benchedSize / (fastestD / CLOCKS_PER_SEC) / 1000000 ); else - DISPLAY("%-16.16s : %9i -> %9i (%5.1f%%),%7.1f MB/s ,%7.1f MB/s \n", - inFileName, (int)benchedSize, (int)cSize, ratio, + DISPLAY("%2i#%-16.16s : %9i -> %9i (%5.1f%%),%7.1f MB/s ,%7.1f MB/s \n", + cLevel, inFileName, (int)benchedSize, (int)cSize, ratio, (double)benchedSize / (fastestC / CLOCKS_PER_SEC) / 1000000, (double)benchedSize / (fastestD / CLOCKS_PER_SEC) / 1000000 ); } totals += benchedSize; @@ -377,7 +378,7 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) } if (nbFiles > 1) - DISPLAY("%-16.16s :%10llu ->%10llu (%5.2f%%), %6.1f MB/s , %6.1f MB/s\n", " TOTAL", + DISPLAY("%2i#%-16.16s :%10llu ->%10llu (%5.2f%%), %6.1f MB/s , %6.1f MB/s\n", cLevel, " TOTAL", (long long unsigned)totals, (long long unsigned int)totalz, (double)totalz/(double)totals*100., (double)totals/(totalc/CLOCKS_PER_SEC)/1000000, (double)totals/(totald/CLOCKS_PER_SEC)/1000000); @@ -385,3 +386,21 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel) return 0; } + + +int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel, int cLevelLast) +{ + int i, res = 0; + + if (cLevel > LZ4HC_MAX_CLEVEL) cLevel = LZ4HC_MAX_CLEVEL; + if (cLevelLast > LZ4HC_MAX_CLEVEL) cLevelLast = LZ4HC_MAX_CLEVEL; + if (cLevelLast < cLevel) cLevelLast = cLevel; + + DISPLAY("Benchmarking levels from %d to %d\n", cLevel, cLevelLast); + for (i=cLevel; i<=cLevelLast; i++) { + res = BMK_benchLevel(fileNamesTable, nbFiles, i); + if (res != 0) break; + } + + return res; +} |