diff options
Diffstat (limited to 'lldb/tools/lldb-perf/lib/Timer.h')
-rw-r--r-- | lldb/tools/lldb-perf/lib/Timer.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lldb/tools/lldb-perf/lib/Timer.h b/lldb/tools/lldb-perf/lib/Timer.h new file mode 100644 index 00000000000..c877a3d3c9e --- /dev/null +++ b/lldb/tools/lldb-perf/lib/Timer.h @@ -0,0 +1,56 @@ +// +// Timer.h +// PerfTestDriver +// +// Created by Enrico Granata on 3/6/13. +// Copyright (c) 2013 Apple Inc. All rights reserved. +// + +#ifndef __PerfTestDriver__Timer__ +#define __PerfTestDriver__Timer__ + +#include "Gauge.h" + +#include <chrono> + +using namespace std::chrono; + +namespace lldb { namespace perf +{ +class TimeGauge : public Gauge<double> +{ +private: + enum class State + { + eTSNeverUsed, + eTSCounting, + eTSStopped + }; + + typedef high_resolution_clock::time_point HPTime; + HPTime m_start; + double m_value; + State m_state; + + HPTime + now (); + +public: + TimeGauge (); + + virtual + ~TimeGauge () + {} + + void + start (); + + double + stop (); + + double + value (); +}; +} } + +#endif /* defined(__PerfTestDriver__Timer__) */ |