PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] Sleep()delay时间问题
楼主:
b92299
(vincent)
2015-08-04 17:24:59
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2005
作业系统:windows 7 64bit
CPU:I7-3770 3.4GHz
问题(Question):
目前想要精准的算出1ms
不过不管是使用QueryPerformanceCount / QueryPerformanceFrequency
或者timeGetTime
最小就算到10ms
而下一个单位数则是20ms并无法测出非10ms倍数的时间像是15ms
程式码如下
LARGE_INTEGER t1, t2, ts;
QueryPerformanceFrequency(&ts);
QueryPerformanceCounter(&t1);
Sleep(1);
QueryPerformanceCounter(&t2);
printf("Lasting Time: %lf\n",(t2.QuadPart-t1.QuadPart)/(double)(ts.QuadPart));
在有些电脑使用这个方法可以算到1ms
不过我的电脑在怎么试都无法
请问是sleep()这个function的问题吗?
还是平台的问题?
有什么方法可以精准算到1ms?
谢谢
作者:
azureblaze
(AzureBlaze)
2015-08-04 17:26:00
Sleep()的精度只有16ms左右简单的方式是loop QueryPerformanceCounter()
楼主:
b92299
(vincent)
2015-08-04 17:51:00
请问loop昰什么意思呢?
作者:
azureblaze
(AzureBlaze)
2015-08-04 18:17:00
既然你知道怎么计算时间,就查时间查到时间到为止
作者: LiloHuang (十年一刻)
2015-08-04 21:11:00
请爬文
#1Ku5nCFJ (C_and_CPP)
另外有 busy loop 版的 usleep
https://goo.gl/cGW5pu
作者: jaeger8
2015-08-08 18:07:00
select在windows下的范例:
http://codepad.org/zacDWzwS
不过windows真的很不准,如果要精准可能要移到别的os修正一下init:
http://codepad.org/8bdf7afM
作者:
Killercat
(杀人猫™)
2015-08-10 12:46:00
boost/C++11的chromo有提供比较精准的计数
继续阅读
[分享] C++实作无序容器的方法
GameHeven
[问题] 宣告一个副程式?
kai5566
[问题] 自己练习运用基础的指标小问题
xjpjeass
[问题] 请教各位高手 用stack实做DFS
eddie1316
[问题] bin file 写入 byte
gn00618777
[问题] UVA272-Time limit exceeded 求解
keke0421
[问题] EEPROM烧录问题请教
kinggbic
[问题] 影像撷取功能
LennyW
[问题] 手机上做影像辨识怎么开始
redTAKAMORI
[问题] MFC dll专案如何进行测试呢!?
BIAO
Links
booklink
Contact Us: admin [ a t ] ucptt.com