我需要一个函数或方法来在几秒钟内获得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