2011-09-15 7 views
1

QueryPerformanceCounterから返されたカウントは、最後のシステム起動後の時間に関係していると想定するのは安全ですか?または、システムの稼動中にリセットすることはできますか? MSDNの記事自体はこれを保証するものではありませんが、これがそうであると言う第三者情報(thisなど)を見てきました。QueryPerformanceCounterは起動後の時間を保証しますか?

+1

「ブート」の意味を定義したい場合があります。システムがスリープモードまたはハイバネーションモードになると、起動するとカウンタがリセットされます。 2)寝る前に中断したところから始める。 3)睡眠/冬眠に費やした時間を含むように調整するか?一般的に、私は 'QueryPerformanceCounter'であなたが"起動からの時間 "を得られるとは思っていません。応答が言ったように、それは相対的な時間です。基本時間がどんな信頼性をもって言うことはできません。 –

答えて

3

これは、相対的な時間に使用されることを意味します。しかし、私はそれがブートから時間を測定するために使用できるとは思わない。

私が聞くところでは、CPUの電源が投入されてから "疑似" CPUサイクルを測定するrdtsc命令を使用して実装されています。その場合、はい、それはおそらく起動後の時間を与えますが、これは指定されていないと思います。

+0

'これは相対時間に使用されることを意味するので、ブート+ Nから時間がかかる可能性があるので、ブート後に増加することはありますが、ブート時の測定値であることは保証されません。 –

+0

私は起動時からの時間を測定するという「公式」な文書は見当たりません。しかし、多くのサードパーティのサイトには、それがそうであると言われています。 – Mysticial

+1

相対的な時間であっても、その使用法の要件を満たす唯一の方法は、安定したレートで単調増加することです。リセットは間違いなく問題になります。彼らは相対的な時間が負になるでしょう。もちろん、Windowsが本来の動作を保証しているかどうかはわかりません(POSIXは 'CLOCK_MONOTONIC'の動作を保証します)。 –

関連する問題