/*
- bench.c - Demo module to benchmark open-source compression algorithms
- Copyright (C) Yann Collet 2012-2015
+ bench.c - open-source compression benchmark module
+ Copyright (C) Yann Collet 2012-2016
GPL v2 License
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
You can contact the author at :
+ - zstd homepage : http://www.zstd.net
- zstd source repository : https://github.com/Cyan4973/zstd
- - ztsd public forum : https://groups.google.com/forum/#!forum/lz4c
*/
/* **************************************
/* *************************************
* Includes
***************************************/
-#define _POSIX_C_SOURCE 199309L /* before <time.h> - needed for nanosleep() */
+#define _POSIX_C_SOURCE 199309L /* before <time.h> - needed for nanosleep() */
#include <stdlib.h> /* malloc, free */
#include <string.h> /* memset */
#include <stdio.h> /* fprintf, fopen, ftello64 */
#include <sys/types.h> /* stat64 */
#include <sys/stat.h> /* stat64 */
-#include <time.h> /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */
+#include <time.h> /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */
/* sleep : posix - windows - others */
#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
#include "xxhash.h"
-
/* *************************************
* Compiler specifics
***************************************/
# define S_ISREG(x) (((x) & S_IFMT) == S_IFREG)
#endif
-#ifdef _MSC_VER
-#define snprintf sprintf_s
+#if defined(_MSC_VER)
+# define snprintf sprintf_s
+#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
+ /* part of <stdio.h> */
+#else
+ extern int snprintf (char* s, size_t maxlen, const char* format, ...); /* not declared in <stdio.h> when C version < c99 */
#endif
static U64 BMK_clockSpan( BMK_time_t clockStart, BMK_time_t ticksPerSecond )
{
BMK_time_t clockEnd;
-
+
(void)ticksPerSecond;
BMK_getTime(clockEnd);
return BMK_getSpanTimeMicro(ticksPerSecond, clockStart, clockEnd);
double dSpeed;
} benchResult_t;
-
+
#define MIN(a,b) ((a)<(b) ? (a) : (b))
#define MAX(a,b) ((a)>(b) ? (a) : (b))
if (crcOrig == crcCheck) {
result->ratio = ratio;
result->cSize = cSize;
- result->cSpeed = (double)srcSize / fastestC;
+ result->cSpeed = (double)srcSize / fastestC;
result->dSpeed = (double)srcSize / fastestD;
}
DISPLAYLEVEL(2, "%2i#\n", cLevel);
if (cLevelLast < cLevel) cLevelLast = cLevel;
- for (l=cLevel; l <= cLevelLast; l++) {
+ for (l=cLevel; l <= cLevelLast; l++) {
BMK_benchMem(srcBuffer, benchedSize,
displayName, l,
fileSizes, nbFiles,
total.cSpeed += result.cSpeed;
total.dSpeed += result.dSpeed;
total.ratio += result.ratio;
- }
- }
- if (g_displayLevel == 1 && cLevelLast > cLevel)
- {
+ } }
+ if (g_displayLevel == 1 && cLevelLast > cLevel) {
total.cSize /= 1+cLevelLast-cLevel;
total.cSpeed /= 1+cLevelLast-cLevel;
total.dSpeed /= 1+cLevelLast-cLevel;
total.ratio /= 1+cLevelLast-cLevel;
- DISPLAY("avg%11i (%5.3f) %6.1f MB/s %6.1f MB/s %s\n", (int)total.cSize, total.ratio, total.cSpeed, total.dSpeed, displayName);
+ DISPLAY("avg%11i (%5.3f) %6.1f MB/s %6.1f MB/s %s\n", (int)total.cSize, total.ratio, total.cSpeed, total.dSpeed, displayName);
}
}