diff options
author | denplusplus <denplusplus@yandex-team.ru> | 2022-02-10 16:47:34 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:34 +0300 |
commit | 57c20d143e8a438cd76b9fdc3ca2e8ee3ac1f32a (patch) | |
tree | cc63639f8e502db19a82c20e2861c6d1edbf9fea /util/datetime/cputimer.cpp | |
parent | 464ba3814a83db4f2d5327393b0b6eaf0c86bfd7 (diff) | |
download | ydb-57c20d143e8a438cd76b9fdc3ca2e8ee3ac1f32a.tar.gz |
Restoring authorship annotation for <denplusplus@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'util/datetime/cputimer.cpp')
-rw-r--r-- | util/datetime/cputimer.cpp | 112 |
1 files changed, 56 insertions, 56 deletions
diff --git a/util/datetime/cputimer.cpp b/util/datetime/cputimer.cpp index 516d372c37..a4e8eb1cbc 100644 --- a/util/datetime/cputimer.cpp +++ b/util/datetime/cputimer.cpp @@ -1,12 +1,12 @@ -#include "cputimer.h" +#include "cputimer.h" -#include <util/system/defaults.h> +#include <util/system/defaults.h> #include <util/system/hp_timer.h> #include <util/string/printf.h> #include <util/stream/output.h> -#include <util/generic/singleton.h> +#include <util/generic/singleton.h> -#if defined(_unix_) +#if defined(_unix_) #include <unistd.h> #include <sched.h> #include <sys/types.h> @@ -21,15 +21,15 @@ TTimer::TTimer(const TStringBuf message) { Message_.Reserve(message.length() + SMALL_DURATION_CHAR_LENGTH + 1); // +"\n" Message_ << message; // Do not measure the allocations above. - Start_ = TInstant::Now(); -} - -TTimer::~TTimer() { + Start_ = TInstant::Now(); +} + +TTimer::~TTimer() { const TDuration duration = TInstant::Now() - Start_; Message_ << duration << "\n"; Cerr << Message_.Str(); -} - +} + static ui64 ManuallySetCyclesPerSecond = 0; static ui64 GetCyclesPerSecond() { @@ -38,8 +38,8 @@ static ui64 GetCyclesPerSecond() { } else { return NHPTimer::GetCyclesPerSecond(); } -} - +} + void SetCyclesPerSecond(ui64 cycles) { ManuallySetCyclesPerSecond = cycles; } @@ -58,79 +58,79 @@ ui64 DurationToCycles(TDuration duration) { TPrecisionTimer::TPrecisionTimer() : Start(::GetCycleCount()) -{ -} - +{ +} + ui64 TPrecisionTimer::GetCycleCount() const { return ::GetCycleCount() - Start; -} - +} + TString FormatCycles(ui64 cycles) { - ui64 milliseconds = cycles / GetCyclesPerMillisecond(); - ui32 ms = ui32(milliseconds % 1000); - milliseconds /= 1000; - ui32 secs = ui32(milliseconds % 60); - milliseconds /= 60; - ui32 mins = ui32(milliseconds); + ui64 milliseconds = cycles / GetCyclesPerMillisecond(); + ui32 ms = ui32(milliseconds % 1000); + milliseconds /= 1000; + ui32 secs = ui32(milliseconds % 60); + milliseconds /= 60; + ui32 mins = ui32(milliseconds); TString result; - sprintf(result, "%" PRIu32 " m %.2" PRIu32 " s %.3" PRIu32 " ms", mins, secs, ms); - return result; -} - + sprintf(result, "%" PRIu32 " m %.2" PRIu32 " s %.3" PRIu32 " ms", mins, secs, ms); + return result; +} + TFormattedPrecisionTimer::TFormattedPrecisionTimer(const char* message, IOutputStream* out) : Message(message) , Out(out) -{ - Start = GetCycleCount(); -} - +{ + Start = GetCycleCount(); +} + TFormattedPrecisionTimer::~TFormattedPrecisionTimer() { const ui64 end = GetCycleCount(); const ui64 diff = end - Start; *Out << Message << ": " << diff << " ticks " << FormatCycles(diff) << Endl; -} - -TFuncTimer::TFuncTimer(const char* func) - : Start_(TInstant::Now()) - , Func_(func) -{ - Cerr << "enter " << Func_ << Endl; -} - +} + +TFuncTimer::TFuncTimer(const char* func) + : Start_(TInstant::Now()) + , Func_(func) +{ + Cerr << "enter " << Func_ << Endl; +} + TFuncTimer::~TFuncTimer() { - Cerr << "leave " << Func_ << " -> " << (TInstant::Now() - Start_) << Endl; -} - + Cerr << "leave " << Func_ << " -> " << (TInstant::Now() - Start_) << Endl; +} + TTimeLogger::TTimeLogger(const TString& message, bool verbose) : Message(message) - , Verbose(verbose) + , Verbose(verbose) , OK(false) , Begin(time(nullptr)) - , BeginCycles(GetCycleCount()) + , BeginCycles(GetCycleCount()) { - if (Verbose) { - fprintf(stderr, "=========================================================\n"); + if (Verbose) { + fprintf(stderr, "=========================================================\n"); fprintf(stderr, "%s started: %.24s (%lu) (%d)\n", Message.data(), ctime(&Begin), (unsigned long)Begin, (int)getpid()); - } + } } -double TTimeLogger::ElapsedTime() const { +double TTimeLogger::ElapsedTime() const { return time(nullptr) - Begin; -} - +} + void TTimeLogger::SetOK() { OK = true; } TTimeLogger::~TTimeLogger() { time_t tim = time(nullptr); - ui64 endCycles = GetCycleCount(); - if (Verbose) { - const char* prefix = (OK) ? "" : "!"; + ui64 endCycles = GetCycleCount(); + if (Verbose) { + const char* prefix = (OK) ? "" : "!"; fprintf(stderr, "%s%s ended: %.24s (%lu) (%d) (took %lus = %s)\n", prefix, Message.data(), ctime(&tim), (unsigned long)tim, (int)getpid(), (unsigned long)tim - (unsigned long)Begin, FormatCycles(endCycles - BeginCycles).data()); - fprintf(stderr, "%s=========================================================\n", prefix); - } + fprintf(stderr, "%s=========================================================\n", prefix); + } } |