summaryrefslogtreecommitdiff
path: root/libavutil/timer.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-03-22 16:11:08 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-03-27 04:20:13 +0100
commit0fee509cf5f8452a85113c8a9a9b6e6e990b7f48 (patch)
tree103dcba220122ebbe6b50a75a188592419985788 /libavutil/timer.h
parent1f5d1eed78fad63f1c80a3766d3dc2421b99104d (diff)
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 <michaelni@gmx.at>
Diffstat (limited to 'libavutil/timer.h')
-rw-r--r--libavutil/timer.h8
1 files changed, 7 insertions, 1 deletions
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