From 7eb16a55503855d65c49b0a7e356a317c1325515 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Tue, 4 Aug 2009 10:12:41 -0700 Subject: Beginnings of a more extensive benchmarking suite. --- benchmark/main.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 benchmark/main.c (limited to 'benchmark/main.c') diff --git a/benchmark/main.c b/benchmark/main.c new file mode 100644 index 0000000..c038287 --- /dev/null +++ b/benchmark/main.c @@ -0,0 +1,32 @@ + +#include +#include +#include + +static bool initialize(); +static void cleanup(); +static size_t run(); + +int main (int argc, char *argv[]) +{ + if(!initialize()) { + fprintf(stderr, "%s: failed to initialize\n", argv[0]); + return 1; + } + + size_t total_bytes = 0; + clock_t before = clock(); + for(int i = 0; true; i++) { + if((i & 0xFF) == 0 && (clock() - before > CLOCKS_PER_SEC)) break; + size_t bytes = run(); + if(bytes == 0) { + fprintf(stderr, "%s: failed.\n", argv[0]); + return 2; + } + total_bytes += bytes; + } + double elapsed = ((double)clock() - before) / CLOCKS_PER_SEC; + printf("%s: %d\n", argv[0], (int)(total_bytes / elapsed / (1 << 20))); + cleanup(); + return 0; +} -- cgit v1.2.3