小编典典

秒表与将System.DateTime.Now用于计时事件进行对比[重复]

c#

我想跟踪代码的性能,因此我使用来存储开始时间和结束时间System.DateTime.Now。我将两者之间的差异作为执行代码的时间。

我注意到,尽管差异似乎并不准确。所以我尝试使用一个Stopwatch对象。事实证明,这要准确得多。

谁能告诉我为什么Stopwatch比使用来计算开始和结束时间之间的差会更准确System.DateTime.Now

顺便说一句,我说的不是十分之一。我大约有15-20%的差异。


阅读 250

收藏
2020-05-19

共1个答案

小编典典

根据MSDN

秒表通过计算基础计时器机制中的计时器滴答来测量经过的时间。如果安装的硬件和操作系统支持高分辨率性能计数器,则Stopwatch类将使用该计数器来测量经过的时间。否则,秒表类将使用系统计时器来测量经过的时间。使用Frequency和IsHighResolution字段来确定秒表计时实现的精度和分辨率。

它使用的分辨率/精度高于DateTime.Now

DateTime足够精确到秒,但是我推荐的以外的任何东西StopWatch

2020-05-19