diff options
Diffstat (limited to 'tools/lldb-perf/lib/Metric.h')
-rw-r--r-- | tools/lldb-perf/lib/Metric.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tools/lldb-perf/lib/Metric.h b/tools/lldb-perf/lib/Metric.h new file mode 100644 index 0000000000000..45342d25b41ae --- /dev/null +++ b/tools/lldb-perf/lib/Metric.h @@ -0,0 +1,72 @@ +//===-- Metric.h ------------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef __PerfTestDriver__Metric__ +#define __PerfTestDriver__Metric__ + +#include <vector> +#include <string> +#include <mach/task_info.h> + +namespace lldb_perf { + +class MemoryStats; + +template <class ValueType> +class Metric +{ +public: + enum class StandardDeviationMode + { + eSample, + ePopulation + }; + + Metric (); + Metric (const char*, const char* = NULL); + + void + Append (ValueType v); + + ValueType + GetAverage () const; + + size_t + GetCount () const; + + ValueType + GetSum () const; + + ValueType + GetStandardDeviation (StandardDeviationMode mode = StandardDeviationMode::ePopulation) const; + + const char* + GetName () const + { + if (m_name.empty()) + return NULL; + return m_name.c_str(); + } + + const char* + GetDescription () const + { + if (m_description.empty()) + return NULL; + return m_description.c_str(); + } + +private: + std::string m_name; + std::string m_description; + std::vector<ValueType> m_dataset; +}; +} + +#endif /* defined(__PerfTestDriver__Metric__) */ |