Grok 20.3.2
ChronoTimer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17
18#pragma once
19
20#include <chrono>
21#include <string>
22
23#include "Logger.h"
24
25namespace grk
26{
27
29{
30public:
31 ChronoTimer(const std::string& msg) : message(msg) {}
32 void start(void)
33 {
34 startTime = std::chrono::high_resolution_clock::now();
35 }
36 void finish(void)
37 {
38 auto finish = std::chrono::high_resolution_clock::now();
39 std::chrono::duration<double> elapsed = finish - startTime;
40 grklog.info("%s : %f ms", message.c_str(), elapsed.count() * 1000);
41 }
42
43private:
44 std::string message;
45 std::chrono::high_resolution_clock::time_point startTime;
46};
47
48} // namespace grk
void start(void)
Definition ChronoTimer.h:32
ChronoTimer(const std::string &msg)
Definition ChronoTimer.h:31
std::chrono::high_resolution_clock::time_point startTime
Definition ChronoTimer.h:45
std::string message
Definition ChronoTimer.h:44
void finish(void)
Definition ChronoTimer.h:36
ResWindow.
Definition CompressedChunkCache.h:36
ILogger & grklog
Definition Logger.cpp:24