【问题标题】:C# - most efficient way of measuring ellapsed timeC# - 测量经过时间的最有效方法
【发布时间】:2021-05-25 17:42:54
【问题描述】:

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

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

提前致谢!

【问题讨论】:

标签: c# performance time memory-efficient


【解决方案1】:

从程序开始的时间减去当前时间。这将返回一个TimeSpan,它公开properties,如TotalHours,您可以使用它来计算经过的时间。

// on start
var startTime = DateTime.UtcNow;

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

【讨论】:

  • 添加解释通常很有帮助
【解决方案2】:

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

DateTime start = DateTime.Now;

// do some heavy calculation

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

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

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

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多