Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Vertegenwoordigt een klok die nooit wordt aangepast en die met een uniform tarief vooruitgaat.
Syntaxis
struct steady_clock;
Opmerkingen
A steady_clock is een monotone klok, wat betekent dat de tijd die het rapporteert alleen vooruit gaat. De waarde die door een aanroep wordt now geretourneerd, is altijd kleiner dan of gelijk aan de waarde die wordt geretourneerd door de volgende aanroep naar now.
Een steady_clock zorgt ervoor dat de tijd tussen tikken constant is, waardoor het beter is voor het meten van intervallen dan het gebruik van een systeemklok. De systeemklok biedt wandkloktijd. Het probleem met het gebruik van wandkloktijd om verstreken tijd te meten, is dat de tijd van de wandklok kan worden gewijzigd tijdens het meten van een tijdsinterval. Het kan worden gewijzigd door te synchroniseren met een andere klok via het netwerk, door een overgang naar zomertijd, enzovoort. A steady_clock is niet onderhevig aan deze aanpassingen, waardoor het de voorkeursmethode is om de verstreken tijd bij te houden.
high_resolution_clock is een typedef voor steady_clock. In Windows steady_clock verpakt u de QueryPerformanceCounter functie.
Voorbeeld
#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
Gemakstypealiassen
| Naam | Beschrijving |
|---|---|
steady_clock::duration |
In de implementatie van Microsoft is het een synoniem voor nanoseconds, dat wordt gedefinieerd als duration<long long, nano>. Het vertegenwoordigt een tijdsduur die wordt gemeten in miljarden van een seconde. |
steady_clock::period |
In de implementatie van Microsoft is het een synoniem voor nano, dat wordt gedefinieerd als std::ratio<1i64, 1000000000i64> . Het vertegenwoordigt de tijd in seconden (één miljardste van een seconde) tussen elke maatstreep in de duur. |
steady_clock::rep |
Een synoniem voor long long, dat is het type dat wordt gebruikt in de Microsoft-implementatie om het aantal kloktekens in een steady_clock::duration |
steady_clock::time_point |
Een synoniem voor time_point<steady_clock>. Wordt gebruikt om een time_point voor deze klok weer te geven. |
Openbare functies
| Functie | Beschrijving |
|---|---|
now |
Retourneert de huidige tijd van de steady_clock als een time_point waarde. |
Openbare constanten
| Naam | Beschrijving |
|---|---|
steady_clock::is_steady |
Houdt vast true. Een steady_clock is stabiel. Dit betekent dat u deze klok kunt gebruiken om de tijd voor een gebeurtenis, de tijd na een gebeurtenis op een betrouwbare manier af te trekken om de duur van de gebeurtenis op te halen omdat de klok gedurende die tijd niet wordt aangepast. |
Behoeften
koptekst:<chrono>
naamruimte:std::chrono
Zie ook
<chrono>
file_clock class
high_resolution_clock
local_t Struct
system_clock Struct
tai_clock klas
utc_clock klas
headerbestanden