Commit 64b5f3ff by Joao Paulo Magalhaes

Make Results::GetTime() receive an enum.

parent 62b1dd9c
...@@ -96,13 +96,20 @@ struct Results { ...@@ -96,13 +96,20 @@ struct Results {
int NumThreads() const; int NumThreads() const;
// get the real_time duration of the benchmark in seconds typedef enum { kCpuTime, kRealTime } BenchmarkTime;
// get cpu_time or real_time in seconds
double GetTime(BenchmarkTime which) const;
// get the real_time duration of the benchmark in seconds.
// it is better to use fuzzy float checks for this, as the float
// ASCII formatting is lossy.
double DurationRealTime() const { double DurationRealTime() const {
return GetAs< double >("iterations") * GetTime("real_time"); return GetAs< double >("iterations") * GetTime(kRealTime);
} }
// get the cpu_time duration of the benchmark in seconds // get the cpu_time duration of the benchmark in seconds
double DurationCPUTime() const { double DurationCPUTime() const {
return GetAs< double >("iterations") * GetTime("cpu_time"); return GetAs< double >("iterations") * GetTime(kCpuTime);
} }
// get the string for a result by name, or nullptr if the name // get the string for a result by name, or nullptr if the name
...@@ -126,9 +133,6 @@ struct Results { ...@@ -126,9 +133,6 @@ struct Results {
T tval = static_cast< T >(dval); T tval = static_cast< T >(dval);
return tval; return tval;
} }
// get cpu_time or real_time in seconds
double GetTime(const char* which) const;
}; };
template <class T> template <class T>
......
...@@ -303,8 +303,10 @@ int Results::NumThreads() const { ...@@ -303,8 +303,10 @@ int Results::NumThreads() const {
return num; return num;
} }
double Results::GetTime(const char* which) const { double Results::GetTime(BenchmarkTime which) const {
double val = GetAs< double >(which); CHECK(which == kCpuTime || which == kRealTime);
const char *which_str = which == kCpuTime ? "cpu_time" : "real_time";
double val = GetAs< double >(which_str);
auto unit = Get("time_unit"); auto unit = Get("time_unit");
CHECK(unit); CHECK(unit);
if(*unit == "ns") { if(*unit == "ns") {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment