summaryrefslogtreecommitdiff
path: root/benchmark/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/main.c')
-rw-r--r--benchmark/main.c32
1 files changed, 32 insertions, 0 deletions
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 <stdbool.h>
+#include <time.h>
+#include <stdio.h>
+
+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;
+}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback