ale*_*lex 10 c timer execution-time
目前,我得到我的程序的执行壁上时间秒致电:
time_t startTime = time(NULL);
//section of code
time_t endTime = time(NULL);
double duration = difftime(endTime, startTime);
Run Code Online (Sandbox Code Playgroud)
是否有可能以毫秒为单位获得挂壁时间?如果是这样的话?
如果你在POSIX-ish机器上,请gettimeofday()改用; 这为您提供了合理的便携性和微秒级分辨率.
略微更深奥,但也在POSIX,是clock_gettime()功能,它给你纳秒分辨率.
在许多系统上,您将找到一个ftime()实际上以秒和毫秒为单位返回时间的函数.但是,它不再是单Unix规范(与POSIX大致相同).你需要标题<sys/timeb.h>:
struct timeb mt;
if (ftime(&mt) == 0)
{
mt.time ... seconds
mt.millitime ... milliseconds
}
Run Code Online (Sandbox Code Playgroud)
这至少可以追溯到版本7(或第7版)Unix,所以它已经广泛使用.
我也有我的亚秒计时码笔记times()和clock(),再次使用其他结构和标题.我还有关于使用clock()每秒1000个时钟周期(毫秒时间)的Windows的注释,以及GetTickCount()在Windows 95上需要注意但在NT上没有注意到的旧接口.