Merge pull request #16 from czarkoff/clock
Use clock_gettime() instead of clock()
This commit is contained in:
commit
b0fc6bfd5f
1 changed files with 29 additions and 23 deletions
|
@ -31,7 +31,7 @@
|
||||||
static int want_verbose = 0;
|
static int want_verbose = 0;
|
||||||
static int want_cell_dump = 0;
|
static int want_cell_dump = 0;
|
||||||
|
|
||||||
#define CLOCK_TO_MS(c) ((c) / (CLOCKS_PER_SEC / 1000))
|
#define MS(ts) (unsigned int)((ts.tv_sec * 1000) + (ts.tv_nsec / 1000000))
|
||||||
|
|
||||||
static struct quirc *decoder;
|
static struct quirc *decoder;
|
||||||
|
|
||||||
|
@ -40,9 +40,9 @@ struct result_info {
|
||||||
int id_count;
|
int id_count;
|
||||||
int decode_count;
|
int decode_count;
|
||||||
|
|
||||||
clock_t load_time;
|
unsigned int load_time;
|
||||||
clock_t identify_time;
|
unsigned int identify_time;
|
||||||
clock_t total_time;
|
unsigned int total_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void print_result(const char *name, struct result_info *info)
|
static void print_result(const char *name, struct result_info *info)
|
||||||
|
@ -57,15 +57,15 @@ static void print_result(const char *name, struct result_info *info)
|
||||||
(info->decode_count * 100 + info->id_count / 2) /
|
(info->decode_count * 100 + info->id_count / 2) /
|
||||||
info->id_count);
|
info->id_count);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("Total time [load: %ld, identify: %ld, total: %ld]\n",
|
printf("Total time [load: %u, identify: %u, total: %u]\n",
|
||||||
CLOCK_TO_MS(info->load_time),
|
info->load_time,
|
||||||
CLOCK_TO_MS(info->identify_time),
|
info->identify_time,
|
||||||
CLOCK_TO_MS(info->total_time));
|
info->total_time);
|
||||||
if (info->file_count)
|
if (info->file_count)
|
||||||
printf("Average time [load: %ld, identify: %ld, total: %ld]\n",
|
printf("Average time [load: %u, identify: %u, total: %u]\n",
|
||||||
CLOCK_TO_MS(info->load_time / info->file_count),
|
info->load_time / info->file_count,
|
||||||
CLOCK_TO_MS(info->identify_time / info->file_count),
|
info->identify_time / info->file_count,
|
||||||
CLOCK_TO_MS(info->total_time / info->file_count));
|
info->total_time / info->file_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_result(struct result_info *sum, struct result_info *inf)
|
static void add_result(struct result_info *sum, struct result_info *inf)
|
||||||
|
@ -85,8 +85,9 @@ static int scan_file(const char *path, const char *filename,
|
||||||
int (*loader)(struct quirc *, const char *);
|
int (*loader)(struct quirc *, const char *);
|
||||||
int len = strlen(filename);
|
int len = strlen(filename);
|
||||||
const char *ext;
|
const char *ext;
|
||||||
clock_t start;
|
struct timespec tp;
|
||||||
clock_t total_start;
|
long start;
|
||||||
|
long total_start;
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -100,18 +101,22 @@ static int scan_file(const char *path, const char *filename,
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
total_start = start = clock();
|
(void)clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp);
|
||||||
|
total_start = start = MS(tp);
|
||||||
ret = loader(decoder, path);
|
ret = loader(decoder, path);
|
||||||
info->load_time = clock() - start;
|
(void)clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp);
|
||||||
|
info->load_time = MS(tp) - start;
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "%s: load failed\n", filename);
|
fprintf(stderr, "%s: load failed\n", filename);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
start = clock();
|
(void)clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp);
|
||||||
|
start = MS(tp);
|
||||||
quirc_end(decoder);
|
quirc_end(decoder);
|
||||||
info->identify_time = clock() - start;
|
(void)clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp);
|
||||||
|
info->identify_time = MS(tp) - start;
|
||||||
|
|
||||||
info->id_count = quirc_count(decoder);
|
info->id_count = quirc_count(decoder);
|
||||||
for (i = 0; i < info->id_count; i++) {
|
for (i = 0; i < info->id_count; i++) {
|
||||||
|
@ -124,12 +129,13 @@ static int scan_file(const char *path, const char *filename,
|
||||||
info->decode_count++;
|
info->decode_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
info->total_time += clock() - total_start;
|
(void)clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tp);
|
||||||
|
info->total_time += MS(tp) - total_start;
|
||||||
|
|
||||||
printf(" %-30s: %5ld %5ld %5ld %5d %5d\n", filename,
|
printf(" %-30s: %5u %5u %5u %5d %5d\n", filename,
|
||||||
CLOCK_TO_MS(info->load_time),
|
info->load_time,
|
||||||
CLOCK_TO_MS(info->identify_time),
|
info->identify_time,
|
||||||
CLOCK_TO_MS(info->total_time),
|
info->total_time,
|
||||||
info->id_count, info->decode_count);
|
info->id_count, info->decode_count);
|
||||||
|
|
||||||
if (want_cell_dump || want_verbose) {
|
if (want_cell_dump || want_verbose) {
|
||||||
|
|
Loading…
Reference in a new issue