Sdílet prostřednictvím


steady_clock Struct

Představuje hodiny, které se nikdy neupravují a které se posunou vpřed jednotnou rychlostí.

Syntaxe

struct steady_clock;

Poznámky

A steady_clock je monotónní hodiny, což znamená, že čas, který hlásí, se posune vpřed. Hodnota vrácená voláním now je vždy menší nebo rovna hodnotě, která je vrácena dalším voláním now.

Zajišťuje steady_clock , že čas mezi ticks je konstantní, což usnadňuje měření intervalů než používání systémových hodin. Systémové hodiny poskytují nepřetržitý čas. Problém s měřením uplynulého času pomocí hodinových hodin je, že se při měření časového intervalu může změnit čas na zdi. Můžete ho upravit tak, že se synchronizuje s dalšími hodinami v síti, přechodem na letní čas atd. Na tyto úpravy se nepodléhá A steady_clock , takže je upřednostňovaným způsobem sledování uplynulého času.

high_resolution_clock je typedef pro steady_clock. Ve Windows steady_clock zabalí QueryPerformanceCounter funkci.

Příklad

#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 typů pohodlí

Název Popis
steady_clock::duration V implementaci Microsoftu se jedná o synonymum , nanosecondskteré je definováno jako duration<long long, nano>. Představuje dobu trvání měřenou v miliardách sekundy.
steady_clock::period V implementaci Microsoftu se jedná o synonymum , nanokteré je definováno jako std::ratio<1i64, 1000000000i64> . Představuje čas v sekundách (jedna miliarda sekundy) mezi jednotlivými záškrty v době trvání.
steady_clock::rep Synonymum pro long long, což je typ použitý v implementaci Microsoftu, který představuje počet hodinových záškrtů v steady_clock::duration
steady_clock::time_point Synonymum pro time_point<steady_clock>. Používá se k reprezentaci time_point pro tento čas.

Veřejné funkce

Function Popis
now Vrátí aktuální čas z steady_clock time_point hodnoty.

Veřejné konstanty

Název Popis
steady_clock::is_steady Drží true. A steady_clock je stabilní. To znamená, že tyto hodiny můžete použít k získání času před událostí, času po události a spolehlivému odečtení doby trvání události, protože hodiny se během této doby neupraví.

Požadavky

Záhlaví: <chrono>

Obor názvů: std::chrono

Viz také

<chrono>
file_clock class
high_resolution_clock
local_t Struct
system_clock Struct
Třída tai_clock
Třída utc_clock
Referenční informace k souborům hlaviček