diff options
Diffstat (limited to 'genqrcode/tests/prof_qrencode.c')
| -rw-r--r-- | genqrcode/tests/prof_qrencode.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/genqrcode/tests/prof_qrencode.c b/genqrcode/tests/prof_qrencode.c new file mode 100644 index 0000000000..8aa9a98b95 --- /dev/null +++ b/genqrcode/tests/prof_qrencode.c @@ -0,0 +1,102 @@ +#include <stdio.h> +#include <stdlib.h> +#if HAVE_CONFIG_H +#include "../config.h" +#endif +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif +#include <errno.h> +#include "../qrencode.h" + +#ifdef _MSC_VER +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +static LARGE_INTEGER startTime; +static LARGE_INTEGER frequency = { .QuadPart = 0 }; +#else +static struct timeval tv; +#endif + +static void timerStart(const char *str) +{ + printf("%s: START\n", str); +#ifdef _MSC_VER + (void) QueryPerformanceCounter(&startTime); +#else + gettimeofday(&tv, NULL); +#endif +} + +static void timerStop(void) +{ +#ifdef _MSC_VER + LARGE_INTEGER endTime, elapsed; + (void) QueryPerformanceCounter(&endTime); + if (frequency.QuadPart == 0) { + (void) QueryPerformanceFrequency(&frequency); + } + + elapsed.QuadPart = endTime.QuadPart - startTime.QuadPart; + elapsed.QuadPart *= 1000; + elapsed.QuadPart /= frequency.QuadPart; + + printf("STOP: %lld msec\n", elapsed.QuadPart); +#else + struct timeval tc; + + gettimeofday(&tc, NULL); + printf("STOP: %ld msec\n", (tc.tv_sec - tv.tv_sec) * 1000 + + (tc.tv_usec - tv.tv_usec) / 1000); +#endif +} + +static void prof_ver1to10(void) +{ + QRcode *code; + int i; + int version; + static const char *data = "This is test."; + + timerStart("Version 1 - 10 (5000 symbols for each)"); + for(i=0; i<5000; i++) { + for(version = 0; version < 11; version++) { + code = QRcode_encodeString(data, version, QR_ECLEVEL_L, QR_MODE_8, 0); + if(code == NULL) { + perror("Failed to encode:"); + } else { + QRcode_free(code); + } + } + } + timerStop(); +} + +static void prof_ver31to40(void) +{ + QRcode *code; + int i; + int version; + static const char *data = "This is test."; + + timerStart("Version 31 - 40 (500 symbols for each)"); + for(i=0; i<500; i++) { + for(version = 31; version < 41; version++) { + code = QRcode_encodeString(data, version, QR_ECLEVEL_L, QR_MODE_8, 0); + if(code == NULL) { + perror("Failed to encode:"); + } else { + QRcode_free(code); + } + } + } + timerStop(); +} + +int main() +{ + prof_ver1to10(); + prof_ver31to40(); + + return 0; +} |
