diff options
Diffstat (limited to 'tools/lldb-perf/lib/Timer.h')
-rw-r--r-- | tools/lldb-perf/lib/Timer.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/lldb-perf/lib/Timer.h b/tools/lldb-perf/lib/Timer.h new file mode 100644 index 000000000000..ff179355cd43 --- /dev/null +++ b/tools/lldb-perf/lib/Timer.h @@ -0,0 +1,66 @@ +//===-- Timer.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__Timer__ +#define __PerfTestDriver__Timer__ + +#include "Gauge.h" + +#include <chrono> + +using namespace std::chrono; + +namespace lldb_perf +{ +class TimeGauge : public Gauge<double> +{ +public: + TimeGauge (); + + virtual + ~TimeGauge () + { + } + + void + Start (); + + double + Stop (); + + virtual double + GetStartValue () const; + + virtual double + GetStopValue () const; + + virtual double + GetDeltaValue () const; + +private: + enum class State + { + eNeverUsed, + eCounting, + eStopped + }; + + typedef high_resolution_clock::time_point TimeType; + TimeType m_start; + TimeType m_stop; + double m_delta; + State m_state; + + TimeType + Now (); + +}; +} + +#endif /* defined(__PerfTestDriver__Timer__) */ |