2
A
回答
4
Stopwatch
類是你可以得到的最好的精度,它使用高頻定時器。
秒錶的頻率取決於CPU的頻率,但其頻率通常爲每秒百萬次。
如果CPU沒有提供高頻定時器,那麼該類將回退到每秒100-50次的系統定時器。
2
3
使用Stopwatch類,應該做的伎倆。
1
6
System.Diagnostics.Stopwatch對於您的時間粒度這個級別是正確的級別,但請確保您使用秒錶對象的Elapsed.Ticks
屬性而不是其ElapsedTicks
屬性,因爲它們是兩個不同的東西。
ElapsedTicks
(無點)是指秒錶的蜱的數目,並因此需要在音樂會中使用與Stopwatch.Frequency
(這是不一樣的所有機器上)來計算所經過的時間。Elapsed.Ticks
(與點)給出了Timespan
刻度的數量,並且不依賴於秒錶頻率。
這可能是在.NET中的微妙潛在錯誤之一。
此外,提防秒錶是高度細化,但它不一定是所有的準確(取決於您的用語的定義)。 Stopwatch返回的時間會偏離系統時間。
在我的筆記本電腦上,秒錶幾乎跑了5秒24小時,這種情況在其他一些機器上會更糟。
如果你計時較短的時間,當然,這種影響應該不重要。
+0
請注意,由於CPU上的節電措施,秒錶可能在筆記本電腦上不準確,但現代英特爾i7或更新版本不會遇到此問題。換句話說,如果你在工作電腦上進行計時,事情會更加準確。 – Contango 2012-02-14 10:22:57
0
我發現了一個稍微更精確的方法,然後StopWatch,PerformanceCounters和我遇到的每個其他實現,不需要平臺調用或其他。
讓我知道你是否發現,否則!
相關問題
- 1. 精確時間戳
- 2. QThread中的精確時間間隔
- 3. 精確的時間度量在Java中
- 4. 精確時間測量
- 5. C++:更精確的時間間隔
- 6. 在PHP中獲取精確時間
- 7. .NET中DateTime的CompareTo()的精確性
- 8. C++中的便攜式精確雙精度時間戳?
- 9. 時間軸上的精確繪圖
- 10. 獲得更精確的編譯時間
- 11. .Net Reg Ex精確匹配
- 12. 在LINQ中確定日期時間值與精確精度的相等性
- 13. .NET中最精確的計時器是什麼?
- 14. 獲取精確的時間戳和時間差
- 15. 從simcard讀取精確時間
- 16. Play Framework - 精確時間安排任務
- 17. 在精確時間向後循環
- 18. 爲什麼Thread.Sleep長時間不精確?
- 19. 跨平臺微秒精確時間戳
- 20. .NET 2.0更精確的PNG庫?
- 21. 在node.js中精確計時
- 22. 確定是否時間戳是一種精確小時
- 23. 在精確的時間運行子程序,精度爲0.1s,精度爲perl
- 24. 獲取小數位的精確精度從雙在.net 3.5
- 25. 精確倒計時?
- 26. 獲得一個精確的時間間隔
- 27. 以精確的時間間隔執行代碼
- 28. 精確的過程事件時間表圖(如在Excel中)
- 29. Flex在視頻中運行精確時間的方法
- 30. ios中的「精確」週期採樣時間
這個問題似乎是(更糟糕的)重複http://stackoverflow.com/questions/307582/how-frequent-is-datetime-now-updated-or-is-there-a-more-precise- api-to-get-the,但我更喜歡答案。 – Abacus 2013-12-19 21:04:52