Albert
Loading...
Searching...
No Matches
timeit.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024 Manuel Schneider
2
3#pragma once
4#include <QDebug>
5#include <QString>
6#include <chrono>
7#include <albert/logging.h>
8
9// Private API
11{
12
13struct TimeIt
14{
15 QString name;
16 std::chrono::system_clock::time_point start;
17
18 [[nodiscard]] TimeIt(const QString &name = {}):
19 name(name),
20 start(std::chrono::system_clock::now())
21 {}
22
24 {
25 auto end = std::chrono::system_clock::now();
26 auto dur = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
27 CRIT << QString(ccyan "%L1 µs | %2").arg(dur, 8).arg(name);
28 }
29};
30
31}
#define CRIT
Creates a log object (level critial) you can use to pipe text into (<<).
Definition logging.h:23
#define ccyan
Definition logging.h:30
Definition timeit.h:11
Definition timeit.h:14
TimeIt(const QString &name={})
Definition timeit.h:18
~TimeIt()
Definition timeit.h:23
std::chrono::system_clock::time_point start
Definition timeit.h:16
QString name
Definition timeit.h:15