【发布时间】:2011-08-08 17:36:23
【问题描述】:
可能的重复:
Is DateTime.Now the best way to measure a function's performance?
Stopwatch vs. using System.DateTime.Now for timing events
我的代码需要尽可能快地运行。为了能够记录执行时间,我使用了Stopwatch 类。我怀疑,秒表可能会以不好的方式影响性能。也许使用 DateTime 差异可能更有效?
你认为哪个性能更好?
Stopwatch sw = new Stopwatch();
sw.Start();
int a = 5;
// Critical lines of code
long elapsedMs = se.Elapsed.TotalMilliseconds;
或
DateTime startDate = DateTime.Now;
int a = 5;
// Critical lines of code
long elapsedMs = DateTime.Now.Subtract(startDate).TotalMilleseconds;
【问题讨论】:
-
我高度怀疑使用任何一种都会产生相同的结果。无关紧要的差异。
-
DateTime可能会非常不准确,如果您尝试以您想要的精度来衡量性能。所以对你来说;如果你的结果是重要的,那么你可以将DateTime排除在外。 -
我不明白这是如何完全重复的。我怀疑它的声誉收集驱动器会将问题标记为重复并关闭它们。
-
这不是其他问题的重复。这个问题是关于调用的开销。其他问题只是关于返回信息的准确性。