From 7e3e621ae5d316cd16909378578e9e87a9fe6a3b Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Sun, 27 Jun 2021 20:51:03 +0200 Subject: [PATCH] Log long condition checks --- src/macro.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/macro.cpp b/src/macro.cpp index 9a71dee7..ba37b2e8 100644 --- a/src/macro.cpp +++ b/src/macro.cpp @@ -6,6 +6,9 @@ #include #undef max +#include + +constexpr int perfLogThreshold = 300; const std::map MacroCondition::logicTypes = { {LogicType::NONE, {"AdvSceneSwitcher.logic.none"}}, @@ -32,7 +35,17 @@ bool Macro::CeckMatch() { _matched = false; for (auto &c : _conditions) { + auto startTime = std::chrono::high_resolution_clock::now(); bool cond = c->CheckCondition(); + auto endTime = std::chrono::high_resolution_clock::now(); + auto ms = std::chrono::duration_cast( + endTime - startTime); + if (ms.count() >= perfLogThreshold) { + blog(LOG_WARNING, + "spent %d ms in %s condition check of macro '%s'!", + ms.count(), c->GetId().c_str(), Name().c_str()); + } + if (!cond) { c->ResetDuration(); }