16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-21 18:19:19 +02:00

perf window

This commit is contained in:
milek7
2019-03-27 23:13:51 +01:00
parent aa8d66e5da
commit 803bf23715
7 changed files with 134 additions and 8 deletions

11
Timer.h
View File

@@ -33,18 +33,23 @@ public:
m_start = std::chrono::steady_clock::now(); }
std::chrono::duration<float, std::milli>
stop() {
auto duration = std::chrono::duration_cast<std::chrono::microseconds>( ( std::chrono::steady_clock::now() - m_start ) );
m_accumulator = 0.95f * m_accumulator + duration.count() / 1000.f;
return duration;
m_last = std::chrono::duration_cast<std::chrono::microseconds>( ( std::chrono::steady_clock::now() - m_start ) );
m_accumulator = 0.95f * m_accumulator + m_last.count() / 1000.f;
return m_last;
}
float
average() const {
return m_accumulator / 20.f;}
std::chrono::microseconds
last() const {
return m_last;
}
private:
// members
std::chrono::time_point<std::chrono::steady_clock> m_start { std::chrono::steady_clock::now() };
float m_accumulator { 1000.f / 30.f * 20.f }; // 20 last samples, initial 'neutral' rate of 30 fps
std::chrono::microseconds m_last;
};
struct subsystem_stopwatches {