From 0fee509cf5f8452a85113c8a9a9b6e6e990b7f48 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 22 Mar 2015 16:11:08 +0100 Subject: [PATCH] avutil/timer: show histogram of cpu cycles each run took The new information is printed at verbose log level and can thus be switched on and off through the log level Signed-off-by: Michael Niedermayer --- libavutil/timer.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavutil/timer.h b/libavutil/timer.h index 13a3c8ca6a..f17f76b4f5 100644 --- a/libavutil/timer.h +++ b/libavutil/timer.h @@ -69,6 +69,8 @@ static uint64_t tsum = 0; \ static int tcount = 0; \ static int tskip_count = 0; \ + static int thistogram[32] = {0}; \ + thistogram[av_log2(tend - tstart)]++; \ if (tcount < 2 || \ tend - tstart < 8 * tsum / tcount || \ tend - tstart < 2000) { \ @@ -77,9 +79,13 @@ } else \ tskip_count++; \ if (((tcount + tskip_count) & (tcount + tskip_count - 1)) == 0) { \ + int i; \ av_log(NULL, AV_LOG_ERROR, \ - "%"PRIu64" " FF_TIMER_UNITS " in %s, %d runs, %d skips\n", \ + "%"PRIu64" " FF_TIMER_UNITS " in %s, %d runs, %d skips", \ tsum * 10 / tcount, id, tcount, tskip_count); \ + for (i = 0; i < 32; i++) \ + av_log(NULL, AV_LOG_VERBOSE, " %2d", av_log2(2*thistogram[i]));\ + av_log(NULL, AV_LOG_ERROR, "\n"); \ } \ } #else