10#include <QElapsedTimer>
12#include <QLoggingCategory>
55 explicit LagMonitor(QObject *parent =
nullptr);
76 bool eventFilter(QObject *obj, QEvent *event)
override;
QList< StallRecord > recentStalls() const
Stalls recorded during this session, oldest first.
Definition lag_monitor.cpp:18
void checkTick()
Definition lag_monitor.cpp:38
LagMonitor(QObject *parent=nullptr)
Definition lag_monitor.cpp:7
QElapsedTimer tickClock
monotonic clock, so wall clock steps do not fabricate stalls
Definition lag_monitor.h:83
void recordGap(qint64 gapMs)
Feeds a measured tick-to-tick gap through the detection logic.
Definition lag_monitor.cpp:43
bool eventFilter(QObject *obj, QEvent *event) override
Definition lag_monitor.cpp:28
static constexpr int MAX_RECORDED_STALLS
Definition lag_monitor.h:50
QList< StallRecord > stalls
Definition lag_monitor.h:84
void clearStalls()
Definition lag_monitor.cpp:23
static constexpr qint64 MAX_PLAUSIBLE_STALL_MS
Gaps beyond this are treated as suspend artifacts rather than stalls.
Definition lag_monitor.h:53
QTimer * timer
Definition lag_monitor.h:82
static constexpr int STALL_THRESHOLD_MS
Definition lag_monitor.h:49
static constexpr int TICK_INTERVAL_MS
Definition lag_monitor.h:48
Q_LOGGING_CATEGORY(LagMonitorLog, "lag_monitor")
Definition lag_monitor.h:42
qint64 durationMs
Definition lag_monitor.h:44
qint64 timestampMsSinceEpoch
when the stalled period ended
Definition lag_monitor.h:43