【发布时间】:2011-02-24 18:45:51
【问题描述】:
我想跟踪我的代码的性能,所以我使用System.DateTime.Now 存储了开始和结束时间。我将两者之间的差异作为我的代码执行时间。
我注意到差异似乎并不准确。所以我尝试使用Stopwatch 对象。事实证明,这要准确得多。
谁能告诉我为什么Stopwatch 比使用System.DateTime.Now 计算开始时间和结束时间之间的差更准确?
顺便说一句,我说的不是百分之一。我得到了大约 15-20% 的差异。
【问题讨论】:
-
根据您对 Kelsey 的回答的评论,我有兴趣查看记录开始和停止时间的代码。 11 秒(巨大)的差异与两个类的准确度差异无关,因此必须进行其他操作。
-
另外,如果您只对两个日期之间的
TimeSpan感兴趣,通常最好使用DateTime.UtcNow而不是DateTime.Now,因为您通常不希望日光时移和影响结果的其他本地时间变化。 -
@DanielPryden,参见The Case Against DateTime.Now,这正是这一点。 +1
标签: c# performance datetime timing stopwatch