Stopwatch类的使用

Stopwatch类的使用Stopwatch类提供了一种方便的机制来测量运行时间。Stopwatch使用了操作系统和硬件提供的最高分辨率机制,通常少于1毫秒(相比之下DateTime.Now和Environment.TickCount的分辨率在15毫秒左右)。要使用Stopwatch,可以调用StartNew方法。这将会实例化一个Stopwatch对象并开始计时(此外,也可以先实例化,再手动调用Start方法)。Elap…

大家好,又见面了,我是你们的朋友全栈君。

Stopwatch类提供了一种方便的机制来测量运行时间。Stopwatch使用了操作系统和硬件提供的最高分辨率机制,通常少于1毫秒(相比之下DateTime.Now和Environment.TickCount的分辨率在15毫秒左右)。
要使用Stopwatch,可以调用StartNew方法。这将会实例化一个Stopwatch对象并开始计时(此外,也可以先实例化,再手动调用Start方法)。Elapsed属性将以TimeSpan的形式返回消耗的时间间隔:

using System;
using System.Diagnostics;

namespace StopwatchDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch s = Stopwatch.StartNew();
            //Stopwatch sw = new Stopwatch();
            //sw.Start();
            for (int i = 0; i < 10000; i++)
            {
                Console.Write("-");
            }
            Console.WriteLine("\n");
            Console.WriteLine($"耗时:{s.Elapsed.TotalMilliseconds}毫秒"); // 代码运行所消耗的毫秒数
            Console.WriteLine($"耗时:{s.ElapsedTicks}个滴答数"); // 获取当前实例测量的总经过时间,以计时器为单位。一个只读的长整数,表示当前实例测量的计时器滴答总数。
            s.Stop(); // 运行Stopwatch并不会引起任何的后台活动,因此调用Stop方法是可选的。
        }
    }
}

Stopwatch还公开了ElapsedTicks属性。该属性将以long的形式返回消耗的计数值数目。若要将计数值转换为秒,则需要将其除以Stopwatch.Frequency属性的值。除此之外,Stopwatch还有ElapsedMilliseconds属性,而这个属性往往是最易用的。
调用Stop方法将终止计时,Elapsed和ElapsedTicks属性值将不再改变。运行Stopwatch并不会引起任何的后台活动,因此调用Stop方法是可选的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152445.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 阿里面试题:ConcurrentHashMap为什么是线程安全的?

    阿里面试题:ConcurrentHashMap为什么是线程安全的?阿里面试题:ConcurrentHashMap为什么是线程安全的?ConcurrentHashMap,其实是线程安全的HashMap,所以阅读ConcurrentHashMap,建议先阅读一下两篇介绍HashMap的文章你真的懂大厂面试题:HashMap吗?jdk1.7HashMap中的致命错误:循环链表jdk1.7ConcurrentHashMapjdk1.7Concu…

    2022年6月24日
    29
  • 程序猿的量化交易之路(29)–Cointrader之Tick实体(16)[通俗易懂]

    程序猿的量化交易之路(29)–Cointrader之Tick实体(16)

    2022年1月22日
    120
  • 硬盘的主分区和逻辑分区有什么区别_移动硬盘要不要分区

    硬盘的主分区和逻辑分区有什么区别_移动硬盘要不要分区硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。一个硬盘可以有一个主分区,一个扩展分区,也可以只有一个主分区没有扩展分区。逻辑分区可以若干。主分区是硬盘的启动分区,他是独立的,也是硬盘的第一个分区,正常分的话就是C驱。分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。但扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分…

    2022年8月11日
    36
  • 防止三极管饱和_稳压二极管稳压时处于什么偏置状态

    防止三极管饱和_稳压二极管稳压时处于什么偏置状态下图为一个分立器件搭建的BUCK电路,但是不明白图中的两个肖特基二极管(D1.D2)的作用是什么防止Q1饱和,但沒深度。

    2025年9月3日
    7
  • sai2 常用快捷键 2020

    sai2 常用快捷键 2020Ctrl+A全选Ctrl+B从剪贴板创建画布Ctrl+D取消选择Ctrl+E合并图层Ctrl+H显示选区边缘Ctrl+Y还原Ctrl+T自由变换Ctrl+R显示尺子按Shift可调节比例Ctrl+U色相Ctrl+X剪贴Ctrl+W关闭视图Shift+PageUp逆时针旋转Shift+PageDown顺时针旋转[小一号画笔]大一号画笔Delete清除图层%0~9%更改画笔浓度(小键盘)A选区笔B喷枪C水彩笔E橡皮擦H水平翻

    2022年6月18日
    197
  • spring boot redis 缓存_redis本地缓存

    spring boot redis 缓存_redis本地缓存SpringBoot集成Redis缓存查询操作是应用中最常见的操作,如果每次查询都从MySQL中查询则会影响效率,通常需要引入缓存来实现查询性能的优化。缓存可以选择本地缓存,远程缓存或本地缓存结合远程缓存。本地缓存可以使用Guava或Caffeine提供的解决方案,而远程缓存则可以选择Redis这样的内存数据库。本文记录一下SpringBoot集成Redis做缓存的相关配置。1引入依赖引入相应Starter。<dependency><gr

    2025年12月10日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号