system_clock representerer den systemomfattende sanntidsveggklokken. Det påvirkes av systemets tidsjusteringer.
steady_clock representerer en monotont økende klokke som ikke påvirkes av endringer i systemtiden.
high_resolution_clock er klokken med kortest avkryssingsperiode tilgjengelig på systemet.
manuell testing
I tillegg
Chrono-biblioteket brukes til å håndtere dato og klokkeslett. Dette biblioteket ble designet for å håndtere det faktum at tidtakere og klokker kan være forskjellige på forskjellige systemer og dermed forbedres over tid når det gjelder presisjon. Det unike med chrono er at det gir en presisjonsnøytralt konsept ved å skille varighet og tidspunkt (tidspunkt) fra spesifikke klokker. chrono er navnet på en header og også på et sub-namespace: Alle elementene i denne headeren (bortsett fra common_type-spesialiseringene) er ikke definert direkte under standard-navneområdet (som de fleste av standardbiblioteket), men under std::chrono navneområde . Elementene i denne overskriften omhandler tid. Dette gjøres hovedsakelig ved hjelp av tre konsepter:
Varighet
java dato gjeldende
Et varighetsobjekt uttrykker et tidsrom ved hjelp av en telling som et minutt to timer eller ti millisekunder. For eksempel kan '42 sekunder' representeres av en varighet som består av 42 tikker av en 1-sekunds tidsenhet.
CPP// C++ program to illustrate the utility // function duration::count #include #include int main () { using namespace std::chrono; // std::chrono::milliseconds is an // instantiation of std::chrono::duration:- 1 second milliseconds mil(1000); mil = mil*60; std::cout << "duration (in periods): "; std::cout << mil.count() << " milliseconds.n"; std::cout << "duration (in seconds): "; std::cout << (mil.count() * milliseconds::period::num / milliseconds::period::den); std::cout << " seconds.n"; return 0; }
Produksjon:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Klokke
En klokke består av et startpunkt (eller epoke) og en tikkfrekvens. For eksempel kan en klokke ha en epoke på 22. februar 1996 og tikke hvert sekund. C++ definerer tre klokketyper:
Tidspunkt
Et time_point-objekt uttrykker et tidspunkt i forhold til en klokkes epoke. Internt lagrer objektet et objekt av en varighetstype og bruker klokketypen som referanse for sin epoke.
CPP// C++ program to illustrate time point // and system clock functions #include #include #include // Function to calculate // Fibonacci series long fibonacci(unsigned n) { if (n < 2) return n; return fibonacci(n-1) + fibonacci(n-2); } int main() { // Using time point and system_clock std::chrono::time_point<std::chrono::system_clock> start end; start = std::chrono::system_clock::now(); std::cout << "f(42) = " << fibonacci(42) << 'n'; end = std::chrono::system_clock::now(); std::chrono::duration<double> elapsed_seconds = end - start; std::time_t end_time = std::chrono::system_clock::to_time_t(end); std::cout << "finished computation at " << std::ctime(&end_time) << "elapsed time: " << elapsed_seconds.count() << "sn"; }
Produksjon:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
Det er viktig å merke seg at presisjonen og nøyaktigheten til klokkene og varighetene levert av
git rebase
Lag quiz