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
now
tarafı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_clock
bir 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 nanoseconds bir 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 nano bir 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 long bir 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin