feat: log tick/idle diagnostics in example server
Brackets game_tick() with skele_clock_tick_begin/end and the sleep-to-hit-tick-rate call with skele_clock_idle_begin/end.
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
#include <skele/clock.h>
|
#include <skele/clock.h>
|
||||||
#include <skele/skele.h>
|
#include <skele/skele.h>
|
||||||
#include <stk/stk.h>
|
#include <stk/stk.h>
|
||||||
|
#include <stk/stk_log.h>
|
||||||
|
|
||||||
static uint8_t running = 1;
|
static uint8_t running = 1;
|
||||||
|
|
||||||
@@ -11,6 +12,7 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
uint64_t tick_start;
|
uint64_t tick_start;
|
||||||
uint64_t elapsed;
|
uint64_t elapsed;
|
||||||
|
uint64_t last_print = 0;
|
||||||
|
|
||||||
(void)argc;
|
(void)argc;
|
||||||
(void)argv;
|
(void)argv;
|
||||||
@@ -33,13 +35,27 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
while (running) {
|
while (running) {
|
||||||
tick_start = skele_time_ns();
|
tick_start = skele_time_ns();
|
||||||
|
skele_clock_tick_begin();
|
||||||
|
|
||||||
stk_poll();
|
stk_poll();
|
||||||
game_tick();
|
game_tick();
|
||||||
|
skele_clock_tick_end();
|
||||||
|
|
||||||
|
if (tick_start - last_print >= 1000000000ULL) {
|
||||||
|
stk_log(STK_LOG_INFO,
|
||||||
|
"tps=%.1f tick=%lluns/%lluns idle=%lluns",
|
||||||
|
skele_tps,
|
||||||
|
(unsigned long long)skele_tick_time_ns,
|
||||||
|
(unsigned long long)skele_tick_ns,
|
||||||
|
(unsigned long long)skele_tick_idle_ns);
|
||||||
|
last_print = tick_start;
|
||||||
|
}
|
||||||
|
|
||||||
elapsed = skele_time_ns() - tick_start;
|
elapsed = skele_time_ns() - tick_start;
|
||||||
|
skele_clock_idle_begin();
|
||||||
if (elapsed < skele_tick_ns)
|
if (elapsed < skele_tick_ns)
|
||||||
skele_sleep_ns(skele_tick_ns - elapsed);
|
skele_sleep_ns(skele_tick_ns - elapsed);
|
||||||
|
skele_clock_idle_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
game_shutdown();
|
game_shutdown();
|
||||||
|
|||||||
Reference in New Issue
Block a user