Add bench_duration function

Conflicts:
	tests/bench_str.csv
This commit is contained in:
c9s 2014-05-22 17:03:33 +08:00
parent 7e44ee01f4
commit 3879316e08
2 changed files with 9 additions and 3 deletions

View file

@ -45,12 +45,16 @@ void bench_stop(bench *b) {
} }
double bench_iteration_speed(bench *b) { double bench_iteration_speed(bench *b) {
return b->N / (b->end - b->start); return (b->N * b->R) / (b->end - b->start);
}
double bench_duration(bench *b) {
return (b->end - b->start);
} }
void bench_print_summary(bench *b) { void bench_print_summary(bench *b) {
printf("%ld runs, ", b->R); printf("%ld runs, ", b->R);
printf("%ld iterations each run, ", b->N); printf("%ld iterations each run, ", b->N);
printf("finished in %lf seconds\n", b->end - b->start ); printf("finished in %lf seconds\n", bench_duration(b) );
printf("%.2f i/sec\n", (b->N * b->R) / (b->end - b->start) ); printf("%.2f i/sec\n", bench_iteration_speed(b) );
} }

View file

@ -35,6 +35,8 @@ double bench_iteration_speed(bench *b);
void bench_print_summary(bench *b); void bench_print_summary(bench *b);
double bench_duration(bench *b);
#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); \