windowsに関するjohniyukiのブックマーク (1)

  • WindowsにおけるSleep(1)の精度について

    WindowsにおけるSleep(1)の精度について WindowsのプログラムでSleep(1)を実行するとその実行にかかる時間は期待する1msとは違って、約10ms、約16ms、約55msのいずれかとなり装置によって異なる。 装置によってSleep(1)の実行時間が異なるのは、OSが使用するタイマーの種類とタイマーへの設定値の違いによるタイマー割り込みの分解能の違いが原因である。 Windowsの時間の制御は周期的なタイマー割り込みを使っている。プログラムをSleep()から復帰させるのはOSのスケジューラの仕事である。スケジューラはタイマー割り込みの分解能よりも短い時間で要求されたSleep()の実行をその時間で完了させることは保障できない。タイマー割り込みの分解能よりも高い精度は出せない。これが「Sleep()は精度が悪い」といわれる事象である。 Windows 9x系においてはP

  • 1