• 締切済み

WinAPIのGetLocalTimeの分解能は?

Windows API の GetLocalTimeの分解能について質問があります。 この関数は、連続して呼び出しを行うと、ミリ秒の部分が15ミリ秒程度の周期で更新されるという話をネット上で散見します。調査が甘いのか15ミリ秒の根拠が見つかりませんでした。WindowsXPでの検証結果であることが多いようにも感じています。 しかし、私のローカルPC上で同関数をC言語プログラムから実行する限りは、1ミリ秒以下の精度を持っているように思えます。 <ローカルPCのスペック> OS:windows8-pro CPU:core-i7 自分でも精度と分解能を勘違いしているのかと思っていたのですが、どうもそれも違うようです。 おおざっぱな質問ではありますが、GetLocalTimeの分解能は私の環境ではどうやって確認できるのでしょうか? ご教示頂けますと幸いです。

みんなの回答

回答No.2

GetLocalTime()は、直接時計ICやカウンタ等から時刻を取得しているわけではなく、メモリ上の時刻データを返すだけです。 そして、そのメモリ上の時刻データが更新されるのが、大体15mSec毎ということです。

  • ariseru
  • ベストアンサー率56% (928/1657)
回答No.1

http://d.hatena.ne.jp/kasei_san/20070727/p1 こちらのページによると、1ms単位の数値を返してはいるけど10ms程度の誤差が出るらしい。

hymdle
質問者

補足

私の記述が不足しておりました。 そのページも既に見ています。 分解能は以下の理解です。 ・ある間隔(分解能)で時刻を観測する。 ・分解能が15ミリなら、  2013/01/14 13:41:23.105 2013/01/14 13:41:23.255  というふうに一桁ミリ秒の意味は無くなります。 精度は表現出来る桁数のことで上記の場合、1ミリ秒になります。 改めて疑問を説明すると、上記の例が  2013/01/14 13:41:23.105 2013/01/14 13:41:23.105 2013/01/14 13:41:23.105 2013/01/14 13:41:23.106 というふうに、一桁ミリ以下の分解能で1桁ミリ秒の精度の日時を取得しているように見えるのです。

関連するQ&A

専門家に質問してみよう