当前位置:  开发笔记 > 编程语言 > 正文

System.Diagnostics.Stopwatch的准确度如何?

如何解决《System.Diagnostics.Stopwatch的准确度如何?》经验,为你挑选了2个好方法。

System.Diagnostics.Stopwatch的准确度如何?我正在尝试为不同的代码路径做一些指标,我需要它准确.我应该使用秒表还是有其他更准确的解决方案.

我被告知有时秒表会提供不正确的信息.



1> Thomas Maier..:

我刚刚写了一篇文章,解释了如何通过测试设置来获得秒表的高精度(优于0.1ms).我认为应该解释一切.

http://www.codeproject.com/KB/testing/stopwatch-measure-precise.aspx


秒是小写的.ms不是mS.http://en.wikipedia.org/wiki/Second#SI_multiples(在您的文章中相同)

2> user3308241..:

System.Diagnostics.Stopwatch类可以准确地测量经过的时间,但是ElapsedTicks方法的工作方式使得一些人得出的结论是,当他们的代码中只有一个逻辑错误时,它不准确.

一些开发人员认为秒表不准确的原因是秒表的ElapsedTicks不等于DateTime中的Ticks.当应用程序代码使用ElapsedTicks创建新的DateTime时,会出现问题.

var watch = new Stopwatch();
watch.Start();
... (perform a set of operations)
watch.Stop();
var wrongDate = new DateTime(watch.ElapsedTicks); // This is the WRONG value.

如有必要,可以通过以下方式将秒表持续时间转换为DateTime:

// This converts stopwatch ticks into DateTime ticks.
// First convert to TimeSpan, then convert to DateTime
var rightDate = new DateTime(watch.Elapsed.Ticks); 

这篇文章更详细地解释了这个问题:http: //geekswithblogs.net/BlackRabbitCoder/archive/2012/01/12/c.net-little-pitfalls-stopwatch-ticks-are-not-timespan-ticks. ASPX

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有