aboutsummaryrefslogtreecommitdiff
path: root/bench/src/Bench.c
diff options
context:
space:
mode:
Diffstat (limited to 'bench/src/Bench.c')
-rw-r--r--bench/src/Bench.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/bench/src/Bench.c b/bench/src/Bench.c
index 79a4e10..97410c3 100644
--- a/bench/src/Bench.c
+++ b/bench/src/Bench.c
@@ -14,6 +14,7 @@ struct BH_Bench
BH_BenchCallback cb;
int started;
size_t iterations;
+ size_t subcount;
};
@@ -51,6 +52,7 @@ void BH_BenchAdd(const char *name,
bench->cb = cb;
bench->started = 0;
bench->iterations = 0;
+ bench->subcount = 1;
/* Append benchmark entry */
current = root;
@@ -84,8 +86,8 @@ int BH_BenchIter(BH_Bench *state)
if (millis > 1000 || state->iterations > 1000000000)
{
float ips, ns;
- ips = state->iterations / (millis / 1000.0f);
- ns = (millis * 1000000.0) / state->iterations;
+ ips = state->iterations / (millis / 1000.0f) * state->subcount;
+ ns = (millis * 1000000.0) / state->iterations / state->subcount;
printf("%-12s %.2f ips (%.2f ns)\n", state->name, ips, ns);
return 0;
}
@@ -93,6 +95,13 @@ int BH_BenchIter(BH_Bench *state)
}
+void BH_BenchSubcount(BH_Bench *state,
+ size_t count)
+{
+ state->subcount = count;
+}
+
+
int BH_BenchRun(void)
{
BH_Bench *current;