专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

在.NET(C#) 中使用Stopwatch实现执行耗时及性能监测实例

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:18:28       共计:3629 浏览

1、Stopwatch简介

1)命名空间


using System.Diagnostics;

2)字段


字段


字段说明


Frequency


获取以每秒刻度数表示的计时器频率。


此字段为只读。


IsHighResolution


指示计时器是否基于


高分辨率性能计数器


。 此字段为只读。


3)属性


属性


属性说明


Elapsed


获取当前实例测量得出的总运行时间。


ElapsedMilliseconds


获取当前实例测量得出的总运行时间


(以毫秒为单位)。


ElapsedTicks


获取当前实例测量得出的总运行时间


(用计时器刻度表示)。


IsRunning


获取一个值,


该值表示 Stopwatch 计时器是否正在运行。


4)方法


方法


方法说明


Equals(Object)


确定指定对象是否等于当前对象。


GetHashCode()


作为默认哈希函数。


GetTimestamp()


获取计时器机制中的当前刻度数。


GetType()


获取当前实例的 Type。


MemberwiseClone()


创建当前 Object 的浅表副本。


Reset()


停止时间间隔测量,并将运行时间重置为零。


Restart()


停止时间间隔测量,将运行时间重置为零,


然后开始测量运行时间。


Start()


开始或继续测量某个时间间隔的运行时间。


StartNew()


初始化新的 Stopwatch 实例,


将运行时间属性设置为零,然后开始测量运行时间。


Stop()


停止测量某个时间间隔的运行时间。


ToString()


返回表示当前对象的字符串。


2、Stopwatch的使用

Stopwatch类相关字段、属性、方法的使用示例,可以参考代码如下,


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Diagnostics;


namespace ConsoleApplication

{

   class Program

   {

       static void Main(string[] args)

       {

           //创建Stopwatch实例

           Stopwatch sw = new Stopwatch();

           //开始计时

           sw.Start();

           for (int i = 0; i < 100; i++)

           {

               Console.WriteLine(i);

           }

           //停止计时

           sw.Stop();

           Console.WriteLine("用时:" + sw.ElapsedMilliseconds + "");

           //重置 停止时间间隔测量,并将运行时间重置为0

           sw.Reset();

           Console.WriteLine("用时:" + sw.ElapsedMilliseconds + "");

           //重启 停止时间间隔测量,并将运行时间重置为0,然后重新开始           测量运行时间

           sw.Restart();

           for (int i = 0; i < 100; i++)

           {

               Console.WriteLine(i);

           }

           sw.Stop();

           //获取当前实例测量得出的总运行时间(以毫秒为单位)

           Console.WriteLine("用时:" + sw.ElapsedMilliseconds + "");

           //获取当前实例测量得出的总运行时间

           Console.WriteLine("用时:" + sw.Elapsed);

           //获取当前实例测量得出的总运行时间(用计时器刻度表示)。

           Console.WriteLine(sw.ElapsedTicks);

           Console.Read();

           //开始计时

           sw.Start();

           System.Threading.Thread.Sleep(1000);  //耗时操作 测试代码,休眠1000毫秒

           //结束计时

           sw.Stop();

           Console.WriteLine(sw.ElapsedMilliseconds);     //输出:消耗的毫秒

           Console.WriteLine(sw.Elapsed.ToString());      //输出:时:分:秒


           //重置秒表

           sw.Reset();

           Console.WriteLine("Reset End");

           //再次开始计时,或者直接用**Restart**函数直接重置并开始

           sw.Start();

           System.Threading.Thread.Sleep(1200);

           //第二次计时结束

           sw.Stop();

           Console.WriteLine(sw.ElapsedMilliseconds);

           if (Stopwatch.IsHighResolution)

           {

               Console.WriteLine("使用系统的高分辨率性能计数器的计时的操作.");

           }

           else

           {

               Console.WriteLine("使用DateTime类的计时操作.");

           }


           long frequency = Stopwatch.Frequency;

           Console.WriteLine("计时器频率,以滴答/秒为单位 = {0}", frequency);


           long nanosecPerTick = (1000L * 1000L * 1000L) / frequency;

           Console.WriteLine("计时器在{0}纳秒以下范围内准确", nanosecPerTick.ToString());


       }

   }

}

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:在.NET(C#)中使用Aspose.Pdf将HTML转成PDF的方法 | ·下一条:在C#中用户控件(.ascx)与网页间(.aspx)是如何传值的?

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有