21#ifndef VOTCA_XTP_DFTTIMINGS_H
22#define VOTCA_XTP_DFTTIMINGS_H
47 using Clock = std::chrono::steady_clock;
57 std::chrono::duration<double>(Clock::now() -
start_).count();
58 double nested =
timings_.nested_.back();
92 return std::chrono::duration<double>(Clock::now() -
start_).count();
97 const std::string& title =
"DFT timing summary")
const;
100 std::string
Format()
const;
110 if (
e.name == name) {
Scope(const Scope &)=delete
Scope(DFTTimings &timings, std::string name)
Scope & operator=(const Scope &)=delete
Wall-clock accounting for the parts of a DFT run.
void AddEntry(const std::string &name, double seconds)
std::vector< Entry > entries_
std::vector< double > nested_
void Add(const std::string &name, double seconds)
Scope Measure(const std::string &name)
std::chrono::steady_clock Clock
void Report(Logger &log, Log::Level level, const std::string &title="DFT timing summary") const
Table of all entries with their share of the time since Reset().
static double ResidentMemoryGB(bool peak)
std::string Format() const
The entries on one line, "name 1.23 s, name 4.56 s".
Logger is used for thread-safe output of messages.
Provides a means for comparing floating point numbers.