[英]<time.h> clock() does not work properly
我試圖估算代碼塊的持續時間(特別是為了獲得基於物理的動畫的幀速率獨立性的時間步長,因此分辨率應為毫秒級)。 堆棧溢出的問題主要是建議使用clock()方法,我已經嘗試過了,但似乎無法正常工作。 我已經使用gettimeoftheday()方法解決了這個問題,但是我仍然對clock()為什么失敗感到好奇。 這是我的代碼塊:
for (int i = 0; i < 10000; i++)
{
std::cout << "time: " << clock() << std::endl;
usleep(1000);
}
這將以一定的速度打印時間。 當我將usleep值增加到1000000時,打印時鍾值的增加率急劇下降。 我認為clock()應該給出與絕對時間值相關的值,而與我的代碼無關。
提前致謝。
PS:為了避免可能的誤會,我並不是在抱怨打印比例下降。 usleep(1000)和usleep(1000000)之間在特定增量時間打印的值不同。
我認為clock()應該提供與絕對時間值相關的值
你錯了 從其規范(C99 7.32.2.1)
clock
功能確定使用的處理器時間 。
如果需要絕對時間,請使用time
或std::chrono
庫中合適的時鍾,或者使用不太方便的時鍾,例如clock_gettime
或gettimeofday
。
問題的假設是錯誤的,但是我不得不反對這個問題,因為時間測量和時間API令人困惑,因此用戶正確地提出這樣的問題。
給定問題描述,我將使用最后一個進行計算:設置一個1秒間隔的計時器,該計時器在完成后觸發信號。 然后打印您可以繪制的幀數。 您可以稍后使用此數字來調整幀渲染的復雜度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.