i386 Linuxの時間の精度を見るために, 次のようなプログラムをつくってみました。
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
int main()
{
int i;
struct timeval tv;
struct timezone tz;
int sec[100], usec[100];
for (i = 0; i < 100; i++) {
(void) gettimeofday(&tv, &tz);
sec[i] = tv.tv_sec;
usec[i] = tv.tv_usec;
}
for (i = 0; i < 100; i++)
printf("%d.%06d\n", sec[i], usec[i]);
return 0;
}
AMD K5マシン(約 200 BogoMIPS)では, 約6マイクロ秒が最小時間間隔であることがわかりました。 IBM PC は数十分の一秒単位の時計しか持っていないと思っていたのですが, けっこう Linux の時計の精度はいいのですね。
リンクはご自由にどうぞ。
松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Copyright (c) 1998 Haruhiko Okumura. Last modified: Sun Aug 2 17:24:55 1998