steady_clock
Struct
Reprezentuje zegar, który nigdy nie jest dostosowywany i porusza się do przodu z jednolitą szybkością.
Składnia
struct steady_clock;
Uwagi
A steady_clock
jest monotonicznym zegarem, co oznacza, że czas zgłasza tylko do przodu. Wartość zwracana przez wywołanie metody now
jest zawsze mniejsza lub równa wartości zwracanej przez następne wywołanie metody now
.
Element steady_clock
zapewnia, że czas między znacznikami jest stały, dzięki czemu lepiej jest mierzyć interwały niż za pomocą zegara systemowego. Zegar systemowy zapewnia czas zegara ściany. Problem z użyciem czasu zegara ściany do pomiaru czasu, który upłynął, jest to, że czas zegara ściany może zostać zmodyfikowany podczas mierzenia przedziału czasu. Można go zmodyfikować przez synchronizację z innym zegarem przez sieć, przejście do czasu letniego i tak dalej. Element steady_clock
nie podlega tym korektom, co czyni go preferowanym sposobem śledzenia czasu, który upłynął.
high_resolution_clock
to definicja typu dla elementu steady_clock
. W systemie Windows steady_clock
opakowuje QueryPerformanceCounter
funkcję.
Przykład
#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
Aliasy typu wygody
Nazwa/nazwisko | opis |
---|---|
steady_clock::duration |
W implementacji firmy Microsoft jest to synonim , nanoseconds który jest definiowany jako duration<long long, nano> . Reprezentuje czas trwania mierzony w miliardowych częściach sekundy. |
steady_clock::period |
W implementacji firmy Microsoft jest to synonim , nano który jest definiowany jako std::ratio<1i64, 1000000000i64> . Reprezentuje czas w sekundach (jedna miliardowa sekundy) między każdym znacznikiem w czasie trwania. |
steady_clock::rep |
Synonim , long long który jest typem używanym w implementacji firmy Microsoft do reprezentowania liczby znaczników zegara w obiekcie steady_clock::duration |
steady_clock::time_point |
Synonim dla elementu time_point<steady_clock> . Służy do reprezentowania elementu dla tego zegara time_point . |
Funkcje publiczne
Function | opis |
---|---|
now |
Zwraca bieżącą godzinę z steady_clock wartości jako time_point . |
Stałe publiczne
Nazwa/nazwisko | opis |
---|---|
steady_clock::is_steady |
Przechowuje true . A steady_clock jest stały. Oznacza to, że możesz użyć tego zegara, aby uzyskać czas przed zdarzeniem, czas po zdarzeniu i niezawodnie odjąć je, aby uzyskać czas trwania zdarzenia, ponieważ zegar nie zostanie dostosowany w tym czasie. |
Wymagania
Nagłówek: <chrono>
Przestrzeń nazw: std::chrono
Zobacz też
<chrono>
file_clock class
high_resolution_clock
local_t
Struct
system_clock
Struct
Klasa tai_clock
Klasa utc_clock
Odwołanie do plików nagłówka