1 /***************************************************************************
2 * Copyright (C) 2007 by www.databasecache.com *
3 * Contact: praba_tuty@databasecache.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 ***************************************************************************/
22 long long max_
, min_
, total
, count
, last_
;
23 struct timespec begin
;
27 NanoTimer() { reset(); }
28 void reset() { max_
= 0; min_
= LONG_MAX
; total
=0; count
= 0; last_
=0; }
32 clock_gettime(CLOCK_REALTIME
, &begin
);
36 clock_gettime(CLOCK_REALTIME
, &end
);
37 long long secs
= end
.tv_sec
-begin
.tv_sec
;
38 long long nano
= end
.tv_nsec
-begin
.tv_nsec
;
39 last_
= (secs
*1000000000)+nano
;
41 if ( max_
< last_
) max_
= last_
;
42 if ( min_
> last_
) min_
= last_
;
44 long long last() { return last_
; }
45 long long avg() { return total
/count
; }
46 long long min() { return min_
; }
47 long long max() { return max_
; }