Changeset fba1d9c in git for kernel/timer.cc


Ignore:
Timestamp:
Sep 13, 2010, 10:11:12 AM (14 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
5e9e9c1562faf9f0fa575cfb990e24bbcd147a43
Parents:
0c21f8c3eae19427d116ea966f29a8d6bffff26a
Message:
removed datetime, removed use of times

git-svn-id: file:///usr/local/Singular/svn/trunk@13165 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/timer.cc

    r0c21f8 rfba1d9c  
    77*  ABSTRACT - get the computing time
    88*/
     9#include <sys/resource.h>
     10#include <unistd.h>
    911
    1012#include <kernel/mod2.h>
    11 // undef GETRUSAGE to get the original timer code (w.r.t. CLOCK_TICKS)
    12 #define GETRUSAGE
    13 #ifdef GETRUSAGE
    14        #include <sys/time.h>
    15        #include <sys/resource.h>
    16        #include <unistd.h>
    17 #endif
    1813
    1914int        timerv = 0;
     
    3328
    3429#include <stdio.h>
    35 #include <math.h>
    36 #include <unistd.h>
    37 #include <float.h>
    38 #include <mylimits.h>
    39 #include <sys/types.h>
    4030
    4131#ifdef TIME_WITH_SYS_TIME
     
    5747
    5848
    59 // need to be adjusted on your machine: the number of ticks per second: HZ
    60 #ifndef HZ
    61 #include <sys/param.h>
    62 #endif
    63 
    64 #if !defined(HZ) && defined(CLOCKS_PER_SEC)
    65 #define HZ CLOCKS_PER_SEC
    66 #endif
    67 
    68 #if !defined(HZ) && defined(CLK_TCK)
    69 #define HZ CLK_TCK
    70 #endif
    71 
    72 #if !defined(HZ) && defined(HAVE_SYSCONF)
    73 #define HZ sysconf(_SC_CLK_TCK)
    74 #endif
    75 
    76 #ifndef HZ
    77   // last resort
    78   #ifdef sun
    79   #define HZ 60.0
    80   #else
    81   #define HZ 100.0
    82   #endif
    83 #endif
    84 
    8549#include <kernel/timer.h>
    8650#include <kernel/febase.h>
     51
    8752/*3
    8853* the start time of the timer
    8954*/
    90 #ifdef GETRUSAGE
    9155static int64 siStartTime;
    9256static int64 startl;
    93 #else
    94 static clock_t siStartTime;
    95 static clock_t startl;
    96 #endif
    9757
    9858/*3
    9959* temp structure to get the time
    10060*/
    101 #ifdef GETRUSAGE
    10261static struct rusage t_rec;
    103 #else
    104 static struct tms t_rec;
    105 #endif
    10662/*0 implementation*/
    10763
    10864int initTimer()
    10965{
    110 #ifdef GETRUSAGE
    111   getrusage(RUSAGE_SELF,&t_rec);
     66  getrusage(RUSAGE_SELF,&t_rec);
    11267  siStartTime = (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec
    11368               +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
    11469               +5000)/10000; // unit is 1/100 sec
    115   getrusage(RUSAGE_CHILDREN,&t_rec); 
     70  getrusage(RUSAGE_CHILDREN,&t_rec);
    11671  siStartTime += (t_rec.ru_utime.tv_sec*1000000+t_rec.ru_utime.tv_usec
    11772               +t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
    11873               +5000)/10000; // unit is 1/100 sec
    119 #else
    120   times(&t_rec);
    121   siStartTime = t_rec.tms_utime+t_rec.tms_stime;
    122 #endif
    12374  return (int)time(NULL);
    12475}
     
    12677void startTimer()
    12778{
    128 #ifdef GETRUSAGE
    129   getrusage(RUSAGE_SELF,&t_rec);
     79  getrusage(RUSAGE_SELF,&t_rec);
    13080  startl = ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
    13181               +(int64)t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
    13282               +(int64)5000)/(int64)10000; // unit is 1/100 sec
    133   getrusage(RUSAGE_CHILDREN,&t_rec); 
     83  getrusage(RUSAGE_CHILDREN,&t_rec);
    13484  startl += ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
    13585               +(int64)t_rec.ru_stime.tv_sec*1000000+t_rec.ru_stime.tv_usec
    13686               +(int64)5000)/(int64)10000; // unit is 1/100 sec
    137 #else
    138   times(&t_rec);
    139   startl = t_rec.tms_utime+t_rec.tms_stime;
    140 #endif
    14187}
    14288
     
    14692int getTimer()
    14793{
    148 #ifdef GETRUSAGE
    14994  int64 curr;
    150   getrusage(RUSAGE_SELF,&t_rec); 
     95  getrusage(RUSAGE_SELF,&t_rec);
    15196  curr = ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
    15297         +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
    15398         +(int64)5000)/(int64)10000; // unit is 1/100 sec
    154   getrusage(RUSAGE_CHILDREN,&t_rec); 
     99  getrusage(RUSAGE_CHILDREN,&t_rec);
    155100  curr += ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
    156101         +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
     
    158103  curr -= siStartTime;
    159104  double f =  ((double)curr) * timer_resolution / (double)100;
    160 #else
    161   clock_t curr;
    162 
    163   times(&t_rec);
    164   curr = t_rec.tms_utime+t_rec.tms_stime - siStartTime;
    165 
    166   double f =  ((double)curr) * timer_resolution / (double)HZ;
    167 #endif
    168105  return (int)(f+0.5);
    169106}
     
    177114#endif
    178115
    179 char* dateTime()
    180 {
    181 #ifdef GETRUSAGE
    182   time_t rawtime;
    183   time(&rawtime);
    184   char* s = ctime(&rawtime);     // s: with linefeed at the end
    185   int l = strlen(s);
    186   char* ss = (char*)omAlloc(l);
    187   strncpy(ss, s, l - 1);
    188   ss[l - 1] = '\0';              // ss: without linefeed at the end
    189   return ss;
    190 #else
    191   char* s = "Warning: date/time not available on your system";
    192   int l = strlen(s) + 1;
    193   char* ss = (char*)omAlloc(l);
    194   strncpy(ss, s, l - 1);
    195   ss[l - 1] = '\0';
    196   return ss;
    197 #endif
    198 }
    199 
    200116void writeTime(const char* v)
    201117{
    202 
    203 #ifdef GETRUSAGE
    204118  int64 curr;
    205   getrusage(RUSAGE_SELF,&t_rec); 
     119  getrusage(RUSAGE_SELF,&t_rec);
    206120  curr = ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
    207121               +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
    208122               +(int64)5000)/(int64)10000; // unit is 1/100 sec
    209   getrusage(RUSAGE_CHILDREN,&t_rec); 
     123  getrusage(RUSAGE_CHILDREN,&t_rec);
    210124  curr += ((int64)t_rec.ru_utime.tv_sec*1000000+(int64)t_rec.ru_utime.tv_usec
    211125               +(int64)t_rec.ru_stime.tv_sec*1000000+(int64)t_rec.ru_stime.tv_usec
     
    213127  curr -= startl;
    214128  double f =  ((double)curr) * timer_resolution / (double)100;
    215 #else
    216   clock_t curr;
    217   times(&t_rec);
    218   curr = t_rec.tms_utime+t_rec.tms_stime - startl;
    219 
    220   double f =  ((double)curr) / (double)HZ;
    221 #endif
    222129  if (f/timer_resolution > mintime)
    223130  {
Note: See TracChangeset for help on using the changeset viewer.