時間測定関数の性能(分解能と最大値)のまとめ

解説

時間測定関数の性能(分解能と最大値)をまとめます。

時間測定関数には以下のような関数があります。

clock
プロセス開始時からの経過時間を、秒単位の経過時間CLOCKS_PER_SECで取得します。
GetTickCount
システムを起動した後の経過時間を、ミリ秒単位で取得します。
timeGetTime
Windows が起動してから経過した時間を、ミリ秒単位で取得します。
QueryPerformanceCounter
高分解能パフォーマンスカウンタの現在の値を取得します。

分解能と最大値

関数名 分解能 最大値 変数の型
clock 15[ミリ秒]
前後
2^31[ミリ秒]
(約24.86[日])
※1
clock_t
32ビット符号付き整数
GetTickCount 15[ミリ秒]
前後
2^32[ミリ秒]
(約49.71[日])
DWORD
32ビット符号なし整数
timeGetTime 1[ミリ秒]
※2
2^32[ミリ秒]
(約49.71[日])
DWORD
32ビット符号なし整数
QueryPerformanceCounter 0.002[ミリ秒]
前後
2^63 / (高分解能パフォーマンスカウンタの周波数) [秒] LARGE_INTEGER
64ビット符号付き整数

※1:CLOCKS_PER_SECが1000の場合
※2:timeBeginPeriod(1)によって、最小分解能を1[ミリ秒]にした場合

サンプルコード

ダウンロード

サンプルプロジェクト