X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=metrics.c;h=1ebdac75399c9b66b33dd2a5ebd8cc1e8ad1faa0;hb=60da7cb02ac89aadc0566fda60613042c0c136a7;hp=84fc23f6b20b02a2a15ece51ee9b63447d4e5466;hpb=fac9c8c2d3bfc5e97f2fdcf90f8cbe3ac9b2c49e;p=fips diff --git a/metrics.c b/metrics.c index 84fc23f..1ebdac7 100644 --- a/metrics.c +++ b/metrics.c @@ -37,6 +37,9 @@ typedef struct counter typedef struct program_metrics { + /* This happens to also be the index into the + * ctx->program_metrics array currently + */ unsigned id; double ticks; } program_metrics_t; @@ -57,6 +60,9 @@ typedef struct context context_t current_context; +int frames; +int verbose; + unsigned metrics_counter_new (void) { @@ -132,24 +138,36 @@ print_program_metrics (void) for (i = 0; i < ctx->num_program_metrics; i++) { if (ctx->program_metrics[i].ticks == 0.0) continue; - printf ("Program %d:\t%7.2f mega-ticks\n", + printf ("Program %d:\t%7.2f ms\n", i, ctx->program_metrics[i].ticks / 1e6); } } +/* Called at program exit */ +static void +metrics_exit (void) +{ + if (verbose) + printf ("fips: terminating\n"); +} + + void metrics_end_frame (void) { static int initialized = 0; - static int frames; static struct timeval tv_start, tv_now; if (! initialized) { - frames = 0; gettimeofday (&tv_start, NULL); + atexit (metrics_exit); + if (getenv ("FIPS_VERBOSE")) + verbose = 1; initialized = 1; } + if (verbose) + printf ("fips: frame %d complete\n", frames); frames++; gettimeofday (&tv_now, NULL);