Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jul 1997 02:05:12 -0500
From:      Kent Vander Velden <graphix@iastate.edu>
To:        freebsd-questions@freebsd.org
Subject:   getrusage and small system time usages
Message-ID:  <33C489A8.2781E494@iastate.edu>

next in thread | raw e-mail | index | archive | help
Often I use getrusage() to time a section of code.  However, generally
I get frustrated with the effecitveness of getrusage() since I often
get negative numbers!  Tonight, I got negative numbers again and
thought perhaps someone could suggest a reason for this.  Even if
the interval that I am timing is really small, I see no reason the 
value would be negative.  Zero would be more believable.

  The following contains code that I was using:

class Clock {
protected:
  rusage start;
  rusage end;
public:
  Clock() { getrusage(RUSAGE_SELF, &start); }
  ~Clock() {
    getrusage(RUSAGE_SELF, &end); 
    double st=(end.ru_stime.tv_sec - start.ru_stime.tv_sec
	       +(end.ru_stime.tv_usec - start.ru_stime.tv_usec)/(double)10e6);
    double ut=(end.ru_utime.tv_sec - start.ru_utime.tv_sec
	       +(end.ru_utime.tv_usec - start.ru_utime.tv_usec)/(double)10e6);
    cout << "System time requirement: " << st << " sec." << endl
	 << "User   time requirement: " << ut << " sec." << endl
	 << "Total  time requirement: " << st+ut << " sec." << endl;
  }
};

  Thanks.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?33C489A8.2781E494>