Changeset 51a2f3 in git
- Timestamp:
- Jul 18, 2008, 5:02:17 PM (16 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- f788910a0a0eaa435bbec70de9b8455e3eb48d1b
- Parents:
- d8483724861721140e31f604ae41278d67e9ad21
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/timer.cc
rd848372 r51a2f3 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: timer.cc,v 1. 6 2008-03-19 17:44:13Singular Exp $ */4 /* $Id: timer.cc,v 1.7 2008-07-18 15:02:17 Singular Exp $ */ 5 5 6 6 /* … … 9 9 10 10 #include "mod2.h" 11 //#define GETRUSAGE 12 #ifdef GETRUSAGE 13 #include <sys/time.h> 14 #include <sys/resource.h> 15 #include <unistd.h> 16 #endif 11 17 12 18 int timerv = 0; … … 87 93 * temp structure to get the time 88 94 */ 95 #ifdef GETRUSAGE 96 static struct rusage t_rec; 97 #else 89 98 static struct tms t_rec; 90 99 #endif 91 100 /*0 implementation*/ 92 101 93 102 int initTimer() 94 103 { 104 #ifdef GETRUSAGE 105 getrusage(RUSAGE_SELF,&t_rec); 106 siStartTime = (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec 107 +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec 108 +5000)/10000; // unit is 1/100 sec 109 #else 95 110 times(&t_rec); 96 111 siStartTime = t_rec.tms_utime+t_rec.tms_stime; 112 #endif 97 113 return (int)time(NULL); 98 114 } … … 100 116 void startTimer() 101 117 { 118 #ifdef GETRUSAGE 119 getrusage(RUSAGE_SELF,&t_rec); 120 startl = (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec 121 +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec 122 +5000)/10000; // unit is 1/100 sec 123 #else 102 124 times(&t_rec); 103 125 startl = t_rec.tms_utime+t_rec.tms_stime; 126 #endif 104 127 } 105 128 … … 110 133 { 111 134 clock_t curr; 135 #ifdef GETRUSAGE 136 getrusage(RUSAGE_SELF,&t_rec); 137 curr = (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec 138 +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec 139 +5000)/10000; // unit is 1/100 sec 140 curr -= siStartTime; 141 double f = ((double)curr) * timer_resolution / (double)100; 142 #else 112 143 113 144 times(&t_rec); … … 115 146 116 147 double f = ((double)curr) * timer_resolution / (double)HZ; 148 #endif 117 149 return (int)(f+0.5); 118 150 } … … 129 161 clock_t curr; 130 162 163 #ifdef GETRUSAGE 164 getrusage(RUSAGE_SELF,&t_rec); 165 curr = (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec 166 +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec 167 +5000)/10000; // unit is 1/100 sec 168 curr -= startl; 169 double f = ((double)curr) * timer_resolution / (double)100; 170 #else 131 171 times(&t_rec); 132 172 curr = t_rec.tms_utime+t_rec.tms_stime - startl; 133 173 134 174 double f = ((double)curr) / (double)HZ; 175 #endif 135 176 if (f > mintime) 136 177 {
Note: See TracChangeset
for help on using the changeset viewer.