Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Representa um relógio que nunca é ajustado e que avança a um ritmo uniforme.
Sintaxe
struct steady_clock;
Observações
A steady_clock é um relógio monotônico, o que significa que o tempo que ele relata só avança. O valor retornado por uma chamada para now é sempre menor ou igual ao valor retornado pela próxima chamada para now.
A steady_clock garante que o tempo entre ticks é constante, tornando-o melhor para medir intervalos do que usar um relógio do sistema. O relógio do sistema fornece o tempo do relógio de parede. O problema com o uso do tempo do relógio de parede para medir o tempo decorrido é que o tempo do relógio de parede pode ser modificado durante a medição de um intervalo de tempo. Ele poderia ser modificado sincronizando com outro relógio pela rede, por uma transição para o horário de verão, e assim por diante. A steady_clock não está sujeito a esses ajustes, tornando-se a maneira preferida de acompanhar o tempo decorrido.
high_resolution_clock é um typedef para steady_clock. No Windows, steady_clock encapsula a QueryPerformanceCounter função.
Exemplo
#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
Aliases de tipo de conveniência
| Nome | Descrição |
|---|---|
steady_clock::duration |
Na implementação da Microsoft, é um sinônimo de nanoseconds, que é definido como duration<long long, nano>. Representa uma duração de tempo medida em bilionésimos de segundo. |
steady_clock::period |
Na implementação da Microsoft, é um sinônimo de nano, que é definido como std::ratio<1i64, 1000000000i64> . Representa o tempo em segundos (um bilionésimo de segundo) entre cada tick na duração. |
steady_clock::rep |
Um sinônimo de long long, que é o tipo usado na implementação da Microsoft para representar o número de ticks de relógio em um steady_clock::duration |
steady_clock::time_point |
Sinónimo de time_point<steady_clock>. Usado para representar um time_point para este relógio. |
Funções públicas
| Função | Descrição |
|---|---|
now |
Retorna a hora atual do steady_clock como um time_point valor. |
Constantes públicas
| Nome | Descrição |
|---|---|
steady_clock::is_steady |
Detém true. A steady_clock está estável. Isso significa que você pode usar esse relógio para obter o tempo antes de um evento, o tempo depois de um evento e subtraí-los de forma confiável para obter a duração do evento, porque o relógio não será ajustado durante esse tempo. |
Requerimentos
Cabeçalho:<chrono>
Espaço de nomes:std::chrono
Ver também
<chrono>
file_clock class
high_resolution_clock
local_t estruturar
system_clock estruturar
Classe tai_clock
Classe utc_clock
de referência de arquivos de cabeçalho