Functions | Variables
timer.cc File Reference
#include <kernel/mod2.h>
#include <sys/resource.h>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
#include <reporter/reporter.h>
#include <kernel/oswrapper/timer.h>

Go to the source code of this file.

Functions

void SetTimerResolution (int res)
 
void SetMinDisplayTime (double mtime)
 
int initTimer ()
 
void startTimer ()
 
int getTimer ()
 
void writeTime (const char *v)
 
void startRTimer ()
 
void initRTimer ()
 
int getRTimer ()
 
void writeRTime (const char *v)
 

Variables

int timerv = 0
 
static double timer_resolution = TIMER_RESOLUTION
 
static double mintime = 0.5
 
static int64 siStartTime
 
static int64 startl
 
static struct rusage t_rec
 
int rtimerv = 0
 
static struct timeval startRl
 
static struct timeval siStartRTime
 
static struct timezone tzp
 

Function Documentation

int getRTimer ( )

Definition at line 172 of file timer.cc.

173 {
174  struct timeval now;
175 
176  gettimeofday(&now, &tzp);
177 
178  if (startRl.tv_usec > now.tv_usec)
179  {
180  now.tv_usec += 1000000;
181  now.tv_sec --;
182  }
183 
184  double f =((double) (now.tv_sec - startRl.tv_sec))*timer_resolution +
185  ((double) (now.tv_usec - startRl.tv_usec))*timer_resolution /
186  (double) 1000000;
187 
188  return (int)(f+0.5);
189 }
static double timer_resolution
Definition: timer.cc:20
FILE * f
Definition: checklibs.c:7
static struct timezone tzp
Definition: timer.cc:151
static struct timeval startRl
Definition: timer.cc:149
int getTimer ( )

Definition at line 97 of file timer.cc.

98 {
99  int64 curr;
100  getrusage(RUSAGE_SELF,&t_rec);
101  curr = ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
102  +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
103  +(int64)5000)/(int64)10000; // unit is 1/100 sec
104  getrusage(RUSAGE_CHILDREN,&t_rec);
105  curr += ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
106  +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
107  +(int64)5000)/(int64)10000; // unit is 1/100 sec
108  curr -= siStartTime;
109  double f = ((double)curr) * timer_resolution / (double)100;
110  return (int)(f+0.5);
111 }
static double timer_resolution
Definition: timer.cc:20
long int64
Definition: auxiliary.h:112
static struct rusage t_rec
Definition: timer.cc:66
FILE * f
Definition: checklibs.c:7
static int64 siStartTime
Definition: timer.cc:60
void initRTimer ( )

Definition at line 158 of file timer.cc.

159 {
160 #ifdef HAVE_GETTIMEOFDAY
161  gettimeofday(&startRl, &tzp);
162  gettimeofday(&siStartRTime, &tzp);
163 #else
164  memset(&startRl,0,sizeof(startRl));
165  memset(&siStartRTime,0,sizeof(siStartRTime));
166 #endif
167 }
static struct timeval siStartRTime
Definition: timer.cc:150
static struct timezone tzp
Definition: timer.cc:151
static struct timeval startRl
Definition: timer.cc:149
int initTimer ( )

Definition at line 69 of file timer.cc.

70 {
71  getrusage(RUSAGE_SELF,&t_rec);
72  siStartTime = (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec
73  +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
74  +5000)/10000; // unit is 1/100 sec
75  getrusage(RUSAGE_CHILDREN,&t_rec);
76  siStartTime += (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec
77  +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
78  +5000)/10000; // unit is 1/100 sec
79  return (int)time(NULL);
80 }
static struct rusage t_rec
Definition: timer.cc:66
#define NULL
Definition: omList.c:10
static int64 siStartTime
Definition: timer.cc:60
void SetMinDisplayTime ( double  mtime)

Definition at line 29 of file timer.cc.

30 {
31  mintime = mtime;
32 }
static double mintime
Definition: timer.cc:22
void SetTimerResolution ( int  res)

Definition at line 24 of file timer.cc.

25 {
26  timer_resolution = (double) res;
27 }
static double timer_resolution
Definition: timer.cc:20
poly res
Definition: myNF.cc:322
void startRTimer ( void  )

Definition at line 153 of file timer.cc.

154 {
155  gettimeofday(&siStartRTime, &tzp);
156 }
static struct timeval siStartRTime
Definition: timer.cc:150
static struct timezone tzp
Definition: timer.cc:151
void startTimer ( void  )

Definition at line 82 of file timer.cc.

83 {
84  getrusage(RUSAGE_SELF,&t_rec);
85  startl = ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
86  +(int64)t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
87  +(int64)5000)/(int64)10000; // unit is 1/100 sec
88  getrusage(RUSAGE_CHILDREN,&t_rec);
89  startl += ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
90  +(int64)t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
91  +(int64)5000)/(int64)10000; // unit is 1/100 sec
92 }
static int64 startl
Definition: timer.cc:61
long int64
Definition: auxiliary.h:112
static struct rusage t_rec
Definition: timer.cc:66
void writeRTime ( const char *  v)

Definition at line 195 of file timer.cc.

196 {
197  struct timeval now;
198 
199  gettimeofday(&now, &tzp);
200 
201  if (siStartRTime.tv_usec > now.tv_usec)
202  {
203  now.tv_usec += 1000000;
204  now.tv_sec --;
205  }
206 
207  double f =((double) (now.tv_sec - siStartRTime.tv_sec)) +
208  ((double) (now.tv_usec - siStartRTime.tv_usec)) /
209  (double) 1000000;
210 
211  if (f > mintime)
212  Print("//%s %.2f sec \n" ,v ,f);
213 }
static double mintime
Definition: timer.cc:22
#define Print
Definition: emacs.cc:83
static struct timeval siStartRTime
Definition: timer.cc:150
FILE * f
Definition: checklibs.c:7
static struct timezone tzp
Definition: timer.cc:151
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
void writeTime ( const char *  v)

Definition at line 121 of file timer.cc.

122 {
123  int64 curr;
124  getrusage(RUSAGE_SELF,&t_rec);
125  curr = ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
126  +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
127  +(int64)5000)/(int64)10000; // unit is 1/100 sec
128  getrusage(RUSAGE_CHILDREN,&t_rec);
129  curr += ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
130  +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
131  +(int64)5000)/(int64)10000; // unit is 1/100 sec
132  curr -= startl;
133  double f = ((double)curr) * timer_resolution / (double)100;
134  if (f/timer_resolution > mintime)
135  {
136 #ifdef EXTEND_TIMER_D
137  Print("//%s %.2f/%d sec (%d) >>%s<<\n" ,v ,f,(int)timer_resolution,iiOp,my_yylinebuf);
138 #else
139  if (timer_resolution==(double)1.0)
140  Print("//%s %.2f sec\n" ,v ,f);
141  else
142  Print("//%s %.2f/%d sec\n" ,v ,f,(int)timer_resolution);
143 #endif
144  }
145 }
static double mintime
Definition: timer.cc:22
#define Print
Definition: emacs.cc:83
static int64 startl
Definition: timer.cc:61
static double timer_resolution
Definition: timer.cc:20
long int64
Definition: auxiliary.h:112
char my_yylinebuf[80]
Definition: febase.cc:48
static struct rusage t_rec
Definition: timer.cc:66
FILE * f
Definition: checklibs.c:7
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
int iiOp
Definition: iparith.cc:229

Variable Documentation

double mintime = 0.5
static

Definition at line 22 of file timer.cc.

int rtimerv = 0

Definition at line 148 of file timer.cc.

struct timeval siStartRTime
static

Definition at line 150 of file timer.cc.

int64 siStartTime
static

Definition at line 60 of file timer.cc.

int64 startl
static

Definition at line 61 of file timer.cc.

struct timeval startRl
static

Definition at line 149 of file timer.cc.

struct rusage t_rec
static

Definition at line 66 of file timer.cc.

double timer_resolution = TIMER_RESOLUTION
static

Definition at line 20 of file timer.cc.

int timerv = 0

Definition at line 19 of file timer.cc.

struct timezone tzp
static

Definition at line 151 of file timer.cc.