Skip to content

Commit 6e587b5

Browse files
committed
Nits
1 parent d8c18c3 commit 6e587b5

4 files changed

Lines changed: 32 additions & 26 deletions

File tree

cli/cppcheckexecutor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ namespace {
260260

261261
int CppCheckExecutor::check(int argc, const char* const argv[])
262262
{
263-
auto startTime{Timer::now()};
263+
Timer realTimeClock("", SHOWTIME_MODES::SHOWTIME_SUMMARY);
264264
Settings settings;
265265
CmdLineLoggerStd logger;
266266
Suppressions supprs;
@@ -279,8 +279,8 @@ int CppCheckExecutor::check(int argc, const char* const argv[])
279279

280280
const int ret = check_wrapper(settings, supprs);
281281

282-
if (settings.showtime != SHOWTIME_MODES::SHOWTIME_NONE)
283-
Timer::calculateAndOutputTimeDiff(startTime, Timer::now());
282+
if (settings.showtime == SHOWTIME_MODES::SHOWTIME_NONE)
283+
realTimeClock.cancelRealTimeMeasurement();
284284

285285
return ret;
286286
}

lib/cppcheck.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,9 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str
895895
if (Settings::terminated())
896896
return mLogger->exitcode();
897897

898-
const Timer fileTotalTimer(mSettings.showtime == SHOWTIME_MODES::SHOWTIME_FILE_TOTAL, file.spath());
898+
Timer WholeFileTimer{file.spath()};
899+
if (mSettings.showtime != SHOWTIME_MODES::SHOWTIME_FILE_TOTAL)
900+
WholeFileTimer.cancelRealTimeMeasurement();
899901

900902
if (!mSettings.quiet) {
901903
std::string fixedpath = Path::toNativeSeparators(file.spath());
@@ -1311,8 +1313,7 @@ unsigned int CppCheck::checkInternal(const FileWithDetails& file, const std::str
13111313
// TODO: clear earlier?
13121314
mLogger->clear();
13131315

1314-
if (mSettings.showtime == SHOWTIME_MODES::SHOWTIME_FILE || mSettings.showtime == SHOWTIME_MODES::SHOWTIME_TOP5_FILE)
1315-
printTimerResults(mSettings.showtime);
1316+
printTimerResults(mSettings.showtime);
13161317

13171318
return mLogger->exitcode();
13181319
}

lib/timer.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,13 @@ Timer::Timer(std::string str, SHOWTIME_MODES showtimeMode, TimerResultsIntf* tim
105105
, mStart(std::clock())
106106
, mShowTimeMode(showtimeMode)
107107
, mStopped(showtimeMode == SHOWTIME_MODES::SHOWTIME_NONE || showtimeMode == SHOWTIME_MODES::SHOWTIME_FILE_TOTAL)
108+
, mStartTimePoint(Clock::now())
108109
{}
109110

110-
Timer::Timer(bool fileTotal, std::string filename)
111-
: mStr(std::move(filename))
112-
, mStopped(!fileTotal)
111+
Timer::Timer(std::string str)
112+
: mStr(std::move(str))
113+
, mShowTimeMode(SHOWTIME_MODES::SHOWTIME_FILE_TOTAL)
114+
, mStartTimePoint(Clock::now())
113115
{}
114116

115117
Timer::~Timer()
@@ -127,22 +129,25 @@ void Timer::stop()
127129
const double sec = static_cast<double>(diff) / CLOCKS_PER_SEC;
128130
std::lock_guard<std::mutex> l(stdCoutLock);
129131
std::cout << mStr << ": " << sec << "s" << std::endl;
130-
} else if (mShowTimeMode == SHOWTIME_MODES::SHOWTIME_FILE_TOTAL) {
131-
const double sec = static_cast<double>(diff) / CLOCKS_PER_SEC;
132+
} else if (mShowTimeMode == SHOWTIME_MODES::SHOWTIME_FILE_TOTAL && mStartTimePoint != TimePoint{}) {
132133
std::lock_guard<std::mutex> l(stdCoutLock);
133-
std::cout << "Check time: " << mStr << ": " << sec << "s" << std::endl;
134+
std::cout << "Check time: " << mStr << ": " << getRealTimePassed() << std::endl;
134135
} else {
135136
if (mTimerResults)
136137
mTimerResults->addResults(mStr, diff);
138+
else if (mStr.empty() && mStartTimePoint != TimePoint{}) { // Get real time
139+
std::lock_guard<std::mutex> l(stdCoutLock);
140+
std::cout << "Overall time: " << getRealTimePassed() << std::endl;
141+
}
137142
}
138143
}
139144

140145
mStopped = true;
141146
}
142147

143-
void Timer::calculateAndOutputTimeDiff(const tp& start, const tp& end)
148+
std::string Timer::getRealTimePassed()
144149
{
145-
auto diff = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
150+
auto diff = std::chrono::duration_cast<std::chrono::microseconds>(Clock::now() - mStartTimePoint);
146151

147152
// Extract hours
148153
auto hours = std::chrono::duration_cast<std::chrono::hours>(diff);
@@ -160,8 +165,5 @@ void Timer::calculateAndOutputTimeDiff(const tp& start, const tp& end)
160165
ellapsedTime += std::to_string(hours.count()) + "h ";
161166
if (minutes.count() > 0)
162167
ellapsedTime += std::to_string(minutes.count()) + "m ";
163-
ellapsedTime += std::to_string(seconds) + "s ";
164-
165-
std::lock_guard<std::mutex> l(stdCoutLock);
166-
std::cout << "Overall time: " << ellapsedTime << std::endl;
168+
return (ellapsedTime + std::to_string(seconds) + "s ");
167169
}

lib/timer.h

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,33 +74,36 @@ class CPPCHECKLIB TimerResults : public TimerResultsIntf {
7474
class CPPCHECKLIB Timer {
7575
public:
7676
Timer(std::string str, SHOWTIME_MODES showtimeMode, TimerResultsIntf* timerResults = nullptr);
77-
Timer(bool fileTotal, std::string filename);
77+
Timer(std::string str);
7878
~Timer();
7979

8080
Timer(const Timer&) = delete;
8181
Timer& operator=(const Timer&) = delete;
8282

83-
using tp = std::chrono::time_point<std::chrono::high_resolution_clock>;
84-
85-
static tp now() {
86-
return std::chrono::high_resolution_clock::now();
87-
}
88-
89-
static void calculateAndOutputTimeDiff(const tp& start, const tp& end);
83+
using Clock = std::chrono::high_resolution_clock;
84+
using TimePoint = std::chrono::time_point<Clock>;
9085

9186
void stop();
9287

88+
void cancelRealTimeMeasurement() {
89+
mStartTimePoint = TimePoint{};
90+
}
91+
9392
static void run(std::string str, SHOWTIME_MODES showtimeMode, TimerResultsIntf* timerResults, const std::function<void()>& f) {
9493
Timer t(std::move(str), showtimeMode, timerResults);
9594
f();
9695
}
9796

9897
private:
98+
99+
std::string getRealTimePassed();
100+
99101
const std::string mStr;
100102
TimerResultsIntf* mTimerResults{};
101103
std::clock_t mStart = std::clock();
102104
const SHOWTIME_MODES mShowTimeMode = SHOWTIME_MODES::SHOWTIME_FILE_TOTAL;
103105
bool mStopped{};
106+
TimePoint mStartTimePoint{};
104107
};
105108

106109
//---------------------------------------------------------------------------

0 commit comments

Comments
 (0)