Date: Wed, 1 Nov 1995 13:01:55 -0500 From: "Garrett A. Wollman" <wollman@lcs.mit.edu> To: Bruce Evans <bde@zeta.org.au> Cc: current@FreeBSD.org Subject: Re: Time problems Message-ID: <9511011801.AA01541@halloran-eldar.lcs.mit.edu> In-Reply-To: <199511011730.EAA07621@godzilla.zeta.org.au> References: <199511011730.EAA07621@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
<<On Thu, 2 Nov 1995 04:30:41 +1100, Bruce Evans <bde@zeta.org.au> said:
> much less than the average value mean that there is a problem. The
> program should calculate the average value to decide a good range to
> filter...
Here is a program that I have used to measure a whole bunch of things
about the clock...
------------------------------------
#include <sys/types.h>
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>
#include <math.h>
#include <limits.h>
#include <string.h>
#define N 2000000
int diffs[N];
int hist[N];
int main(void) {
int i, j;
int min, max;
double sum, mean, var, sumsq;
struct timeval tv, otv;
memset(diffs, '\0', sizeof diffs); /* fault in whole array, we hope */
for(i = 0; i < N; i++) {
gettimeofday(&tv, 0);
do {
otv = tv;
gettimeofday(&tv, 0);
} while(tv.tv_sec == otv.tv_sec && tv.tv_usec == otv.tv_usec);
diffs[i] = tv.tv_usec - otv.tv_usec + 1000000 * (tv.tv_sec - otv.tv_sec);
}
min = INT_MAX;
max = INT_MIN;
sum = 0;
sumsq = 0;
for(i = 0; i < N; i++) {
if(diffs[i] > max) max = diffs[i];
if(diffs[i] < min) min = diffs[i];
sum += diffs[i];
sumsq += diffs[i] * diffs[i];
}
mean = sum / (double)N;
var = (sumsq - 2 * mean * sum + sum * mean) / (double)N;
printf("min %d, max %d, mean %f, std %f\n", min, max, mean, sqrt(var));
for(i = 0; i < N; i++) {
hist[diffs[i]]++;
}
for(j = 0; j < 5; j++) {
max = 0;
min = 0;
for(i = 0; i < N; i++) {
if(hist[i] > max) {
max = hist[i];
min = i; /* xxx */
}
}
printf("%dth: %d (%d observations)\n", j + 1, min, max);
hist[min] = 0;
}
return 0;
}
------------------------------------
-GAWollman
--
Garrett A. Wollman | Shashish is simple, it's discreet, it's brief. ...
wollman@lcs.mit.edu | Shashish is the bonding of hearts in spite of distance.
Opinions not those of| It is a bond more powerful than absence. We like people
MIT, LCS, ANA, or NSA| who like Shashish. - Claude McKenzie + Florent Vollant
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9511011801.AA01541>
