]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
bench pay attention to variable block sizes
authorYann Collet <yann.collet.73@gmail.com>
Wed, 20 Jan 2016 14:39:06 +0000 (15:39 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Wed, 20 Jan 2016 14:39:06 +0000 (15:39 +0100)
lib/zstd_static.h
programs/bench.c

index f1e72e955c4aebbd5544ea9c337c8eb1d871d6c9..a98cfead9bbb39850d6213b670c2e1f704942a3b 100644 (file)
@@ -284,8 +284,8 @@ static const ZSTD_parameters ZSTD_defaultParameters[4][ZSTD_MAX_CLEVEL+1] = {
     /*    W,  C,  H,  S,  L, strat */
     { 0, 17, 12, 12,  1,  4, ZSTD_fast    },  /* level  0 - never used */
     { 0, 17, 12, 13,  1,  6, ZSTD_fast    },  /* level  1 */
-    { 0, 17, 15, 16,  1,  5, ZSTD_fast    },  /* level  2 */
-    { 0, 17, 16, 17,  1,  5, ZSTD_fast    },  /* level  3 */
+    { 0, 17, 14, 16,  1,  5, ZSTD_fast    },  /* level  2 */
+    { 0, 17, 15, 17,  1,  5, ZSTD_fast    },  /* level  3 */
     { 0, 17, 13, 15,  2,  4, ZSTD_greedy  },  /* level  4 */
     { 0, 17, 15, 17,  3,  4, ZSTD_greedy  },  /* level  5 */
     { 0, 17, 14, 17,  3,  4, ZSTD_lazy    },  /* level  6 */
@@ -308,7 +308,7 @@ static const ZSTD_parameters ZSTD_defaultParameters[4][ZSTD_MAX_CLEVEL+1] = {
     /*     W,  C,  H,  S,  L, strat */
     {  0,  0,  0,  0,  0,  0, ZSTD_fast    },  /* level  0 - never used */
     {  0, 14, 14, 14,  1,  4, ZSTD_fast    },  /* level  1 */
-    {  0, 14, 14, 16,  1,  4, ZSTD_fast    },  /* level  1 */
+    {  0, 14, 14, 16,  1,  4, ZSTD_fast    },  /* level  2 */
     {  0, 14, 14, 14,  5,  4, ZSTD_greedy  },  /* level  3 */
     {  0, 14, 14, 14,  8,  4, ZSTD_greedy  },  /* level  4 */
     {  0, 14, 11, 14,  6,  4, ZSTD_lazy    },  /* level  5 */
index 3c74a572ca410e2e90f470b9c9e1d71ff10fc213..14b36b489ff225696b6fdde39794239c06c65c17 100644 (file)
@@ -220,6 +220,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize,
 {
     const size_t blockSize = (g_blockSize ? g_blockSize : srcSize) + (!srcSize);   /* avoid div by 0 */
     const U32 maxNbBlocks = (U32) ((srcSize + (blockSize-1)) / blockSize) + nbFiles;
+    size_t largestBlockSize = 0;
     blockParam_t* const blockTable = (blockParam_t*) malloc(maxNbBlocks * sizeof(blockParam_t));
     const size_t maxCompressedSize = ZSTD_compressBound(srcSize) + (maxNbBlocks * 1024);   /* add some room for safety */
     void* const compressedBuffer = malloc(maxCompressedSize);
@@ -260,6 +261,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize,
                 cPtr += blockTable[nbBlocks].cRoom;
                 resPtr += thisBlockSize;
                 remaining -= thisBlockSize;
+                if (thisBlockSize > largestBlockSize) largestBlockSize = thisBlockSize;
             }
         }
     }
@@ -292,7 +294,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize,
             milliTime = BMK_GetMilliStart();
             while (BMK_GetMilliSpan(milliTime) < TIMELOOP)
             {
-                ZSTD_compressBegin_advanced(refCtx, ZSTD_getParams(cLevel, dictBufferSize+blockSize));
+                ZSTD_compressBegin_advanced(refCtx, ZSTD_getParams(cLevel, dictBufferSize+largestBlockSize));
                 ZSTD_compress_insertDictionary(refCtx, dictBuffer, dictBufferSize);
                 for (blockNb=0; blockNb<nbBlocks; blockNb++)
                 {