Aracılığıyla paylaş


steady_clock Yapı

Hiçbir zaman ayarlanmamış ve tekdüzen hızda ilerleyen bir saati temsil eder.

Sözdizimi

struct steady_clock;

Açıklamalar

A steady_clock , monoton bir saattir ve bu da yalnızca rapor verdiği zamanın ileriye doğru ilerlediği anlamına gelir. çağrısı tarafından döndürülen değer her zaman için bir sonraki çağrı now nowtarafından döndürülen değerden küçük veya buna eşittir.

A steady_clock , keneler arasındaki sürenin sabit olmasını sağlayarak, aralıkları ölçmek için sistem saatini kullanmaktan daha iyi olmasını sağlar. Sistem saati, duvar saati süresi sağlar. Geçen süreyi ölçmek için duvar saati süresini kullanmanın sorunu, zaman aralığını ölçerken duvar saati süresinin değiştirilebileceğidir. Ağ üzerinden başka bir saatle eşitlenerek, yaz saati saatine geçiş yapılarak değiştirilebilir. A steady_clock bu ayarlamalara tabi değildir ve bu da geçen süreyi takip etmenin tercih edilen yoludur.

high_resolution_clock , için steady_clockbir tür tanımıdır. Windows'da işlevi steady_clock sarmalar QueryPerformanceCounter .

Örnek

#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

Kolaylık türü diğer adları

Veri Akışı Adı Açıklama
steady_clock::duration Microsoft'un uygulamasında, olarak tanımlanan duration<long long, nano>için nanosecondsbir eş anlamlıdır. Saniyenin milyarda biri cinsinden ölçülen süreyi temsil eder.
steady_clock::period Microsoft'un uygulamasında, olarak tanımlanan std::ratio<1i64, 1000000000i64> için nanobir eş anlamlıdır. Süredeki her bir değer çizgisi arasındaki süreyi saniye cinsinden (saniyenin milyarda biri) temsil eder.
steady_clock::rep bir içindeki saat işaretlerinin sayısını göstermek için Microsoft uygulamasında kullanılan tür olan için long longbir eş anlamlı steady_clock::duration
steady_clock::time_point için time_point<steady_clock>bir eş anlamlı. Bu saat için bir time_point temsil etmek için kullanılır.

Genel işlevler

İşlev Açıklama
now değerinden steady_clock geçerli saati değer time_point olarak döndürür.

Genel sabitler

Veri Akışı Adı Açıklama
steady_clock::is_steady öğesini barındırıyor true. A steady_clock sabittir. Bu, bu saati bir olaydan önceki zamanı, bir olaydan sonraki zamanı almak için kullanabileceğiniz ve saat bu süre boyunca ayarlanmayacağı için olayın süresini almak için bunları güvenilir bir şekilde çıkarabileceğiniz anlamına gelir.

Gereksinimler

Üstbilgi: <chrono>

Ad alanı: std::chrono

Ayrıca bkz.

<chrono>
file_clock class
high_resolution_clock
local_t Yapı
system_clock Yapı
tai_clock sınıfı
utc_clock sınıfı
Üst Bilgi Dosyaları Başvurusu