aboutsummaryrefslogtreecommitdiff
path: root/benchmark/benchmark.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-06-13 22:28:49 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-06-13 22:28:49 +0200
commitc04a283a7ab97903683f5f7268068aef69f5bddf (patch)
tree9809c4a71c2ad1a5123371c32c34f03b1b703ecf /benchmark/benchmark.h
parent7812684339d03f6993882358b0045c1bc2d5032c (diff)
downloadnissy-core-c04a283a7ab97903683f5f7268068aef69f5bddf.tar.gz
nissy-core-c04a283a7ab97903683f5f7268068aef69f5bddf.zip
Added benchmark; removed old folder
Diffstat (limited to 'benchmark/benchmark.h')
-rw-r--r--benchmark/benchmark.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/benchmark/benchmark.h b/benchmark/benchmark.h
new file mode 100644
index 0000000..e9361a8
--- /dev/null
+++ b/benchmark/benchmark.h
@@ -0,0 +1,39 @@
1#include <stdbool.h>
2#include <inttypes.h>
3#include <stdio.h>
4#include <stdlib.h>
5#include <time.h>
6
7double
8time_benchmark(void (*run)(void), char *name)
9{
10 struct timespec start, end;
11 double tdiff, tdsec, tdnano;
12
13 printf("\n");
14 fflush(stdout);
15
16 if (run == NULL) {
17 printf("> %s: nothing to run!\n", name);
18 fflush(stdout);
19 return -1.0;
20 }
21
22 printf("Benchmark: %s\n\n", name);
23 printf("==========\n");
24 fflush(stdout);
25
26 clock_gettime(CLOCK_MONOTONIC, &start);
27 run();
28 clock_gettime(CLOCK_MONOTONIC, &end);
29
30 tdsec = end.tv_sec - start.tv_sec;
31 tdnano = end.tv_nsec - start.tv_nsec;
32 tdiff = tdsec + 1e-9 * tdnano;
33
34 printf("==========\n");
35 printf("\nTotal time: %.4fs\n", tdiff);
36 fflush(stdout);
37
38 return tdiff;
39}

Generated with cgit - Back to sebastiano.tronto.net