- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
C++?计算时间差的五种方法小结
C++计算时间的五种方法:
clock():msGetTickCount():msgettimeofday(time_val*,NULL):usQueryPerformanceFrequency(LARGE_INTEGER*)QueryPerformanceCounter(LARGE_INTEGER*):ustime(NULL):s
#includeQThread
#includeQTime
#includesys/time.h?//clock,gettimeofday,time
#includewindows.h??//Sleep,GetTickCount,timeGetTime,QueryPerformanceCounter
#includeQDebug
//#pragmacomment(lib,winmm.lib)//timeGetTime,但是这个库Windows或Qt或VS2015都没有自带
constunsignedlongSLEEP_TIME_MILL=1000;
?*QTime的精度为ms级
voidcalcByQtimeElapsed(){
??QTimetime;
??time.start();
??QThread::msleep(SLEEP_TIME_MILL);
??inttimeElapsed=time.elapsed();
??qDebug()QTime.startQTime.elspsed=timeElapsedms;
?*QTime的精度为ms级
voidcalcByQtimeCurrentTime(){
??QTimestartTime=QTime::currentTime();
??QThread::msleep(SLEEP_TIME_MILL);
??QTimestopTime=QTime::currentTime();
??intelapsed=startTime.msecsTo(stopTime);
??qDebug()QTime.currentTime=elapsedms;
?*clock的精度为ms级
voidcalcByClock(){
??clock_tstartTime=clock();
??Sleep(SLEEP_TIME_MILL);
??clock_tendTime=clock();
??clock_telapsed=endTime-startTime;
??qDebug()clock=elapsedms;
?*GetTickCount的精度为ms级
voidcalcByTickCount(){
??//返回自开机以来经历的毫秒数
??DWORDstartTime=GetTickCount();
??Sleep(SLEEP_TIME_MILL);
??DWORDstopTime=GetTickCount();
??DWORDelapsed=stopTime-startTime;
??qDebug()GetTickCount=elapsedms;
///**
//*timeGetTime的精度为ms级
//*必须添加Winmm.lib,否则编译报错undefinedreference
//*/
//voidcalcByTimeGetTime(){
//??//返回自开机以来经历的毫秒数
//??DWORDstartTime=timeGetTime();
//??Sleep(SLEEP_TIME_MILL);
//??DWORDstopTime=timeGetTime();
//??DWORDelapsed=stopTime-startTime;
//??qDebug()timeGetTime=elapsedms;
?*gettimeofday的精度为us级
voidcalcByGetTimeOfDay(){
??structtimevalstartTime,stopTime;
??gettimeofday(startTime,NULL);
??Sleep(SLEEP_TIME_MILL);
??gettimeofday(stopTime,NULL);
??longelapsed=(stopTime.tv_sec-startTi
文档评论(0)