}
}
/* Bench */
- /*
- if (adv->separateFiles) {
- const BYTE* srcPtr = (const BYTE*)srcBuffer;
- U32 fileNb;
- res.result.results = (BMK_result_t**)malloc(sizeof(BMK_result_t*) * nbFiles);
- res.result.nbFiles = nbFiles;
- if(res.result.results == NULL) EXM_THROW(12, BMK_return_t, "not enough memory");
- for (fileNb=0; fileNb<nbFiles; fileNb++) {
- size_t const fileSize = fileSizes[fileNb];
- BMK_return_t errorOrPtr = BMK_benchCLevel(srcPtr, fileSize,
- fileSizes+fileNb, 1,
- cLevel, compressionParams,
- dictBuffer, dictBufferSize,
- displayLevel, fileNamesTable[fileNb],
- adv);
- if(errorOrPtr.error) {
- res.error = errorOrPtr.error;
- return res;
- }
- res.result.results[fileNb] = errorOrPtr.result;
- srcPtr += fileSize;
- }
-
- } else */
{
char mfName[20] = {0};
snprintf (mfName, sizeof(mfName), " %u files", nbFiles);
{
double const compressibility = (double)g_compressibilityDefault / 100;
- if (cLevel > ZSTD_maxCLevel()) cLevel = ZSTD_maxCLevel();
- /* if (cLevelLast > ZSTD_maxCLevel()) cLevelLast = ZSTD_maxCLevel();
- if (cLevelLast < cLevel) cLevelLast = cLevel;
- if (cLevelLast > cLevel)
- DISPLAYLEVEL(2, "Benchmarking levels from %d to %d\n", cLevel, cLevelLast); */
-
+ if (cLevel > ZSTD_maxCLevel()) {
+ EXM_THROW(15, BMK_return_t, "Invalid Compression Level");
+ }
if (nbFiles == 0) {
return BMK_syntheticTest(cLevel, compressibility, compressionParams, displayLevel, adv);
}
BMK_advancedParams_t BMK_initAdvancedParams(void);
/* called in cli */
+/* Loads files in fileNamesTable into memory, as well as a dictionary
+ * from dictFileName, and then uses benchMem */
/* fileNamesTable - name of files to benchmark
* nbFiles - number of files (size of fileNamesTable)
* dictFileName - name of dictionary file to load
- * cLevel - lowest compression level to benchmark
- * cLevellast - highest compression level to benchmark (everything in the range [cLevel, cLevellast]) will be benchmarked
+ * cLevel - compression level to benchmark, errors if invalid
* compressionParams - basic compression Parameters
* displayLevel - what gets printed
* 0 : no display;
int cLevel, const ZSTD_compressionParameters* compressionParams,
int displayLevel, const BMK_advancedParams_t* const adv);
-/* basic benchmarking function, called in paramgrill ctx, dctx must be provided */
+/* basic benchmarking function, called in paramgrill
+ * applies ZSTD_compress_generic() and ZSTD_decompress_generic() on data in srcBuffer
+ * with specific compression parameters specified by other arguments using benchFunction
+ * (cLevel, comprParams + adv in advanced Mode) */
/* srcBuffer - data source, expected to be valid compressed data if in Decode Only Mode
* srcSize - size of data in srcBuffer
* cLevel - compression level
* comprParams - basic compression parameters
* dictBuffer - a dictionary if used, null otherwise
* dictBufferSize - size of dictBuffer, 0 otherwise
- * ctx - Compression Context
- * dctx - Decompression Context
+ * ctx - Compression Context (must be provided)
+ * dctx - Decompression Context (must be provided)
* diplayLevel - see BMK_benchFiles
* displayName - name used by display
* return
int displayLevel, const char* displayName,
const BMK_advancedParams_t* adv);
-/* This function benchmarks the running time two functions (function specifics described */
+/* This function times the execution of 2 argument functions, benchFn and initFn */
/* benchFn - (*benchFn)(srcBuffers[i], srcSizes[i], dstBuffers[i], dstCapacities[i], benchPayload)
* is run a variable number of times, specified by mode and iter args
#include <errno.h> /* errno */
#include "fileio.h" /* stdinmark, stdoutmark, ZSTD_EXTENSION */
#ifndef ZSTD_NOBENCH
-# include "bench.h" /* BMK_benchFiles, BMK_SetNbSeconds */
+# include "bench.h" /* BMK_benchFiles */
#endif
#ifndef ZSTD_NODICT
# include "dibio.h" /* ZDICT_cover_params_t, DiB_trainFromFiles() */
adv.ldmHashEveryLog = g_ldmHashEveryLog;
}
- for(; cLevel <= cLevelLast; cLevel++) {
- if(separateFiles) {
- unsigned i;
- for(i = 0; i < filenameIdx; i++) {
- BMK_benchFilesAdvanced(&filenameTable[i], 1, dictFileName, cLevel, &compressionParams, g_displayLevel, &adv);
+ if (cLevel > ZSTD_maxCLevel()) cLevel = ZSTD_maxCLevel();
+ if (cLevelLast > ZSTD_maxCLevel()) cLevelLast = ZSTD_maxCLevel();
+ if (cLevelLast < cLevel) cLevelLast = cLevel;
+ if (cLevelLast > cLevel)
+ DISPLAYLEVEL(2, "Benchmarking levels from %d to %d\n", cLevel, cLevelLast);
+
+ if(separateFiles) {
+ unsigned i;
+ for(i = 0; i < filenameIdx; i++) {
+ DISPLAYLEVEL(2, "Benchmarking %s \n", filenameTable[i]);
+ int c;
+ for(c = cLevel; c <= cLevelLast; c++) {
+ BMK_benchFilesAdvanced(&filenameTable[i], 1, dictFileName, c, &compressionParams, g_displayLevel, &adv);
}
- } else {
- BMK_benchFilesAdvanced(filenameTable, filenameIdx, dictFileName, cLevel, &compressionParams, g_displayLevel, &adv);
}
+ } else {
+ for(; cLevel <= cLevelLast; cLevel++) {
+ BMK_benchFilesAdvanced(filenameTable, filenameIdx, dictFileName, cLevel, &compressionParams, g_displayLevel, &adv);
+ }
}
#else