時間測定関数の性能(分解能と最大値)のまとめ
解説
時間測定関数の性能(分解能と最大値)をまとめます。
時間測定関数には以下のような関数があります。
- 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[ミリ秒]にした場合