Reorder Arguments

make initFn nullable
This commit is contained in:
George Lu
2018-06-18 13:21:42 -07:00
parent 0d1ee22990
commit e482e328cd
3 changed files with 26 additions and 23 deletions
+12 -9
View File
@@ -281,11 +281,11 @@ static size_t local_defaultDecompress(
/* benchFn should return error value or out Size */
/* takes # of blocks and list of size & stuff for each. */
BMK_customReturn_t BMK_benchFunction(
size_t (*benchFn)(const void*, size_t, void*, size_t, void*), void* benchPayload,
size_t (*initFn)(void*), void* initPayload,
size_t blockCount,
const void* const * const srcBlockBuffers, const size_t* srcBlockSizes,
void* const * const dstBlockBuffers, const size_t* dstBlockCapacities,
size_t (*initFn)(void*), void* initPayload,
size_t (*benchFn)(const void*, size_t, void*, size_t, void*), void* benchPayload,
unsigned mode, unsigned iter) {
size_t srcSize = 0, dstSize = 0, ind = 0;
unsigned toAdd = 1;
@@ -336,7 +336,7 @@ BMK_customReturn_t BMK_benchFunction(
}
clockStart = UTIL_getTime();
(*initFn)(initPayload);
if(initFn != NULL) { (*initFn)(initPayload); }
for(i = 0; i < nbLoops; i++) {
for(j = 0; j < blockCount; j++) {
@@ -368,6 +368,7 @@ BMK_customReturn_t BMK_benchFunction(
{
unsigned i, j;
clockStart = UTIL_getTime();
if(initFn != NULL) { (*initFn)(initPayload); }
for(i = 0; i < iter; i++) {
for(j = 0; j < blockCount; j++) {
size_t res = (*benchFn)(srcBlockBuffers[j], srcBlockSizes[j], dstBlockBuffers[j], dstBlockCapacities[j], benchPayload);
@@ -511,10 +512,11 @@ BMK_return_t BMK_benchMemAdvanced(const void* srcBuffer, size_t srcSize,
cctxprep.adv = adv;
/* Compression */
DISPLAYLEVEL(2, "%2s-%-17.17s :%10u ->\r", marks[markNb], displayName, (U32)srcSize);
compressionResults = BMK_benchFunction(nbBlocks,
srcPtrs, srcSizes, cPtrs, cSizes,
&local_initCCtx, (void*)&cctxprep,
compressionResults = BMK_benchFunction(
&local_defaultCompress, (void*)(ctx),
&local_initCCtx, (void*)&cctxprep,
nbBlocks,
srcPtrs, srcSizes, cPtrs, cSizes,
adv->loopMode, adv->nbSeconds);
if(compressionResults.error) {
@@ -544,10 +546,11 @@ BMK_return_t BMK_benchMemAdvanced(const void* srcBuffer, size_t srcSize,
dctxprep.dctx = dctx;
dctxprep.dictBuffer = dictBuffer;
dctxprep.dictBufferSize = dictBufferSize;
decompressionResults = BMK_benchFunction(nbBlocks,
(const void * const *)cPtrs, cSizes, resPtrs, resSizes,
&local_initDCtx, (void*)&dctxprep,
decompressionResults = BMK_benchFunction(
&local_defaultDecompress, (void*)(dctx),
&local_initDCtx, (void*)&dctxprep,
nbBlocks,
(const void * const *)cPtrs, cSizes, resPtrs, resSizes,
adv->loopMode, adv->nbSeconds);
if(decompressionResults.error) {
+9 -7
View File
@@ -137,14 +137,15 @@ BMK_return_t BMK_benchMemAdvanced(const void* srcBuffer, size_t srcSize,
/* This function benchmarks the running time two functions (function specifics described */
/* blockCount - number of blocks (size of srcBuffers, srcSizes, dstBuffers, dstCapacities)
/* benchFn - (*benchFn)(srcBuffers[i], srcSizes[i], dstBuffers[i], dstCapacities[i], benchPayload)
* is run a variable number of times, specified by mode and iter args
* initFn - (*initFn)(initPayload) is run once per benchmark at the beginning. This argument can
* be NULL, in which case nothing is run.
* blockCount - number of blocks (size of srcBuffers, srcSizes, dstBuffers, dstCapacities)
* srcBuffers - an array of buffers to be operated on by benchFn
* srcSizes - an array of the sizes of above buffers
* dstBuffers - an array of buffers to be written into by benchFn
* dstCapacities - an array of the capacities of above buffers.
* initFn - (*initFn)(initPayload) is run once per benchmark
* benchFn - (*benchFn)(srcBuffers[i], srcSizes[i], dstBuffers[i], dstCapacities[i], benchPayload)
* is run a variable number of times, specified by mode and iter args
* mode - if 0, iter will be interpreted as the minimum number of seconds to run
* iter - see mode
* return
@@ -157,11 +158,12 @@ BMK_return_t BMK_benchMemAdvanced(const void* srcBuffer, size_t srcSize,
* into dstBuffer, hence this value will be the total amount of bytes written to
* dstBuffer.
*/
BMK_customReturn_t BMK_benchFunction(size_t blockCount,
BMK_customReturn_t BMK_benchFunction(
size_t (*benchFn)(const void*, size_t, void*, size_t, void*), void* benchPayload,
size_t (*initFn)(void*), void* initPayload,
size_t blockCount,
const void* const * const srcBuffers, const size_t* srcSizes,
void* const * const dstBuffers, const size_t* dstCapacities,
size_t (*initFn)(void*), void* initPayload,
size_t (*benchFn)(const void*, size_t, void*, size_t, void*), void* benchPayload,
unsigned mode, unsigned iter);
#endif /* BENCH_H_121279284357 */
+5 -7
View File
@@ -94,10 +94,6 @@ static size_t BMK_findMaxMem(U64 requiredMem)
/*_*******************************************************
* Benchmark wrappers
*********************************************************/
size_t local_nothing(void* x) {
(void)x;
return 0;
}
size_t local_ZSTD_compress(const void* src, size_t srcSize, void* dst, size_t dstSize, void* buff2)
{
@@ -431,10 +427,12 @@ static size_t benchMem(const void* src, size_t srcSize, U32 benchNb)
/* benchmark loop */
{
BMK_customReturn_t r = BMK_benchFunction(1, &src, &srcSize,
BMK_customReturn_t r = BMK_benchFunction(
benchFunction, buff2,
NULL, NULL,
1, &src, &srcSize,
(void * const * const)&dstBuff, &dstBuffSize,
&local_nothing, NULL,
benchFunction, buff2, BMK_timeMode, 1);
BMK_timeMode, 1);
if(r.error) {
DISPLAY("ERROR %d ! ! \n", r.error);
exit(1);