#include <stdio.h>
#include <string.h>
#include <assert.h>
-#include <time.h>
-#include <sys/time.h>
+#include "benchmark.h"
#include "unstuff.h"
void test_basic_unstuff(unstuff_func_t* unstuff)
}
}
-double timediff(const struct timeval* a, const struct timeval* b)
-{
- return (double)(b->tv_sec - a->tv_sec) +
- (double)(b->tv_usec - a->tv_usec) * 1e-6;
-}
-
void test_performance(unstuff_func_t* unstuff)
{
const size_t len = 4096;
uint8_t src[len], dst[len];
gen_random_stuffed_data(src, len);
- struct timeval start, now;
- gettimeofday(&start, NULL);
+ start_benchmark_timer();
for (unsigned i = 0; i < num_runs; ++i) {
int ret = unstuff(dst, src, len);
assert(ret != -1);
}
- gettimeofday(&now, NULL);
-
- double diff = timediff(&start, &now);
+ double diff = stop_benchmark_timer();
double mb_sec = (len * num_runs) / (1048576.0 * diff);
- printf("%u runs with %zu bytes in %.2f seconds = %.2f MB/sec\n",
+ printf("%u runs with %zu bytes in %.2f CPU seconds = %.2f MB/sec\n",
num_runs, len, diff, mb_sec);
}