Mercurial > hg > orthanc
diff OrthancFramework/Sources/Toolbox.cpp @ 5390:1c3b0cf341f0
Toolbox: added ElapsedTimeLogger debug tool
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 26 Sep 2023 12:28:13 +0200 |
parents | be0b9c407985 |
children | b83192e7ad10 |
line wrap: on
line diff
--- a/OrthancFramework/Sources/Toolbox.cpp Thu Sep 21 18:18:25 2023 +0200 +++ b/OrthancFramework/Sources/Toolbox.cpp Tue Sep 26 12:28:13 2023 +0200 @@ -2513,6 +2513,36 @@ value = value.substr(1, value.size() - 2); } } + + Toolbox::ElapsedTimeLogger::ElapsedTimeLogger(const std::string& message) + : message_(message), + logged_(false) + { + Restart(); + } + + Toolbox::ElapsedTimeLogger::~ElapsedTimeLogger() + { + if (!logged_) + { + StopAndLog(); + } + } + + void Toolbox::ElapsedTimeLogger::Restart() + { + start_ = boost::posix_time::microsec_clock::universal_time(); + } + + void Toolbox::ElapsedTimeLogger::StopAndLog() + { + boost::posix_time::ptime now = boost::posix_time::microsec_clock::universal_time(); + boost::posix_time::time_duration diff = now - start_; + LOG(WARNING) << "ELAPSED TIMER: " << message_ << " (" << diff.total_microseconds() << " us)"; + logged_ = true; + } + + }