我需要一個函數或方法來在幾秒鐘內獲得UNIX紀元,這很像我在PHP中使用時間函數的方式。C++:我如何獲得unix時間?
我找不到任何方法,除了ctime中的time()似乎只輸出格式化日期,或clock()函數有秒,但似乎總是100萬的倍數,沒有任何方法解析度。我想測量程序中的執行時間,我只是想計算開始和結束之間的差異;一個C++程序員如何做到這一點?編輯:time()和difftime只允許以秒爲單位的分辨率,而不是ms或任何其他任何btw。
我需要一個函數或方法來在幾秒鐘內獲得UNIX紀元,這很像我在PHP中使用時間函數的方式。C++:我如何獲得unix時間?
我找不到任何方法,除了ctime中的time()似乎只輸出格式化日期,或clock()函數有秒,但似乎總是100萬的倍數,沒有任何方法解析度。我想測量程序中的執行時間,我只是想計算開始和結束之間的差異;一個C++程序員如何做到這一點?編輯:time()和difftime只允許以秒爲單位的分辨率,而不是ms或任何其他任何btw。
time()應該正常工作,使用difftime作爲時間差計算。如果您需要更好的解決方案,請使用gettimeofday。
而且,重複:Calculating elapsed time in a C program in milliseconds
如果要分析得到的,我推薦使用getrusage。這將允許你跟蹤CPU時間,而不是掛鐘時間:
struct rusage ru;
getrusage(RUSAGE_SELF, &ru);
ru.ru_utime.tv_sec; // seconds of user CPU time
ru.ru_utime.tv_usec; // microseconds of user CPU time
ru.ru_stime.tv_sec; // seconds of system CPU time
ru.ru_stime.tv_usec; // microseconds of system CPU time
你想要比秒精度更好的東西,但以秒爲單位測量? – 2010-06-13 06:45:36