libStatGen Software 1
Loading...
Searching...
No Matches
Performance.h
1/*
2 * Copyright (c) 2009 Regents of the University of Michigan
3 *
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without
7 * restriction, including without limitation the rights to use,
8 * copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following
11 * conditions:
12 *
13 * The above copyright notice and this permission notice shall be
14 * included in all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 * OTHER DEALINGS IN THE SOFTWARE.
24 */
25
26#ifndef _PERFORMANCE_H
27#define _PERFORMANCE_H
28
29#include <sys/time.h>
30#include <time.h>
31
32class Timing
33{
34 timeval startInterval;
35 timeval endInterval;
36public:
37 Timing()
38 {
39 start();
40 }
41 void start();
42 void end();
43 double interval();
44};
45
46inline void Timing::start()
47{
48 gettimeofday(&startInterval, NULL);
49}
50
51inline void Timing::end()
52{
53 gettimeofday(&endInterval, NULL);
54}
55
56///
57/// Return time interval between start() and end()
58/// @return elapsed time in seconds
59///
60inline double Timing::interval()
61{
62 return (endInterval.tv_sec + (endInterval.tv_usec/1000000.0)) -
63 (startInterval.tv_sec + (startInterval.tv_usec/1000000.0));
64}
65
66#endif
double interval()
Return time interval between start() and end()
Definition Performance.h:60