minor: test reordering

This commit is contained in:
Yann Collet
2024-12-20 10:36:59 -08:00
parent 4c097b4939
commit c540976a4b
+16 -18
View File
@@ -132,14 +132,14 @@ typedef struct {
size_t fixedOrigSize; size_t fixedOrigSize;
size_t moddedDstCapacity; /* if ==0, no modification */ size_t moddedDstCapacity; /* if ==0, no modification */
} PrepResult; } PrepResult;
#define PREPRESULT_INIT { 0,0,0 }
static PrepResult prepDecompress(void* dst, size_t dstCapacity, const void* src, size_t srcSize, int cLevel) static PrepResult prepDecompress(void* dst, size_t dstCapacity, const void* src, size_t srcSize, int cLevel)
{ {
size_t cSize = ZSTD_compress(dst, dstCapacity, src, srcSize, cLevel); size_t cSize = ZSTD_compress(dst, dstCapacity, src, srcSize, cLevel);
PrepResult r; PrepResult r = PREPRESULT_INIT;
r.prepSize = cSize; r.prepSize = cSize;
r.fixedOrigSize = srcSize; r.fixedOrigSize = srcSize;
r.moddedDstCapacity = 0;
return r; return r;
} }
@@ -172,7 +172,7 @@ static PrepResult prepLiterals(void* dst, size_t dstCapacity, const void* src, s
{ blockProperties_t bp; { blockProperties_t bp;
ZSTD_getcBlockSize((char*)dst+frameHeaderSize, dstCapacity, &bp); /* Get 1st block type */ ZSTD_getcBlockSize((char*)dst+frameHeaderSize, dstCapacity, &bp); /* Get 1st block type */
if (bp.blockType != bt_compressed) { if (bp.blockType != bt_compressed) {
const PrepResult r = {0,0, 0}; const PrepResult r = PREPRESULT_INIT;
DISPLAY("no compressed literals\n"); DISPLAY("no compressed literals\n");
return r; return r;
} } } }
@@ -181,10 +181,9 @@ static PrepResult prepLiterals(void* dst, size_t dstCapacity, const void* src, s
memmove(dst, (char*)dst+skippedSize, prepSize); memmove(dst, (char*)dst+skippedSize, prepSize);
} }
ZSTD_decompressBegin(g_zdc); ZSTD_decompressBegin(g_zdc);
{ PrepResult r; { PrepResult r = PREPRESULT_INIT;
r.prepSize = prepSize; r.prepSize = prepSize;
r.fixedOrigSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */ r.fixedOrigSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */
r.moddedDstCapacity = 0;
return r; return r;
} }
} }
@@ -276,7 +275,7 @@ static PrepResult prepSequences(void* dst, size_t dstCapacity, const void* src,
{ blockProperties_t bp; { blockProperties_t bp;
size_t const cBlockSize = ZSTD_getcBlockSize(ip, dstCapacity, &bp); /* Get 1st block type */ size_t const cBlockSize = ZSTD_getcBlockSize(ip, dstCapacity, &bp); /* Get 1st block type */
if (bp.blockType != bt_compressed) { if (bp.blockType != bt_compressed) {
const PrepResult r = {0,0, 0}; const PrepResult r = PREPRESULT_INIT;
DISPLAY("no compressed sequences\n"); DISPLAY("no compressed sequences\n");
return r; return r;
} }
@@ -286,10 +285,9 @@ static PrepResult prepSequences(void* dst, size_t dstCapacity, const void* src,
ZSTD_decompressBegin(g_zdc); ZSTD_decompressBegin(g_zdc);
CONTROL(iend > ip); CONTROL(iend > ip);
ip += ZSTD_decodeLiteralsBlock_wrapper(g_zdc, ip, (size_t)(iend-ip), dst, dstCapacity); /* skip literal segment */ ip += ZSTD_decodeLiteralsBlock_wrapper(g_zdc, ip, (size_t)(iend-ip), dst, dstCapacity); /* skip literal segment */
{ PrepResult r; { PrepResult r = PREPRESULT_INIT;
r.prepSize = (size_t)(iend-ip); r.prepSize = (size_t)(iend-ip);
r.fixedOrigSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */ r.fixedOrigSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */
r.moddedDstCapacity = 0;
memmove(dst, ip, r.prepSize); /* copy rest of block (it starts by SeqHeader) */ memmove(dst, ip, r.prepSize); /* copy rest of block (it starts by SeqHeader) */
return r; return r;
} }
@@ -543,23 +541,23 @@ static BenchScenario kScenarios[] = {
{ "decompress", prepDecompress, local_ZSTD_decompress }, { "decompress", prepDecompress, local_ZSTD_decompress },
{ "compress_freshCCtx", NULL, local_ZSTD_compress_freshCCtx }, { "compress_freshCCtx", NULL, local_ZSTD_compress_freshCCtx },
{ "decompressDCtx", prepDecompress, local_ZSTD_decompressDCtx }, { "decompressDCtx", prepDecompress, local_ZSTD_decompressDCtx },
#ifndef ZSTD_DLL_IMPORT
{ "compressContinue", NULL, local_ZSTD_compressContinue }, { "compressContinue", NULL, local_ZSTD_compressContinue },
{ "compressContinue_extDict", NULL, local_ZSTD_compressContinue_extDict }, { "compressContinue_extDict", NULL, local_ZSTD_compressContinue_extDict },
{ "decompressContinue", prepDecompress, local_ZSTD_decompressContinue }, { "decompressContinue", prepDecompress, local_ZSTD_decompressContinue },
{ "decodeLiteralsHeader", prepLiterals, local_ZSTD_decodeLiteralsHeader },
{ "decodeLiteralsBlock", prepLiterals, local_ZSTD_decodeLiteralsBlock },
{ "decodeSeqHeaders", prepSequences, local_ZSTD_decodeSeqHeaders },
#endif
{ "compressStream", NULL, local_ZSTD_compressStream }, { "compressStream", NULL, local_ZSTD_compressStream },
{ "decompressStream", prepDecompress, local_ZSTD_decompressStream },
{ "compressStream_freshCCtx", NULL, local_ZSTD_compressStream_freshCCtx }, { "compressStream_freshCCtx", NULL, local_ZSTD_compressStream_freshCCtx },
{ "decompressStream", prepDecompress, local_ZSTD_decompressStream },
{ "compress2", NULL, local_ZSTD_compress2 }, { "compress2", NULL, local_ZSTD_compress2 },
{ "compressStream2, end", NULL, local_ZSTD_compressStream2_end }, { "compressStream2, end", NULL, local_ZSTD_compressStream2_end },
{ "compressStream2, end & short", prepShorterDstCapacity, local_ZSTD_compressStream2_end }, { "compressStream2, end & short", prepShorterDstCapacity, local_ZSTD_compressStream2_end },
{ "compressStream2, continue", NULL, local_ZSTD_compressStream2_continue }, { "compressStream2, continue", NULL, local_ZSTD_compressStream2_continue },
{ "compress_generic, -T2, continue", NULL, local_ZSTD_compress_generic_T2_continue }, { "compressStream2, -T2, continue", NULL, local_ZSTD_compress_generic_T2_continue },
{ "compress_generic, -T2, end", NULL, local_ZSTD_compress_generic_T2_end }, { "compressStream2, -T2, end", NULL, local_ZSTD_compress_generic_T2_end },
#ifndef ZSTD_DLL_IMPORT
{ "decodeLiteralsHeader (1st block)", prepLiterals, local_ZSTD_decodeLiteralsHeader },
{ "decodeLiteralsBlock (1st block)", prepLiterals, local_ZSTD_decodeLiteralsBlock },
{ "decodeSeqHeaders (1st block)", prepSequences, local_ZSTD_decodeSeqHeaders },
#endif
}; };
#define NB_SCENARIOS (sizeof(kScenarios) / sizeof(kScenarios[0])) #define NB_SCENARIOS (sizeof(kScenarios) / sizeof(kScenarios[0]))
@@ -622,12 +620,12 @@ static int benchMem(unsigned benchNb,
ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_targetLength, (int)cparams.targetLength); ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_targetLength, (int)cparams.targetLength);
ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_strategy, (int)cparams.strategy); ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_strategy, (int)cparams.strategy);
/* Preparation */ /* Preparation */
payload = &cparams; payload = &cparams;
{ PrepResult pr = prep_f(prepBuff, prepBuffCapacity, origSrc, origSrcSize, cLevel); { PrepResult pr = prep_f(prepBuff, prepBuffCapacity, origSrc, origSrcSize, cLevel);
prepBuffSize = pr.prepSize; prepBuffSize = pr.prepSize;
origSrcSize = pr.fixedOrigSize; origSrcSize = pr.fixedOrigSize;
if (pr.moddedDstCapacity) dstBuffCapacity = pr.moddedDstCapacity;
} }
if (prepBuffSize==0) goto _cleanOut; /* failed preparation */ if (prepBuffSize==0) goto _cleanOut; /* failed preparation */
@@ -669,7 +667,7 @@ static int benchMem(unsigned benchNb,
{ BMK_runTime_t const newResult = BMK_extract_runTime(bOutcome); { BMK_runTime_t const newResult = BMK_extract_runTime(bOutcome);
if (newResult.nanoSecPerRun < bestResult.nanoSecPerRun ) if (newResult.nanoSecPerRun < bestResult.nanoSecPerRun )
bestResult.nanoSecPerRun = newResult.nanoSecPerRun; bestResult.nanoSecPerRun = newResult.nanoSecPerRun;
DISPLAY("\r%2u#%-29.29s:%8.1f MB/s (%8u) ", DISPLAY("\r%2u#%-31.31s:%8.1f MB/s (%8u) ",
benchNb, benchName, benchNb, benchName,
(double)origSrcSize * TIMELOOP_NANOSEC / bestResult.nanoSecPerRun / MB_UNIT, (double)origSrcSize * TIMELOOP_NANOSEC / bestResult.nanoSecPerRun / MB_UNIT,
(unsigned)newResult.sumOfReturn ); (unsigned)newResult.sumOfReturn );