C# - 测量经过时间的最有效方法

C# - most efficient way of measuring ellapsed time

我正在开发一个 C# 控制台应用程序,其中我需要知道自程序启动以来经过的时间。
我有一个存储开始时间的变量 (DateTime now = DateTime.Now;)

测量经过时间的最有效方法是什么?
经过的时间可能是几个小时 - 这就是我关注效率和内存使用的原因。

提前致谢!

别担心。测量时间跨度不使用任何资源,因为它只是比较现在和当时。

DateTime start = DateTime.Now;

// do some heavy calculation

TimeSpan delta = DateTime.Now - start; // get the time that elapsed

这不使用任何资源,除了开始的变量,它只是一个 64 位计数器。

请注意,对于较短的时间跨度,您最好使用 Stopwatch,因为这不受开始和现在之间可能发生的时间调整的影响。

程序启动时间减去当前时间。这将 return 一个 TimeSpan 公开 properties like TotalHours ,你可以用它来计算经过的时间。

// on start
var startTime = DateTime.UtcNow;

// later on, to see hours elapsed since then
var elapsed = (DateTime.UtcNow - startTime).TotalHours;