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