Date: Sun, 22 Nov 1998 18:24:09 -0800 From: Ben Jackson <ben@ben.com> To: freebsd-questions@FreeBSD.ORG Subject: why does getrusage ru_utime jump backwards sometimes? Message-ID: <199811230224.SAA08999@pulsar.ben.com>
next in thread | raw e-mail | index | archive | help
I'm trying to use getrusage(RUSAGE_SELF) to measure how much CPU time
something is taking (no, I can't use regular profiling for this). I'm
running into a problem with occasional *negative* deltas between two
calls to getrusage. The following program illustrates it:
#include <sys/time.h>
#include <sys/resource.h>
main()
{
struct rusage ru;
while (1) {
getrusage(RUSAGE_SELF, &ru);
printf("%d %d\n", ru.ru_utime.tv_sec,
ru.ru_utime.tv_usec);
}
}
If you run this (and pipe to uniq to cut the output a bit) you'll see
places where the ru.utime.tv_usec goes backwards... Here's an example:
0 14090
0 14092
0 14094
0 14096
0 14098
0 14100
0 11283
0 11285
0 11286
0 11288
0 11290
0 11291
0 11293
0 11294
so each call normally goes up 2us, but sometimes jumps back 3ms! This
happens on my PII 350 and my P120. My system info:
FreeBSD pulsar.ben.com 2.2.7-RELEASE FreeBSD 2.2.7-RELEASE #0: Sun Sep 13 04:49:04 PDT 1998 bjj@pulsar.ben.com:/usr/src/sys/compile/PULSAR i386
--Ben
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811230224.SAA08999>
