1 /**
2  *
3  *  Copyright 2016-2020 Netflix, Inc.
4  *
5  *     Licensed under the BSD+Patent License (the "License");
6  *     you may not use this file except in compliance with the License.
7  *     You may obtain a copy of the License at
8  *
9  *         https://opensource.org/licenses/BSDplusPatent
10  *
11  *     Unless required by applicable law or agreed to in writing, software
12  *     distributed under the License is distributed on an "AS IS" BASIS,
13  *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *     See the License for the specific language governing permissions and
15  *     limitations under the License.
16  *
17  */
18 
19 #ifndef TIMER_H_
20 #define TIMER_H_
21 
22 #include <chrono>
23 
24 class Timer {
25     typedef std::chrono::high_resolution_clock hrclock;
26 
27     hrclock::time_point m_start;
28     hrclock::time_point m_stop;
29 public:
start()30     void start() { m_start = hrclock::now(); }
31 
stop()32     void stop() { m_stop = hrclock::now(); }
33 
elapsed()34     double elapsed()
35     {
36         std::chrono::duration<double> secs = m_stop - m_start;
37         return secs.count();
38     }
39 };
40 
41 #endif // TIMER_H_
42