QueryPerformanceCounterについて

解決


やすお  2003-07-13 15:02:25  No: 51721  IP: [192.*.*.*]

はじめまして。
QueryPerformanceCounterを使って10秒毎に処理を行うプログラムを作っているんですが、長期間稼動するとGetTickCountのようにカウンタがゼロになるんでしょうか?

編集 削除
安田  2003-07-14 00:13:36  No: 51722  IP: [192.*.*.*]

理論的にはそうなるでしょう。
しかし、計算してみればわかりますが現実的に起こりえません。

編集 削除
やすお  2003-07-24 07:02:05  No: 51723  IP: [192.*.*.*]

安田さん、ありがとうございます。

ということは、QueryPerformanceFrequency(&freq)とした場合、最大で
(2^64/freq)*1000000(usec)程度でゼロになるということでしょうか?

間違っていますか?

編集 削除
ブタゴリラ  2003-07-24 13:36:55  No: 51724  IP: [192.*.*.*]

あっていると思います。

ただ、QueryPerformanceFrequencyの引数は、
64ビットの符号ありの変数ですから、
(2^63) - 1
から先はどういう風に動作するかは不明です。
(多分キャストをかければ問題なく動くはず?)


プログラムによっても変わりますが、
もし、ゼロになった時には自分で補正をかけてやれば良いと思います。
(ちなみに、私のパソコンでは、ゼロになるのは、約49万年後でした。)

ただ、ハードウェアが対応していない時もありますから注意してください。
(見た事は無いけど…。)

編集 削除
やすお  2003-07-27 06:18:38  No: 51725  IP: [192.*.*.*]

ブタゴリラさん、貴重な情報ありがとうございます。
参考にさせて頂きます。

編集 削除