「びぶ朗」をダウンロードしていただいて、付属のドキュメントを読んだ人はこんな文を読まれたはずだ。

日差で性能を語るべき機械式時計に測定対象を絞れば、現在のパソコンの性能は必要にして十分であると考えられます。

実は、ここからはこの文と矛盾する。
CPUが8bitとか16bitとかの頃から伝統的にパソコンのクロックは精度が良くない。その上、WindowsはリアルタイムOSではない。正確に実験した訳ではないが、最新のPCを使ってもある程度の正確性を維持した割り込みは数百ミリ秒が限界ではないだろうか?
一方、時計のテンプは1秒間に早いもので10往復する。つまり100ミリ秒に1回信号が発生する。その信号をグラフにしようとすると、割り込みを受けてから、次の100ミリ秒までに計算と描画のすべてを終えなくてはいけない。そして、プログラムを書き始めようとして気がつくのは、信号と割り込みを同期していたのでは、本当に狂いの無い時計のグラフしか書けないということだ。つまり、おくれすすみののある時計は、次の信号までの間隔が99ミリ秒だったり、101ミリ秒だったりするから遅れたり、進んだりする。実際はもっとシビアだ。そのズレを捕捉できない限りタイムグラファーのようなグラフにはならないのだ。
じゃぁ、1ミリ秒ごとに割り込みを発生させる?
これは無理な話だ。今のパソコンでは1ミリ秒ごとに計算と描画のすべてを遅れを生じさせずにこなすことは難しい。いや、たぶん無理だ。そうしてパソコンの限界を知った。現代最高峰のPCでも補助機器なしで時計の誤差をきっちり測定することは実は難しい。王道を歩いていたのではプログラムを実現できないことを知った瞬間だった。

広告