diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2016-01-06 20:12:03 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2016-01-06 20:12:03 +0000 |
commit | 9e6d35490a6542f9c97607f93c2ef8ca8e03cbcc (patch) | |
tree | dd2a1ddf0476664c2b823409c36cbccd52662ca7 /tools/lldb-perf/lib/Timer.h | |
parent | 3bd2e91faeb9eeec1aae82c64a3253afff551cfd (diff) | |
download | src-vendor/lldb/lldb-trunk-r256945.tar.gz src-vendor/lldb/lldb-trunk-r256945.zip |
Vendor import of lldb trunk r256945:vendor/lldb/lldb-trunk-r256945
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__) */ |