Add bench_append_csv to combine multiple benchmark result in one entry
This commit is contained in:
parent
3879316e08
commit
7f97440c72
3 changed files with 34 additions and 3 deletions
|
@ -9,8 +9,9 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#include <stdarg.h> /* va_list, va_start, va_arg, va_end */
|
||||||
|
|
||||||
long unixtime() {
|
unsigned long unixtime() {
|
||||||
struct timeval tp;
|
struct timeval tp;
|
||||||
long sec = 0L;
|
long sec = 0L;
|
||||||
if (gettimeofday((struct timeval *) &tp, (NUL)) == 0) {
|
if (gettimeofday((struct timeval *) &tp, (NUL)) == 0) {
|
||||||
|
@ -35,7 +36,6 @@ double microtime() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void bench_start(bench *b) {
|
void bench_start(bench *b) {
|
||||||
b->start = microtime();
|
b->start = microtime();
|
||||||
}
|
}
|
||||||
|
@ -58,3 +58,30 @@ void bench_print_summary(bench *b) {
|
||||||
printf("finished in %lf seconds\n", bench_duration(b) );
|
printf("finished in %lf seconds\n", bench_duration(b) );
|
||||||
printf("%.2f i/sec\n", bench_iteration_speed(b) );
|
printf("%.2f i/sec\n", bench_iteration_speed(b) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void bench_append_csv(char *filename, int countOfB, ...) {
|
||||||
|
FILE *fp = fopen(filename, "a+");
|
||||||
|
if(!fp) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long ts = unixtime();
|
||||||
|
fprintf(fp, "%ld", ts);
|
||||||
|
|
||||||
|
|
||||||
|
int i;
|
||||||
|
bench * b;
|
||||||
|
va_list vl;
|
||||||
|
va_start(vl,countOfB);
|
||||||
|
for (i=0 ; i < countOfB ; i++) {
|
||||||
|
b = va_arg(vl, bench*);
|
||||||
|
fprintf(fp, ",%.2f", bench_iteration_speed(b) );
|
||||||
|
}
|
||||||
|
va_end(vl);
|
||||||
|
|
||||||
|
fprintf(fp, "\n");
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ typedef struct {
|
||||||
double end;
|
double end;
|
||||||
} bench;
|
} bench;
|
||||||
|
|
||||||
long unixtime();
|
unsigned long unixtime();
|
||||||
|
|
||||||
double microtime();
|
double microtime();
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@ void bench_print_summary(bench *b);
|
||||||
|
|
||||||
double bench_duration(bench *b);
|
double bench_duration(bench *b);
|
||||||
|
|
||||||
|
void bench_append_csv(char *filename, int countOfB, ...);
|
||||||
|
|
||||||
#define BENCHMARK(B) \
|
#define BENCHMARK(B) \
|
||||||
bench B; B.N = 5000000; B.R = 3; \
|
bench B; B.N = 5000000; B.R = 3; \
|
||||||
bench_start(&B); \
|
bench_start(&B); \
|
||||||
|
@ -55,4 +57,5 @@ double bench_duration(bench *b);
|
||||||
fprintf(fp, "%ld,%.2f\n", unixtime(), (B.N * B.R) / (B.end - B.start)); \
|
fprintf(fp, "%ld,%.2f\n", unixtime(), (B.N * B.R) / (B.end - B.start)); \
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
|
|
||||||
#endif /* !BENCH_H */
|
#endif /* !BENCH_H */
|
||||||
|
|
|
@ -443,3 +443,4 @@
|
||||||
1400668574,13632260.72
|
1400668574,13632260.72
|
||||||
1400681414,10832905.89
|
1400681414,10832905.89
|
||||||
1400685490,13185955.87
|
1400685490,13185955.87
|
||||||
|
1400762875,10472029.42
|
||||||
|
|
|
Loading…
Reference in a new issue