C# 开始监视代码运行时间 计时器 Stopwatch

Stopwatch 在基础计时器机制中对计时器的计时周期进行计数,从而测量运行时间。 如果安装的硬件和操作系统支持高分辨率性能计数器,则 Stopwatch 类将使用该计数器来测量运行时间; 否则,Stopwatch 类将使用系统计数器来测量运行时间。 使用 Frequency 和 IsHighResolution 字段可以确定实现 Stopwatch 计时的精度和分辨率。

TimeSpan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位(如月和年)的天数不同,因此为保持一致性,时间间隔以天为单位来度量。

TimeSpan 对象的值是等于所表示时间间隔的刻度数。一个刻度等于 100 纳秒,TimeSpan 对象的值的范围在 MinValue 和 MaxValue 之间。

TimeSpan 值可以表示为 [-]d.hh:mm:ss.ff,其中减号是可选的,它指示负时间间隔,d 分量表示天,hh 表示小时(24 小时制),mm 表示分钟,ss 表示秒,而 ff 为秒的小数部分。即,时间间隔包括整的正负天数、天数和剩余的不足一天的时长,或者只包含不足一天的时长

Stopwatch的命名空间是using System.Diagnostics;

复制代码
System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
stopwatch.Reset();//重置
//stopwatch.Restart();//重置并开始
stopwatch.Start(); //  开始监视代码运行时间

//--执行代码段

stopwatch.Stop(); //  停止监视
TimeSpan timespan = stopwatch.Elapsed; //  获取当前实例测量得出的总时间
double milliseconds = timespan.TotalMilliseconds;  //  总毫秒数
 
复制代码

附:

复制代码
Stopwatch sw = new Stopwatch();
//开始计时
sw.Start();
//重新设置为零
sw.Reset();
//重新设置并开始计时
sw.Restart();
//结束计时
sw.Stop();
//获取运行时间间隔
TimeSpan ts = sw.Elapsed;
//获取运行时间[毫秒]
long times = sw.ElapsedMilliseconds;
//获取运行的总时间
long times2 = sw.ElapsedTicks;
//判断计时是否正在进行[true为计时]
bool isrun = sw.IsRunning;
//获取计时频率
long frequency = Stopwatch.Frequency;
复制代码

 

 

复制代码
namespace System.Diagnostics
{
    //
    // 摘要:
    //     提供一组方法和属性,可用于准确地测量运行时间。
    public class Stopwatch
    {
        //
        // 摘要:
        //     获取以每秒计时周期数表示的计时器频率。此字段为只读。
        public static readonly long Frequency;
        //
        // 摘要:
        //     指示计时器是否基于高分辨率性能计数器。此字段为只读。
        public static readonly bool IsHighResolution;
 
        //
        // 摘要:
        //     初始化 System.Diagnostics.Stopwatch 类的新实例。
        public Stopwatch();
 
        //
        // 摘要:
        //     获取当前实例测量得出的总运行时间。
        //
        // 返回结果:
        //     一个只读的 System.TimeSpan,用于表示当前实例测量得出的总运行时间。
        public TimeSpan Elapsed { get; }
        //
        // 摘要:
        //     获取当前实例测量得出的总运行时间(以毫秒为单位)。
        //
        // 返回结果:
        //     一个只读长整型,表示当前实例测量得出的总毫秒数。
        public long ElapsedMilliseconds { get; }
        //
        // 摘要:
        //     获取当前实例测量得出的总运行时间(用计时器计时周期表示)。
        //
        // 返回结果:
        //     一个只读长整型,表示当前实例测量得出的计时器计时周期的总数。
        public long ElapsedTicks { get; }
        //
        // 摘要:
        //     获取一个指示 System.Diagnostics.Stopwatch 计时器是否在运行的值。
        //
        // 返回结果:
        //     如果 System.Diagnostics.Stopwatch 实例当前正在运行,并且在对某个时间间隔的运行时间进行测量,则该值为 true;否则为 false。
        public bool IsRunning { get; }
 
        //
        // 摘要:
        //     获取计时器机制中的当前最小时间单位数。
        //
        // 返回结果:
        //     一个长整型,表示基础计时器机制中的计时周期计数器值。
        public static long GetTimestamp();
        //
        // 摘要:
        //     对新的 System.Diagnostics.Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。
        //
        // 返回结果:
        //     刚刚开始测量运行时间的 System.Diagnostics.Stopwatch。
        public static Stopwatch StartNew();
        //
        // 摘要:
        //     停止时间间隔测量,并将运行时间重置为零。
        public void Reset();
        //
        // 摘要:
        //     停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。
        public void Restart();
        //
        // 摘要:
        //     开始或继续测量某个时间间隔的运行时间。
        public void Start();
        //
        // 摘要:
        //     停止测量某个时间间隔的运行时间。
        public void Stop();
    }
复制代码

 

参考链接: https://blog.csdn.net/w200221626/article/details/51980873?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

posted @   余路还要走多久  阅读(925)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示