benchmark
1.6.1
Toggle main menu visibility
Loading...
Searching...
No Matches
timers.h
1
#ifndef BENCHMARK_TIMERS_H
2
#define BENCHMARK_TIMERS_H
3
4
#include <chrono>
5
#include <string>
6
7
namespace
benchmark {
8
9
// Return the CPU usage of the current process
10
double
ProcessCPUUsage();
11
12
// Return the CPU usage of the children of the current process
13
double
ChildrenCPUUsage();
14
15
// Return the CPU usage of the current thread
16
double
ThreadCPUUsage();
17
18
#if defined(HAVE_STEADY_CLOCK)
19
template
<
bool
HighResIsSteady = std::chrono::high_resolution_clock::is_steady>
20
struct
ChooseSteadyClock {
21
typedef
std::chrono::high_resolution_clock type;
22
};
23
24
template
<>
25
struct
ChooseSteadyClock<false> {
26
typedef
std::chrono::steady_clock type;
27
};
28
#endif
29
30
struct
ChooseClockType
{
31
#if defined(HAVE_STEADY_CLOCK)
32
typedef
ChooseSteadyClock<>::type type;
33
#else
34
typedef
std::chrono::high_resolution_clock type;
35
#endif
36
};
37
38
inline
double
ChronoClockNow() {
39
typedef
ChooseClockType::type ClockType;
40
using
FpSeconds = std::chrono::duration<double, std::chrono::seconds::period>;
41
return
FpSeconds(ClockType::now().time_since_epoch()).count();
42
}
43
44
std::string LocalDateTimeString();
45
46
}
// end namespace benchmark
47
48
#endif
// BENCHMARK_TIMERS_H
benchmark::ChooseClockType
Definition
timers.h:30
src
timers.h
Generated by
1.17.0