summaryrefslogtreecommitdiffhomepage
path: root/logic
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2019-03-19 06:27:33 +0100
committerStanislaw Halik <sthalik@misaki.pl>2019-03-19 06:27:33 +0100
commit36b2d71c26baefa4318383326e0fec61d5aa3616 (patch)
tree23ab77e1602ee4451033551b280f6515aea41663 /logic
parent6c031cbf7234cd5e58a09a984f21b938a30feafe (diff)
logic/pipeline: improve DEBUG_TIMINGS
Diffstat (limited to 'logic')
-rw-r--r--logic/pipeline.cpp30
1 files changed, 23 insertions, 7 deletions
diff --git a/logic/pipeline.cpp b/logic/pipeline.cpp
index 1cd23110..130b7eff 100644
--- a/logic/pipeline.cpp
+++ b/logic/pipeline.cpp
@@ -29,6 +29,11 @@
# include <mmsystem.h>
#endif
+//#define DEBUG_TIMINGS
+#ifdef DEBUG_TIMINGS
+# include "compat/variance.hpp"
+#endif
+
namespace pipeline_impl {
reltrans::reltrans() = default;
@@ -198,7 +203,6 @@ double pipeline::map(double pos, Map& axis)
return fc.get_value(pos);
}
-//#define DEBUG_TIMINGS
template<int u, int w>
static inline bool is_nan(const dmat<u,w>& r)
{
@@ -535,18 +539,30 @@ void pipeline::run()
#ifdef DEBUG_TIMINGS
{
+ static variance v;
+ static Timer tt, t2;
static int cnt;
- static Timer tt;
- if (tt.elapsed_seconds() >= 1)
+
+ v.input(t2.elapsed_ms());
+
+ if (tt.elapsed_ms() >= 1000)
{
tt.start();
- qDebug() << cnt << "Hz"
- << "sleepy time" << sleep_time_ms
- << "diff" << ms{elapsed_nsecs}.count() - ms{const_sleep_ms}.count()
- << "backlog" << ms{backlog_time}.count();
+ qDebug() << cnt << "Hz,"
+ << "loop: " "time" << v.avg()
+ << "stddev:" << v.stddev()
+ << "backlog" << ms{backlog_time}.count()
+ << "sleep" << sleep_time_ms << "ms";
+
+ if (v.count() > 256 * 60)
+ v.clear();
+
cnt = 0;
}
+
cnt++;
+
+ t2.start();
}
#endif