clock函数使用以及问题
使用
clock()函数是一个计算程序运行时间(其实简略的理解为占用CPU的使用时间)其实如果使用sleep函数,程序是放弃CPU的使用权,直到某个时间的到来,当然就不会存在占用CPU时间的时候,即使是一个计数的循环,对于CPU来说,也是微不足道的。计数单位:CLOCKS_PER_SEC, clock函数返回的值和CLOCKS_PER_SEC存在密不可分的关系,clock()/CLOCKS_PER_SEC返回的才是秒。在Linux下CLOCKS_PER_SEC是1000000, 在windows下是1000
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、山东网络推广、微信小程序定制开发、山东网络营销、山东企业策划、山东品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供山东建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
问题
clock_t是一个32位符号整型,按照理论计算,程序运行24天后,返回值将会由于溢出,变为-1.所以clock函数适合进行简单的运算时间的计数,不适合作为程序中运行时间的计数,目前应用
std::chrono::time_point_cast
进行时间的计数,获取当前系统日期时间的纳秒级计数
注意
类似会产生溢出的函数有 GetTickCount(),所以推荐使用GetTickCount64()进行替换
最精确的计算时间
LARGE_INTEGER t1, t2, tc;
QueryPerformanceFrequency(&tc);
QueryPerformanceCounter(&t1);
//do something
QueryPerformanceCounter(&t2);
int fCount =( t2.QuadPart - t1.QuadPart)*1000 / tc.QuadPart;
分享名称:clock函数使用以及问题
当前网址:http://ybzwz.com/article/ggdoji.html