steady_clock
構造体
調整されることがなく、一様な速度で前方に移動するクロックを表します。
構文
struct steady_clock;
解説
steady_clock
は単調なクロックです。つまり、それが報告する時間は前に進むだけであることを意味します。 now
の呼び出しによって返される値は、常に、now
の次の呼び出しによって返される値以下です。
steady_clock
では、ティック間の時間が一定であることが保証され、システム クロックを使用するよりも間隔を測定する方が適しています。 システム クロックは、実時間を提供します。 壁時計の時間を使用して経過時間を測定する場合の問題は、時間間隔の測定中に壁時計の時間が変更される可能性があるということです。 ネットワーク経由で別のクロックと同期したり、夏時間に移行したりして、変更できます。 steady_clock
は、このような調整の対象とならないため、経過時間を追跡方法として推奨されます。
high_resolution_clock
は steady_clock
の typedef です。 Windows では、steady_clock
は QueryPerformanceCounter
関数をラップします。
例
#include <chrono>
#include <thread>
#include <iostream>
using namespace std::chrono;
int main()
{
auto begin = steady_clock::now();
std::this_thread::sleep_for(std::chrono::seconds(1));
auto end = steady_clock::now();
std::cout << "Elapsed seconds: "
<< duration_cast<seconds>(end - begin).count()
<< "s\n";
std::cout << "Elapsed milliseconds: "
<< duration_cast<milliseconds>(end - begin).count()
<< "ms\n";
std::cout << "Elapsed microseconds: "
<< duration_cast<microseconds>(end - begin).count()
<< "us\n";
std::cout << "Elapsed nanoseconds: "
<< duration_cast<nanoseconds>(end - begin).count()
<< " ns\n";
return 0;
}
Elapsed seconds: 1s
Elapsed milliseconds: 1007ms
Elapsed microseconds: 1007266us
Elapsed nanoseconds: 1007266700 ns
便利な型のエイリアス
名前 | 説明 |
---|---|
steady_clock::duration |
Microsoft の実装では、nanoseconds の同意語で、duration<long long, nano> と定義されます。 10 億分の 1 秒単位で測定された期間を表します。 |
steady_clock::period |
Microsoft の実装では、nano の同意語で、std::ratio<1i64, 1000000000i64> と定義されます。 期間の各ティック間の時間を 10 億分の 1 秒単位で表します。 |
steady_clock::rep |
long long の同意語。これは、Microsoft の実装では、steady_clock::duration 内のクロック ティック数を表すために使用する型です。 |
steady_clock::time_point |
time_point<steady_clock> と同義。 このクロックの time_point を表す場合に使用します。 |
パブリック関数
関数 | 説明 |
---|---|
now |
steady_clock からの現在の時刻を time_point 値として返します。 |
パブリック定数
名前 | 説明 |
---|---|
steady_clock::is_steady |
true を保持します。 steady_clock は安定しています。 つまり、このクロックを使用すると、イベントの前の時間、イベントの後の時間、およびイベントの継続時間を取得し、それらを確実に減算してイベントの時間を取得できます。その間に、クロックが調整されてることがないためです。 |
要件
ヘッダー: <chrono>
名前空間: std::chrono
関連項目
<chrono>
file_clock class
high_resolution_clock
local_t
構造体
system_clock
構造体
tai_clock
クラス
utc_clock
クラス
ヘッダー ファイル リファレンス