Track and display maxima in performance monitor
This commit is contained in:
parent
51cd623af9
commit
6c248b0707
@ -22,6 +22,7 @@
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
double freq;
|
double freq;
|
||||||
uint64_t start, evt, update, render;
|
uint64_t start, evt, update, render;
|
||||||
|
double max_start, max_evt, max_update, max_render, max_total;
|
||||||
} perf_t;
|
} perf_t;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
@ -74,15 +75,26 @@ int main(int argc, char *argv[])
|
|||||||
// Print performance analysis every 16 frames
|
// Print performance analysis every 16 frames
|
||||||
if ((frame & 15) == 0) {
|
if ((frame & 15) == 0) {
|
||||||
const double evt = (perf.evt - perf.start) / perf.freq;
|
const double evt = (perf.evt - perf.start) / perf.freq;
|
||||||
|
if (evt > perf.max_evt)
|
||||||
|
perf.max_evt = evt;
|
||||||
const double update = (perf.update - perf.evt) / perf.freq;
|
const double update = (perf.update - perf.evt) / perf.freq;
|
||||||
|
if (update > perf.max_update)
|
||||||
|
perf.max_update = update;
|
||||||
const double render = (perf.render - perf.update) / perf.freq;
|
const double render = (perf.render - perf.update) / perf.freq;
|
||||||
|
if (render > perf.max_render)
|
||||||
|
perf.max_render = render;
|
||||||
const double total = (perf.render - perf.start) / perf.freq;
|
const double total = (perf.render - perf.start) / perf.freq;
|
||||||
|
if (total > perf.max_total)
|
||||||
|
perf.max_total = total;
|
||||||
const double total_pc = 100 * total / (1000000 * interval);
|
const double total_pc = 100 * total / (1000000 * interval);
|
||||||
printf(
|
printf(
|
||||||
VT100_CLEAR VT100_CURSORTOPLEFT
|
VT100_CLEAR VT100_CURSORTOPLEFT
|
||||||
"evt\t%10.3f μs\nupdate\t%10.3f μs\nrender\t"
|
"evt\t[max %10.3f μs] %10.3f μs\n"
|
||||||
"%10.3f μs\ntotal\t%10.3f μs (%.2f%% of %.3f ms)\n",
|
"update\t[max %10.3f μs] %10.3f μs\n"
|
||||||
evt, update, render, total, total_pc, 1000 * interval);
|
"render\t[max %10.3f μs] %10.3f μs\n"
|
||||||
|
"total\t[max %10.3f μs] %10.3f μs -- %.2f%% of %.3f ms\n",
|
||||||
|
perf.max_evt, evt, perf.max_update, update, perf.max_render,
|
||||||
|
render, perf.max_total, total, total_pc, 1000 * interval);
|
||||||
}
|
}
|
||||||
++frame;
|
++frame;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user