Giriş
Şu satırı dahil ederiz.
Örnek
Şöyle yaparız
Şöyle yaparız.
Monotonic Saat - CLOCK_MONOTONIC_RAW
CLOCK_MONOTONIC_RAW Linux'a mahsus bir saat ve direkt donanımla konuştuğu yazılı ancak bu cümleden tam ne kast ediliyor bilmiyorum.
Epoch'tan beri geçen süreyi yani UTC saati almak için CLOCK_REALTIME saatini kullanmak gerekir. Bu metod ile saniye + nanosaniye seviyesinde ölçüm yapmak mümkündür. Yani gettimeofday metoduna göre daha hassastır.
Bu metod sonucu ikinci parametre olan struct timespec'i doldurarak verir.
Şu satırı dahil ederiz.
#include <time.h>
clock_gettime ile birçok saat çeşidi gelmektedir.
Açıklaması şöylePOSIX only requires that CLOCK_REALTIME be present, other clocks are optional.Monotonic Saat - CLOCK_MONOTONIC
Örnek
Şöyle yaparız
clock_gettime(CLOCK_MONOTONIC, & spec);
ÖrnekŞöyle yaparız.
struct timespec start, end;
for(i = 0; i < pkt_count; ++i)
{
clock_gettime(CLOCK_MONOTONIC, &start);
...
clock_gettime(CLOCK_MONOTONIC, &end);
printf("%.3f ", timespec_diff_usec(&end, &start));
}
timespec_diff_usec() metodu burada tanmlı.Monotonic Saat - CLOCK_MONOTONIC_RAW
CLOCK_MONOTONIC_RAW Linux'a mahsus bir saat ve direkt donanımla konuştuğu yazılı ancak bu cümleden tam ne kast ediliyor bilmiyorum.
Örnek
Şöyle yaparız.struct timespec tp;
clock_gettime(CLOCK_MONOTONIC_RAW, &tp);
Sistem Saati - CLOCK_REALTIMEEpoch'tan beri geçen süreyi yani UTC saati almak için CLOCK_REALTIME saatini kullanmak gerekir. Bu metod ile saniye + nanosaniye seviyesinde ölçüm yapmak mümkündür. Yani gettimeofday metoduna göre daha hassastır.
Bu metod sonucu ikinci parametre olan struct timespec'i doldurarak verir.
Örnek
Şöyle yaparız
#include <unistd.h>#include <time.h>int main(){// Çıktı olarak 876,764,530 saniye dönerprintf("time returns %d seconds\n", time(NULL);)//Çıktı olarak 876,764,530 saniye 000,0674,633 nanosaniye dönerstruct timespec ts;clock_gettime(CLOCK_REALTIME, &ts);printf("%d seconds and %ld nanoseconds\n", ts.tv_sec, ts.tv_nsec);}
Örnek
Bir başka örnekte ise sistemin verdiği saati 5 saniye ileri alınıyor.
struct timespec start;clock_gettime(CLOCK_REALTIME, &start); start.tv_sec+=5; //5 saniye ileri al
Örnek
Şöyle yaparız.
clock_gettime POSIX eş zamanlılık API'leri ile kullanılır. Şöyle yaparız.
struct timespec ts;
if (clock_gettime(CLOCK_REALTIME, &ts))
{
...
}
Örnekclock_gettime POSIX eş zamanlılık API'leri ile kullanılır. Şöyle yaparız.
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
ts.tv_sec += 10; // ten seconds
while (!my_condition && ret == 0)
ret = pthread_cond_timedwait (&cond, &mutex, &ts);
Kullanılan CPU Saati - CLOCK_PROCESS_CPUTIME_ID
ÖrnekMost operating systems have some clocks that will only count while your process is running. These are not standardized, but on POSIX systems you could consider using clock_gettime() with CLOCK_PROCESS_CPUTIME_ID.
Şöyle yaparız
timespec time1, time2;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
...
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
Hiç yorum yok:
Yorum Gönder