Zamanlama fonksiyonları arasında, time, clock getrusage, clock_gettime, gettimeofdayve timespec_get, onlar nasıl uygulandığını açıkça anlamak istiyorum ve hangi durumlarda bunları kullanmak zorunda bilmek için onların dönüş değerleri nelerdir.
Öncelikle, duvar saati değerlerini döndüren işlevleri, süreç veya iş parçacığı değerlerini döndüren işlevlerle karşılaştırmalıyız . kendisine geçirilen parametreye göre duvar gettimeofdaysaati değerini clock_gettimedöndürür, duvar saati değerini veya işlem veya iş parçacığı değerlerini döndürür Clock. getrusageve clocksüreç değerlerini döndürür.
Daha sonra ikinci soru, bu işlevlerin uygulanması ve sonuç olarak bunların doğruluğu ile ilgilidir. Bu işlevler hangi donanım veya yazılım mekanizmasını kullanır.
Görünüşe göre getrusagesadece çekirdek onayını kullanıyor (genellikle 1ms uzunluğunda) ve sonuç olarak ms'den daha doğru olamaz. Doğru mu? Daha sonra getimeofdayişlev, mevcut en doğru temel donanımı kullanıyor gibi görünüyor. Sonuç olarak, son donanımda doğruluğu genellikle mikrosaniyedir (API nedeniyle daha fazla olamaz). Peki ya clock, man sayfası "yaklaşım" hakkında konuşuyor, bu ne anlama geliyor? Peki ya clock_gettimeAPI nanosaniye cinsinden, temelde yatan donanım buna izin veriyorsa bu kadar doğru olabileceği anlamına mı geliyor? Ya monotonluk?
Başka işlevler var mı?
clock_gettime, dolayısıyla kullanımıgettimeofday()daha çok yönlü bir Littleclock_gettime()