[Windows] gettimeofdayの同等機能

gettimeofdayと同等の機能をWindowsで実現するには。
UNIX系のOSではマシン内で刻むマイクロ秒単位のクロックを得るライブラリ関数gettimeofday()がある。
Windowsでは単独でおなじような機能を実装することはできないらしく、インターネット上で検索すると上記のURLの内容があちこちに書かれている。

以下にサンプル実装があった。
GetSystemTimeを使ってあとは計算で出す。
gettimeofday

ほぼ同じものは以下のstackoverflow.comにもコピーされている。
Equivalent of gettimeday() for Windows

この実装の欠点は、現在のWindowsでは15msから30ms程度の解像度しかないことである。
Windows 7では解像度が上がっているのではないかと思う。
試しに以下の質問と回答にあるソースコードを手元で実行してみた。
How does the clock work in Windows 7?
そうしたところ、この回答にあるような16ごとの数値ではなく1ずつ増えている。
11
これが正しければおそらく約1msの解像度を持つようになっているのではないか。

広告
%d人のブロガーが「いいね」をつけました。