Changeset 51a2f3 in git


Ignore:
Timestamp:
Jul 18, 2008, 5:02:17 PM (16 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
f788910a0a0eaa435bbec70de9b8455e3eb48d1b
Parents:
d8483724861721140e31f604ae41278d67e9ad21
Message:
*hannes: GETRUSAGE


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

Legend:

Unmodified
Added
Removed
  • kernel/timer.cc

    rd848372 r51a2f3  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: timer.cc,v 1.6 2008-03-19 17:44:13 Singular Exp $ */
     4/* $Id: timer.cc,v 1.7 2008-07-18 15:02:17 Singular Exp $ */
    55
    66/*
     
    99
    1010#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
    1117
    1218int        timerv = 0;
     
    8793* temp structure to get the time
    8894*/
     95#ifdef GETRUSAGE
     96static struct rusage t_rec;
     97#else
    8998static struct tms t_rec;
    90 
     99#endif
    91100/*0 implementation*/
    92101
    93102int initTimer()
    94103{
     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
    95110  times(&t_rec);
    96111  siStartTime = t_rec.tms_utime+t_rec.tms_stime;
     112#endif
    97113  return (int)time(NULL);
    98114}
     
    100116void startTimer()
    101117{
     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
    102124  times(&t_rec);
    103125  startl = t_rec.tms_utime+t_rec.tms_stime;
     126#endif
    104127}
    105128
     
    110133{
    111134  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
    112143
    113144  times(&t_rec);
     
    115146
    116147  double f =  ((double)curr) * timer_resolution / (double)HZ;
     148#endif
    117149  return (int)(f+0.5);
    118150}
     
    129161  clock_t curr;
    130162
     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
    131171  times(&t_rec);
    132172  curr = t_rec.tms_utime+t_rec.tms_stime - startl;
    133173
    134174  double f =  ((double)curr) / (double)HZ;
     175#endif
    135176  if (f > mintime)
    136177  {
Note: See TracChangeset for help on using the changeset viewer.