mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-26 17:32:06 +00:00
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>
This commit is contained in:
parent
1f5d1eed78
commit
0fee509cf5
@ -69,6 +69,8 @@
|
|||||||
static uint64_t tsum = 0; \
|
static uint64_t tsum = 0; \
|
||||||
static int tcount = 0; \
|
static int tcount = 0; \
|
||||||
static int tskip_count = 0; \
|
static int tskip_count = 0; \
|
||||||
|
static int thistogram[32] = {0}; \
|
||||||
|
thistogram[av_log2(tend - tstart)]++; \
|
||||||
if (tcount < 2 || \
|
if (tcount < 2 || \
|
||||||
tend - tstart < 8 * tsum / tcount || \
|
tend - tstart < 8 * tsum / tcount || \
|
||||||
tend - tstart < 2000) { \
|
tend - tstart < 2000) { \
|
||||||
@ -77,9 +79,13 @@
|
|||||||
} else \
|
} else \
|
||||||
tskip_count++; \
|
tskip_count++; \
|
||||||
if (((tcount + tskip_count) & (tcount + tskip_count - 1)) == 0) { \
|
if (((tcount + tskip_count) & (tcount + tskip_count - 1)) == 0) { \
|
||||||
|
int i; \
|
||||||
av_log(NULL, AV_LOG_ERROR, \
|
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); \
|
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
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user