diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2023-07-08 20:20:22 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2023-07-08 21:22:29 -0700 |
commit | 8132787168fa57da870edfb816589588d4620e1b (patch) | |
tree | 9042ae650b8f9826f2c323339d9e69d1852cfbba /src/til.c | |
parent | 4bad0667dd6ddfa1a43339ae37b3535550e8e264 (diff) |
til: measure til_module_render() durations
This stows the duration (in ticks (which are ms for now)) of a
given module context's most recent, as well as tracking the max,
in til_module_context_t.
For now it's also added to --print-module-contexts output, but
this is still rather primitive and nearly inscrutible in
practice... that output is a flickery and unsorted mess during
playback. But this is just a start.
Ticks may need to move up to microseconds if it'll also be the
units for measuring timings. Right now things are slow enough
that the low-hanging fruit stand out as multiple if not dozens of
milliseconds so it's still useful for now.
Diffstat (limited to 'src/til.c')
-rw-r--r-- | src/til.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -414,7 +414,14 @@ static void module_render_fragment(til_module_context_t *context, til_stream_t * */ void til_module_render(til_module_context_t *context, til_stream_t *stream, unsigned ticks, til_fb_fragment_t **fragment_ptr) { + unsigned start = til_ticks_now(); + module_render_fragment(context, stream, til_threads, ticks, fragment_ptr); + + context->last_render_duration = til_ticks_now() - start; + if (context->last_render_duration > context->max_render_duration) + context->max_render_duration = context->last_render_duration; + context->renders_count++; context->last_ticks = ticks; } |