jabyengine/examples/PoolBox/application/old/Overlay/TimerTests/timer_tests.cpp

40 lines
1.3 KiB
C++

#include "../Overlay.hpp"
#include <stdio.h>
extern "C" void busy_loop(int count);
namespace Overlay {
namespace TimerTest {
static size_t avg = 0;
static size_t cur_rounds = 0;
void mesaure_busy_loop() {
static constexpr auto Counts = 500;
JabyEngine::HighResTime::enable();
const auto start = JabyEngine::HighResTime::get_time_stamp();
busy_loop(Counts);
const auto end = JabyEngine::HighResTime::get_time_stamp();
JabyEngine::HighResTime::disable();
printf("Busy loop of %i took %ims %ins\n", Counts, start.milliseconds_to(end), start.microseconds_to(end));
}
TimeStamp start_measuring() {
return JabyEngine::HighResTime::get_time_stamp();
}
void end_measuring(const TimeStamp& start, size_t data_samples) {
const auto end = JabyEngine::HighResTime::get_time_stamp();
avg += start.microseconds_to(end);
cur_rounds++;
if(cur_rounds == data_samples) {
printf("AVG Time: %ius\n", avg/cur_rounds);
avg = 0;
cur_rounds = 0;
}
}
}
}