diff options
Diffstat (limited to 'src/base/log/Logger.cpp')
| -rw-r--r-- | src/base/log/Logger.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/base/log/Logger.cpp b/src/base/log/Logger.cpp index d75e006b..58fa6220 100644 --- a/src/base/log/Logger.cpp +++ b/src/base/log/Logger.cpp @@ -3,6 +3,7 @@ #include "cru/base/log/StdioLogTarget.h" #include <algorithm> +#include <chrono> #include <condition_variable> #include <cstdlib> #include <ctime> @@ -167,4 +168,16 @@ void Logger::LogThreadRun() { if (stop) return; } } + +Guard MeasureTimeAndLog(std::string_view tag, std::string_view name) { + CruLogDebug(std::string(tag), "Start measure {}.", name); + auto start = std::chrono::high_resolution_clock::now(); + + return Guard([tag = std::string(tag), name = std::string(name), start] { + auto end = std::chrono::high_resolution_clock::now(); + auto duration = + std::chrono::duration_cast<std::chrono::microseconds>(end - start); + CruLogDebug(tag, "End measure {}, time {} us.", name, duration.count()); + }); +} } // namespace cru::log |
