Java Stopwatch类,性能与时间计时器案例详解

 更新时间:2021年9月9日 16:00  点击:1326

  在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopwatch这个东西,太可悲了。

属性:

Elapsed       获取当前实例测量得出的总运行时间。
ElapsedMilliseconds  获取当前实例测量得出的总运行时间(以毫秒为单位)。
ElapsedTicks      获取当前实例测量得出的总运行时间(用计时器计时周期表示)。
IsRunning        获取一个指示 Stopwatch 计时器是否在运行的值。

方法

GetTimestamp   获取计时器机制中的当前最小时间单位数。
Reset        停止时间间隔测量,并将运行时间重置为零。
Restart       停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。
Start         开始或继续测量某个时间间隔的运行时间。
StartNew       对新的 Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。
Stop         停止测量某个时间间隔的运行时间。

示例:

static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();     //开始计时
            WebClient wc = new WebClient();
            string str = wc.DownloadString("http://www.jmeii.com/");
            Console.WriteLine(sw.IsRunning);    //输出 true   计时器是否在运行。
            sw.Stop();      //计时结束
            Console.WriteLine(sw.Elapsed);      //输出 00:00:00.3452873
            Console.WriteLine(sw.ElapsedMilliseconds);  //输出 223
            Console.WriteLine(sw.ElapsedTicks); //输出501838
            Console.WriteLine(sw.IsRunning);    //输出 flase

            Console.WriteLine(Stopwatch.GetTimestamp());   //输出56151531319  获取计时器机制中的当前最小时间单位数。

            sw.Reset(); //重置
            Console.WriteLine(sw.Elapsed.ToString());   //输出 00:00:00   //返回的是TimeSpan类型,可以任意处理

            sw.Restart();   //重新开始
            FileStream fs = new FileStream(@"D:\admin_b.txt", FileMode.Open, FileAccess.Read);
            //string str = 
            byte[] byteArr = new byte[fs.Length];
            fs.Read(byteArr, 0, (int)fs.Length);
            Stopwatch sw2 = Stopwatch.StartNew();       //创建一个新的计时器
            string str2 = Encoding.UTF8.GetString(byteArr);
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);  //输出 10
            Console.WriteLine(sw2.ElapsedMilliseconds); //输出 9
            sw2.Stop();
            
            Console.ReadKey();
        }

  对比FileStream与File类:

static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            FileStream fs = new FileStream(@"D:\admin_b.txt", FileMode.Open, FileAccess.Read);
            //string str = 
            byte[] byteArr = new byte[fs.Length];
            fs.Read(byteArr, 0, (int)fs.Length);
            string str = Encoding.UTF8.GetString(byteArr);
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);  //输出 12

            Stopwatch sw2 = new Stopwatch();
            sw2.Start();
            File.ReadAllText(@"E:\admin_b.txt");
            sw2.Stop();
            Console.WriteLine(sw2.ElapsedMilliseconds); //输出 11

            Console.ReadKey();
        }

  Linq示例:

public class Program
    {
        static void Main(string[] args)
        {
            //获取到一个随机数集合
            List<int> ListInt = new List<int>();
            Random r = new Random();
            for (int i = 0; i < 1000000; i++)       //生成一个1百万数字的集合
            {
                ListInt.Add(r.Next(1000));
            }

            Stopwatch sw = new Stopwatch();
            sw.Start();
            int count = 0;
            foreach (var i in ListInt)
            {
                count = count + i;          
            }
            Console.WriteLine("遍历计算结果:" + count);       
            sw.Stop();
            Console.WriteLine("遍历用时:" + sw.ElapsedMilliseconds);    //输出 13

            Stopwatch sw2 = new Stopwatch();
            sw2.Start();
            int count2 = 0;
            count2 = ListInt.Sum();
            Console.WriteLine("Linq的计算结果:" + count2);
            Console.WriteLine("Linq的使用时间:" + sw2.ElapsedMilliseconds);  //输出 12
            sw2.Stop();

            Console.ReadKey();
        }
    }

  运行了3,5次,Linq的性能的确厉害。有几次相等,有几次少1毫秒。看来Linq to OBJECT还真是靠谱。效率,优雅度都相当好,不愧是高手做的控件。以后如果对什么技术又疑问,完全可以用该类来测试,记得,记得,记得得。

到此这篇关于Java Stopwatch类,性能与时间计时器案例详解的文章就介绍到这了,更多相关Java Stopwatch类,性能与时间计时器内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • 带你了解PHP7 性能翻倍的关键

    20岁老牌网页程序语言PHP,最快将在10月底释出PHP 7新版,这是十年来的首次大改版,最大特色是在性能上的大突破,能比前一版PHP 5快上一倍,PHP之父Rasmus Lerdorf表示,甚至能比HHVM虚拟机下的PHP程序性能更快。HHVM 是脸书为自...2015-11-24
  • 利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)

    这篇文章主要介绍了利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化),本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-24
  • JavaScript提高网站性能优化的建议(二)

    这篇文章主要介绍了JavaScript提高网站性能优化的建议(二)的相关资料,需要的朋友可以参考下...2016-07-29
  • 提升jQuery的性能需要做好七件事

    这篇文章主要介绍了提升jQuery的性能需要做好的七件事,希望真的帮助大家提升jQuery性能,需要的朋友可以参考下...2016-01-14
  • php测试性能代码

    php测试性能代码 function microtime_float () { list ($usec, $sec) = explode(" ", microtime()); return ((float) $usec + (float) $sec); } functio...2016-11-25
  • css中空路径对页面性能影响的解决方案

    文章介绍了css中空路径对页面性能影响的解决方案,这个可能很多美工朋友不会去注意这一点,下面我们来看看吧。 在写 CSS 的时候,用 background:url(#) 还是会对页面进...2017-07-06
  • 如何用Node.js编写内存效率高的应用程序

    这篇文章主要介绍了如何用Node.js编写内存效率高的应用程序,对Node.js感兴趣的同学,可以参考下...2021-05-01
  • Redis 执行性能测试

    这篇文章主要介绍了Redis 执行性能测试的方法,文中讲解非常细致,帮助大家更好的理解和学习redis,感兴趣的朋友可以了解下...2021-01-15
  • 浅析Mysql Join语法以及性能优化

    一.Join语法概述join 用于多表中字段之间的联系,语法如下:复制代码 代码如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或...2014-05-31
  • C#导出数据到excel如何提升性能

    这篇文章主要介绍了C#导出数据到excel如何提升性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-13
  • C#中Dynamic和Dictionary性能比较

    开发中需要传递变参,考虑使用 dynamic 还是 Dictionary,dynamic 的编码体验显著优于 Dictionary,如果性能差距不大的话,我会选择使用dynamic。下面通过本文给大家详细介绍下C#中Dynamic和Dictionary性能比较,一起看看吧...2020-06-25
  • Nginx + php 搭建 超性能 WEB 服务器

    Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAPPOP3SMTP 代理服务器。...2016-01-27
  • Golang标准库和外部库的性能比较

    这篇文章主要介绍Golang标准库和外部库的性能比较,下面文章讲围绕这两点展开内容,感兴趣的小伙伴可以参考一下...2021-10-19
  • Java并发编程如何降低锁粒度并实现性能优化

    这篇文章主要介绍了Java并发编程如何降低锁粒度并实现性能优化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-29
  • 不可忽视的 .NET 应用5大性能问题

    ASP.NET 或是 Windows Forms 容器中,使用 ADO 库与运行在 CLR 交互,而 CLR 运行在操作系统中而该硬件又与其他包含不同技术堆栈的硬件通过网络相连。在你的应用与外部环境之间,。我们还有 API 管理服务以及多级缓存基础构造数量庞杂,都可能影响应用程序的性能!...2021-09-22
  • JavaScript知识点总结之如何提高性能

    JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文非常详细的介绍了一下JavaScript性能优化方面的知识点,绝对是干货,需要的朋友快来一起学习吧...2016-01-18
  • 站长注意:网站性能最佳体验

    1、尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减...2016-10-10
  • PHP7达到最高性能的修改配置方案

    PHP7性能提示了但如果想提得更高我们是需要进行一些参数配置修改的,下面我们一起来看一篇关于PHP7达到最高性能的修改配置方案,具体的如下所示。 PHP7已经发布了,...2016-11-25
  • MySQL性能优化的最佳20+条经验

    这篇文章主要为大家详细介绍了MySQL性能优化的最佳20+条经验,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-09-18
  • 2016手机处理器性能排行榜 手机CPU天梯图2016年4月最新版

    很多大神级的发烧友们在买手机的时候会特别关注手机处理器的性能,那么,2016年手机处理器性能哪个好呢?对此,本文小编就为大家带来了2016年4月最新版手机CPU天梯图,从中我们可以看到最新的手机处理器性能排行榜...2016-07-04