fullbench : minor refactoring, for readability
This commit is contained in:
+64
-59
@@ -99,12 +99,12 @@ static ZSTD_CCtx* g_zcc = NULL;
|
|||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compress(const void* src, size_t srcSize,
|
local_ZSTD_compress(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstSize,
|
void* dst, size_t dstSize,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
ZSTD_parameters p;
|
ZSTD_parameters p;
|
||||||
ZSTD_frameParameters f = { 1 /* contentSizeHeader*/, 0, 0 };
|
ZSTD_frameParameters f = { 1 /* contentSizeHeader*/, 0, 0 };
|
||||||
p.fParams = f;
|
p.fParams = f;
|
||||||
p.cParams = *(ZSTD_compressionParameters*)buff2;
|
p.cParams = *(ZSTD_compressionParameters*)payload;
|
||||||
return ZSTD_compress_advanced (g_zcc, dst, dstSize, src, srcSize, NULL ,0, p);
|
return ZSTD_compress_advanced (g_zcc, dst, dstSize, src, srcSize, NULL ,0, p);
|
||||||
//return ZSTD_compress(dst, dstSize, src, srcSize, cLevel);
|
//return ZSTD_compress(dst, dstSize, src, srcSize, cLevel);
|
||||||
}
|
}
|
||||||
@@ -125,7 +125,7 @@ extern size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* ctx, const void* src, size_t s
|
|||||||
static size_t local_ZSTD_decodeLiteralsBlock(const void* src, size_t srcSize, void* dst, size_t dstSize, void* buff2)
|
static size_t local_ZSTD_decodeLiteralsBlock(const void* src, size_t srcSize, void* dst, size_t dstSize, void* buff2)
|
||||||
{
|
{
|
||||||
(void)src; (void)srcSize; (void)dst; (void)dstSize;
|
(void)src; (void)srcSize; (void)dst; (void)dstSize;
|
||||||
return ZSTD_decodeLiteralsBlock((ZSTD_DCtx*)g_zdc, buff2, g_cSize);
|
return ZSTD_decodeLiteralsBlock(g_zdc, buff2, g_cSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t local_ZSTD_decodeSeqHeaders(const void* src, size_t srcSize, void* dst, size_t dstSize, void* buff2)
|
static size_t local_ZSTD_decodeSeqHeaders(const void* src, size_t srcSize, void* dst, size_t dstSize, void* buff2)
|
||||||
@@ -140,14 +140,14 @@ static ZSTD_CStream* g_cstream= NULL;
|
|||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compressStream(const void* src, size_t srcSize,
|
local_ZSTD_compressStream(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
ZSTD_outBuffer buffOut;
|
ZSTD_outBuffer buffOut;
|
||||||
ZSTD_inBuffer buffIn;
|
ZSTD_inBuffer buffIn;
|
||||||
ZSTD_parameters p;
|
ZSTD_parameters p;
|
||||||
ZSTD_frameParameters f = {1 /* contentSizeHeader*/, 0, 0};
|
ZSTD_frameParameters f = {1 /* contentSizeHeader*/, 0, 0};
|
||||||
p.fParams = f;
|
p.fParams = f;
|
||||||
p.cParams = *(ZSTD_compressionParameters*)buff2;
|
p.cParams = *(ZSTD_compressionParameters*)payload;
|
||||||
ZSTD_initCStream_advanced(g_cstream, NULL, 0, p, ZSTD_CONTENTSIZE_UNKNOWN);
|
ZSTD_initCStream_advanced(g_cstream, NULL, 0, p, ZSTD_CONTENTSIZE_UNKNOWN);
|
||||||
buffOut.dst = dst;
|
buffOut.dst = dst;
|
||||||
buffOut.size = dstCapacity;
|
buffOut.size = dstCapacity;
|
||||||
@@ -163,13 +163,13 @@ local_ZSTD_compressStream(const void* src, size_t srcSize,
|
|||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compressStream_freshCCtx(const void* src, size_t srcSize,
|
local_ZSTD_compressStream_freshCCtx(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
||||||
size_t r;
|
size_t r;
|
||||||
assert(cctx != NULL);
|
assert(cctx != NULL);
|
||||||
|
|
||||||
r = local_ZSTD_compressStream(src, srcSize, dst, dstCapacity, buff2);
|
r = local_ZSTD_compressStream(src, srcSize, dst, dstCapacity, payload);
|
||||||
|
|
||||||
ZSTD_freeCCtx(cctx);
|
ZSTD_freeCCtx(cctx);
|
||||||
|
|
||||||
@@ -179,20 +179,20 @@ local_ZSTD_compressStream_freshCCtx(const void* src, size_t srcSize,
|
|||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compress_generic_end(const void* src, size_t srcSize,
|
local_ZSTD_compress_generic_end(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
(void)buff2;
|
(void)payload;
|
||||||
return ZSTD_compress2(g_cstream, dst, dstCapacity, src, srcSize);
|
return ZSTD_compress2(g_cstream, dst, dstCapacity, src, srcSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compress_generic_continue(const void* src, size_t srcSize,
|
local_ZSTD_compress_generic_continue(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
ZSTD_outBuffer buffOut;
|
ZSTD_outBuffer buffOut;
|
||||||
ZSTD_inBuffer buffIn;
|
ZSTD_inBuffer buffIn;
|
||||||
(void)buff2;
|
(void)payload;
|
||||||
buffOut.dst = dst;
|
buffOut.dst = dst;
|
||||||
buffOut.size = dstCapacity;
|
buffOut.size = dstCapacity;
|
||||||
buffOut.pos = 0;
|
buffOut.pos = 0;
|
||||||
@@ -207,9 +207,9 @@ local_ZSTD_compress_generic_continue(const void* src, size_t srcSize,
|
|||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compress_generic_T2_end(const void* src, size_t srcSize,
|
local_ZSTD_compress_generic_T2_end(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
(void)buff2;
|
(void)payload;
|
||||||
ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_nbWorkers, 2);
|
ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_nbWorkers, 2);
|
||||||
return ZSTD_compress2(g_cstream, dst, dstCapacity, src, srcSize);
|
return ZSTD_compress2(g_cstream, dst, dstCapacity, src, srcSize);
|
||||||
}
|
}
|
||||||
@@ -217,11 +217,11 @@ local_ZSTD_compress_generic_T2_end(const void* src, size_t srcSize,
|
|||||||
static size_t
|
static size_t
|
||||||
local_ZSTD_compress_generic_T2_continue(const void* src, size_t srcSize,
|
local_ZSTD_compress_generic_T2_continue(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
ZSTD_outBuffer buffOut;
|
ZSTD_outBuffer buffOut;
|
||||||
ZSTD_inBuffer buffIn;
|
ZSTD_inBuffer buffIn;
|
||||||
(void)buff2;
|
(void)payload;
|
||||||
ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_nbWorkers, 2);
|
ZSTD_CCtx_setParameter(g_cstream, ZSTD_c_nbWorkers, 2);
|
||||||
buffOut.dst = dst;
|
buffOut.dst = dst;
|
||||||
buffOut.size = dstCapacity;
|
buffOut.size = dstCapacity;
|
||||||
@@ -257,27 +257,28 @@ local_ZSTD_decompressStream(const void* src, size_t srcSize,
|
|||||||
#ifndef ZSTD_DLL_IMPORT
|
#ifndef ZSTD_DLL_IMPORT
|
||||||
static size_t local_ZSTD_compressContinue(const void* src, size_t srcSize,
|
static size_t local_ZSTD_compressContinue(const void* src, size_t srcSize,
|
||||||
void* dst, size_t dstCapacity,
|
void* dst, size_t dstCapacity,
|
||||||
void* buff2)
|
void* payload)
|
||||||
{
|
{
|
||||||
ZSTD_parameters p;
|
ZSTD_parameters p;
|
||||||
ZSTD_frameParameters f = { 1 /* contentSizeHeader*/, 0, 0 };
|
ZSTD_frameParameters f = { 1 /* contentSizeHeader*/, 0, 0 };
|
||||||
p.fParams = f;
|
p.fParams = f;
|
||||||
p.cParams = *(ZSTD_compressionParameters*)buff2;
|
p.cParams = *(ZSTD_compressionParameters*)payload;
|
||||||
ZSTD_compressBegin_advanced(g_zcc, NULL, 0, p, srcSize);
|
ZSTD_compressBegin_advanced(g_zcc, NULL, 0, p, srcSize);
|
||||||
return ZSTD_compressEnd(g_zcc, dst, dstCapacity, src, srcSize);
|
return ZSTD_compressEnd(g_zcc, dst, dstCapacity, src, srcSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FIRST_BLOCK_SIZE 8
|
#define FIRST_BLOCK_SIZE 8
|
||||||
static size_t local_ZSTD_compressContinue_extDict(const void* src, size_t srcSize,
|
static size_t
|
||||||
void* dst, size_t dstCapacity,
|
local_ZSTD_compressContinue_extDict(const void* src, size_t srcSize,
|
||||||
void* buff2)
|
void* dst, size_t dstCapacity,
|
||||||
|
void* payload)
|
||||||
{
|
{
|
||||||
BYTE firstBlockBuf[FIRST_BLOCK_SIZE];
|
BYTE firstBlockBuf[FIRST_BLOCK_SIZE];
|
||||||
|
|
||||||
ZSTD_parameters p;
|
ZSTD_parameters p;
|
||||||
ZSTD_frameParameters f = { 1, 0, 0 };
|
ZSTD_frameParameters const f = { 1, 0, 0 };
|
||||||
p.fParams = f;
|
p.fParams = f;
|
||||||
p.cParams = *(ZSTD_compressionParameters*)buff2;
|
p.cParams = *(ZSTD_compressionParameters*)payload;
|
||||||
ZSTD_compressBegin_advanced(g_zcc, NULL, 0, p, srcSize);
|
ZSTD_compressBegin_advanced(g_zcc, NULL, 0, p, srcSize);
|
||||||
memcpy(firstBlockBuf, src, FIRST_BLOCK_SIZE);
|
memcpy(firstBlockBuf, src, FIRST_BLOCK_SIZE);
|
||||||
|
|
||||||
@@ -333,7 +334,7 @@ static int benchMem(unsigned benchNb,
|
|||||||
size_t dstBuffSize = ZSTD_compressBound(srcSize);
|
size_t dstBuffSize = ZSTD_compressBound(srcSize);
|
||||||
BYTE* dstBuff;
|
BYTE* dstBuff;
|
||||||
void* dstBuff2;
|
void* dstBuff2;
|
||||||
void* buff2;
|
void* payload;
|
||||||
const char* benchName;
|
const char* benchName;
|
||||||
BMK_benchFn_t benchFunction;
|
BMK_benchFn_t benchFunction;
|
||||||
int errorcode = 0;
|
int errorcode = 0;
|
||||||
@@ -397,7 +398,7 @@ static int benchMem(unsigned benchNb,
|
|||||||
free(dstBuff); free(dstBuff2);
|
free(dstBuff); free(dstBuff2);
|
||||||
return 12;
|
return 12;
|
||||||
}
|
}
|
||||||
buff2 = dstBuff2;
|
payload = dstBuff2;
|
||||||
if (g_zcc==NULL) g_zcc = ZSTD_createCCtx();
|
if (g_zcc==NULL) g_zcc = ZSTD_createCCtx();
|
||||||
if (g_zdc==NULL) g_zdc = ZSTD_createDCtx();
|
if (g_zdc==NULL) g_zdc = ZSTD_createDCtx();
|
||||||
if (g_cstream==NULL) g_cstream = ZSTD_createCStream();
|
if (g_cstream==NULL) g_cstream = ZSTD_createCStream();
|
||||||
@@ -430,62 +431,66 @@ static int benchMem(unsigned benchNb,
|
|||||||
switch(benchNb)
|
switch(benchNb)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
buff2 = &cparams;
|
payload = &cparams;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
g_cSize = ZSTD_compress(buff2, dstBuffSize, src, srcSize, cLevel);
|
g_cSize = ZSTD_compress(dstBuff2, dstBuffSize, src, srcSize, cLevel);
|
||||||
break;
|
break;
|
||||||
#ifndef ZSTD_DLL_IMPORT
|
#ifndef ZSTD_DLL_IMPORT
|
||||||
case 11:
|
case 11:
|
||||||
buff2 = &cparams;
|
payload = &cparams;
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
buff2 = &cparams;
|
payload = &cparams;
|
||||||
break;
|
break;
|
||||||
case 13 :
|
case 13 :
|
||||||
g_cSize = ZSTD_compress(buff2, dstBuffSize, src, srcSize, cLevel);
|
g_cSize = ZSTD_compress(dstBuff2, dstBuffSize, src, srcSize, cLevel);
|
||||||
break;
|
break;
|
||||||
case 31: /* ZSTD_decodeLiteralsBlock */
|
case 31: /* ZSTD_decodeLiteralsBlock : starts literals block in dstBuff2 */
|
||||||
{ blockProperties_t bp;
|
{ size_t frameHeaderSize;
|
||||||
ZSTD_frameHeader zfp;
|
|
||||||
size_t frameHeaderSize, skippedSize;
|
|
||||||
g_cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
g_cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
||||||
frameHeaderSize = ZSTD_getFrameHeader(&zfp, dstBuff, ZSTD_FRAMEHEADERSIZE_MIN);
|
frameHeaderSize = ZSTD_frameHeaderSize(dstBuff, ZSTD_FRAMEHEADERSIZE_PREFIX);
|
||||||
if (frameHeaderSize==0) frameHeaderSize = ZSTD_FRAMEHEADERSIZE_MIN;
|
assert(!ZSTD_isError(frameHeaderSize));
|
||||||
ZSTD_getcBlockSize(dstBuff+frameHeaderSize, dstBuffSize, &bp); /* Get 1st block type */
|
/* check block is compressible, hence contains a literals section */
|
||||||
if (bp.blockType != bt_compressed) {
|
{ blockProperties_t bp;
|
||||||
DISPLAY("ZSTD_decodeLiteralsBlock : impossible to test on this sample (not compressible)\n");
|
ZSTD_getcBlockSize(dstBuff+frameHeaderSize, dstBuffSize, &bp); /* Get 1st block type */
|
||||||
goto _cleanOut;
|
if (bp.blockType != bt_compressed) {
|
||||||
|
DISPLAY("ZSTD_decodeLiteralsBlock : impossible to test on this sample (not compressible)\n");
|
||||||
|
goto _cleanOut;
|
||||||
|
} }
|
||||||
|
{ size_t const skippedSize = frameHeaderSize + ZSTD_blockHeaderSize;
|
||||||
|
memcpy(dstBuff2, dstBuff+skippedSize, g_cSize-skippedSize);
|
||||||
}
|
}
|
||||||
skippedSize = frameHeaderSize + ZSTD_blockHeaderSize;
|
|
||||||
memcpy(buff2, dstBuff+skippedSize, g_cSize-skippedSize);
|
|
||||||
srcSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */
|
srcSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */
|
||||||
ZSTD_decompressBegin(g_zdc);
|
ZSTD_decompressBegin(g_zdc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 32: /* ZSTD_decodeSeqHeaders */
|
case 32: /* ZSTD_decodeSeqHeaders */
|
||||||
{ blockProperties_t bp;
|
{ blockProperties_t bp;
|
||||||
ZSTD_frameHeader zfp;
|
|
||||||
const BYTE* ip = dstBuff;
|
const BYTE* ip = dstBuff;
|
||||||
const BYTE* iend;
|
const BYTE* iend;
|
||||||
size_t frameHeaderSize, cBlockSize;
|
{ size_t const cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
||||||
ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel); /* it would be better to use direct block compression here */
|
assert(cSize > ZSTD_FRAMEHEADERSIZE_PREFIX);
|
||||||
g_cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
|
||||||
frameHeaderSize = ZSTD_getFrameHeader(&zfp, dstBuff, ZSTD_FRAMEHEADERSIZE_MIN);
|
|
||||||
if (frameHeaderSize==0) frameHeaderSize = ZSTD_FRAMEHEADERSIZE_MIN;
|
|
||||||
ip += frameHeaderSize; /* Skip frame Header */
|
|
||||||
cBlockSize = ZSTD_getcBlockSize(ip, dstBuffSize, &bp); /* Get 1st block type */
|
|
||||||
if (bp.blockType != bt_compressed) {
|
|
||||||
DISPLAY("ZSTD_decodeSeqHeaders : impossible to test on this sample (not compressible)\n");
|
|
||||||
goto _cleanOut;
|
|
||||||
}
|
}
|
||||||
iend = ip + ZSTD_blockHeaderSize + cBlockSize; /* End of first block */
|
/* Skip frame Header */
|
||||||
ip += ZSTD_blockHeaderSize; /* skip block header */
|
{ size_t const frameHeaderSize = ZSTD_frameHeaderSize(dstBuff, ZSTD_FRAMEHEADERSIZE_PREFIX);
|
||||||
|
assert(!ZSTD_isError(frameHeaderSize));
|
||||||
|
ip += frameHeaderSize;
|
||||||
|
}
|
||||||
|
/* Find end of block */
|
||||||
|
{ size_t const cBlockSize = ZSTD_getcBlockSize(ip, dstBuffSize, &bp); /* Get 1st block type */
|
||||||
|
if (bp.blockType != bt_compressed) {
|
||||||
|
DISPLAY("ZSTD_decodeSeqHeaders : impossible to test on this sample (not compressible)\n");
|
||||||
|
goto _cleanOut;
|
||||||
|
}
|
||||||
|
iend = ip + ZSTD_blockHeaderSize + cBlockSize; /* End of first block */
|
||||||
|
}
|
||||||
|
ip += ZSTD_blockHeaderSize; /* skip block header */
|
||||||
ZSTD_decompressBegin(g_zdc);
|
ZSTD_decompressBegin(g_zdc);
|
||||||
assert(iend > ip);
|
assert(iend > ip);
|
||||||
ip += ZSTD_decodeLiteralsBlock(g_zdc, ip, (size_t)(iend-ip)); /* skip literal segment */
|
ip += ZSTD_decodeLiteralsBlock(g_zdc, ip, (size_t)(iend-ip)); /* skip literal segment */
|
||||||
g_cSize = (size_t)(iend-ip);
|
g_cSize = (size_t)(iend-ip);
|
||||||
memcpy(buff2, ip, g_cSize); /* copy rest of block (it starts by SeqHeader) */
|
memcpy(dstBuff2, ip, g_cSize); /* copy rest of block (it starts by SeqHeader) */
|
||||||
srcSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */
|
srcSize = srcSize > 128 KB ? 128 KB : srcSize; /* speed relative to block */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -494,13 +499,13 @@ static int benchMem(unsigned benchNb,
|
|||||||
goto _cleanOut;
|
goto _cleanOut;
|
||||||
#endif
|
#endif
|
||||||
case 41 :
|
case 41 :
|
||||||
buff2 = &cparams;
|
payload = &cparams;
|
||||||
break;
|
break;
|
||||||
case 42 :
|
case 42 :
|
||||||
g_cSize = ZSTD_compress(buff2, dstBuffSize, src, srcSize, cLevel);
|
g_cSize = ZSTD_compress(payload, dstBuffSize, src, srcSize, cLevel);
|
||||||
break;
|
break;
|
||||||
case 43 :
|
case 43 :
|
||||||
buff2 = &cparams;
|
payload = &cparams;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* test functions */
|
/* test functions */
|
||||||
@@ -522,7 +527,7 @@ static int benchMem(unsigned benchNb,
|
|||||||
assert(tfs != NULL);
|
assert(tfs != NULL);
|
||||||
|
|
||||||
bp.benchFn = benchFunction;
|
bp.benchFn = benchFunction;
|
||||||
bp.benchPayload = buff2;
|
bp.benchPayload = payload;
|
||||||
bp.initFn = NULL;
|
bp.initFn = NULL;
|
||||||
bp.initPayload = NULL;
|
bp.initPayload = NULL;
|
||||||
bp.errorFn = ZSTD_isError;
|
bp.errorFn = ZSTD_isError;
|
||||||
|
|||||||
Reference in New Issue
Block a user