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;
我正在开发一个 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;