Date: Sun, 9 Sep 2007 22:50:25 +0200 From: Martin Tournoij <carpetsmoker@xs4all.nl> To: freebsd-questions@freebsd.org Subject: Getting the CPU frequency in C Message-ID: <20070909205025.GA40102@glitch.rwxrwxrwx.net>
next in thread | raw e-mail | index | archive | help
I'm trying to get the CPU frequency in C:
#include <unistd.h>
#include <time.h>
#include <ctype.h>
#include <sys/sysctl.h>
#include <stdio.h>
#include <sys/time.h>
int main()
{
int mib[2];
size_t size;
struct clockinfo clockrate;
mib[0] = CTL_KERN;
mib[1] = KERN_CLOCKRATE;
size = sizeof clockrate;
sysctl(mib, 2, &clockrate, &size, NULL, 0);
fprintf(stdout, "hz: %i\n", clockrate.hz);
fprintf(stdout, "tick: %i\n", clockrate.tick);
fprintf(stdout, "spare: %i\n", clockrate.spare);
fprintf(stdout, "stathz: %i\n", clockrate.stathz);
fprintf(stdout, "profhz: %i\n", clockrate.profhz);
return 0;
}
I tried to run this on two machines (one machine with hw.clockrate: 1378 and
the other 797) and it outputs the same on both:
hz: 1000
tick: 1000
spare: 0
stathz: 133
profhz: 666
The profhz value suggest the devil is at work :D although it's probably a some
stupid mistake on my part :/ Can anyone help?
Thanks,
Martin Tournoij
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070909205025.GA40102>
