欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Stopwatch類,性能與時間計時器案例詳解

 更新時間:2021年09月09日 11:28:47   作者:ajwqb06628  
這篇文章主要介紹了Java Stopwatch類,性能與時間計時器案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

  在研究性能的時候,完全可以使用Stopwatch計時器計算一項技術的效率。但是有時想知道某想技術的性能的時候,又常常想不起可以運用Stopwatch這個東西,太可悲了。

屬性:

Elapsed       獲取當前實例測量得出的總運行時間。
ElapsedMilliseconds  獲取當前實例測量得出的總運行時間(以毫秒為單位)。
ElapsedTicks      獲取當前實例測量得出的總運行時間(用計時器計時周期表示)。
IsRunning        獲取一個指示 Stopwatch 計時器是否在運行的值。

方法

GetTimestamp   獲取計時器機制中的當前最小時間單位數(shù)。
Reset        停止時間間隔測量,并將運行時間重置為零。
Restart       停止時間間隔測量,將運行時間重置為零,然后開始測量運行時間。
Start         開始或繼續(xù)測量某個時間間隔的運行時間。
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();      //計時結(jié)束
            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  獲取計時器機制中的當前最小時間單位數(shù)。

            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();       //創(chuàng)建一個新的計時器
            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)
        {
            //獲取到一個隨機數(shù)集合
            List<int> ListInt = new List<int>();
            Random r = new Random();
            for (int i = 0; i < 1000000; i++)       //生成一個1百萬數(shù)字的集合
            {
                ListInt.Add(r.Next(1000));
            }

            Stopwatch sw = new Stopwatch();
            sw.Start();
            int count = 0;
            foreach (var i in ListInt)
            {
                count = count + i;          
            }
            Console.WriteLine("遍歷計算結(jié)果:" + count);       
            sw.Stop();
            Console.WriteLine("遍歷用時:" + sw.ElapsedMilliseconds);    //輸出 13

            Stopwatch sw2 = new Stopwatch();
            sw2.Start();
            int count2 = 0;
            count2 = ListInt.Sum();
            Console.WriteLine("Linq的計算結(jié)果:" + count2);
            Console.WriteLine("Linq的使用時間:" + sw2.ElapsedMilliseconds);  //輸出 12
            sw2.Stop();

            Console.ReadKey();
        }
    }

  運行了3,5次,Linq的性能的確厲害。有幾次相等,有幾次少1毫秒。看來Linq to OBJECT還真是靠譜。效率,優(yōu)雅度都相當好,不愧是高手做的控件。以后如果對什么技術又疑問,完全可以用該類來測試,記得,記得,記得得。

到此這篇關于Java Stopwatch類,性能與時間計時器案例詳解的文章就介紹到這了,更多相關Java Stopwatch類,性能與時間計時器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springboot如何通過@Value,@ConfigurationProperties獲取配置

    springboot如何通過@Value,@ConfigurationProperties獲取配置

    這篇文章主要介紹了springboot如何通過@Value,@ConfigurationProperties獲取配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java多線程中Callable和Future的解讀

    Java多線程中Callable和Future的解讀

    這篇文章主要介紹了Java多線程中Callable和Future的解讀,Callable接口類似于Runnable,從名字就可以看出來了,但是Runnable不會返回結(jié)果,并且無法拋出返回結(jié)果的異常,而Callable功能更強大一些,被線程執(zhí)行后,可以返回值,這個返回值可以被Future拿到,需要的朋友可以參考下
    2023-09-09
  • 淺談在Java中JSON的多種使用方式

    淺談在Java中JSON的多種使用方式

    這篇文章主要介紹了淺談在Java中JSON的多種使用方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 設置JavaScript自動提示-Eclipse/MyEclipse

    設置JavaScript自動提示-Eclipse/MyEclipse

    自動提示需要2個組件,分別是:ext-4.0.2a.jsb2||spket-1.6.16.jar,需要的朋友可以參考下
    2016-05-05
  • Gradle使用Maven倉庫的方法

    Gradle使用Maven倉庫的方法

    本篇文章主要介紹了Gradle使用Maven倉庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • java使用JDBC連接數(shù)據(jù)庫的五種方式(IDEA版)

    java使用JDBC連接數(shù)據(jù)庫的五種方式(IDEA版)

    這篇文章主要介紹了java使用JDBC連接數(shù)據(jù)庫的五種方式(IDEA版),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Java String 和StringBuffer的詳解及區(qū)別

    Java String 和StringBuffer的詳解及區(qū)別

    這篇文章主要介紹了Java String 和StringBuffer的詳解及區(qū)別的相關資料,需要的朋友可以參考下
    2017-05-05
  • 如何使用@Slf4j和logback-spring.xml搭建日志框架

    如何使用@Slf4j和logback-spring.xml搭建日志框架

    這篇文章主要介紹了如何使用@Slf4j和logback-spring.xml搭建日志框架問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java調(diào)用HTTPS接口實現(xiàn)繞過SSL認證

    Java調(diào)用HTTPS接口實現(xiàn)繞過SSL認證

    SSL認證是確保通信安全的重要手段,有的時候為了方便調(diào)用,我們會繞過SSL認證,這篇文章主要介紹了Java如何調(diào)用HTTPS接口實現(xiàn)繞過SSL認證,需要的可以參考下
    2023-11-11
  • Java單例模式簡單介紹

    Java單例模式簡單介紹

    這篇文章主要為大家詳細介紹了Java單例模式簡單的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論