<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

     Stopwatch sw1 = new Stopwatch();
                sw1.Start();
                for (int i = 0; i < 100000000; i++) {
                    string result1 = ((Convert.ToString(null) ?? "123"));
                }
            
               sw1.Stop();
               this.label1.Text = sw1.Elapsed.ToString();

    1.引入命名空間     using System.Diagnostics;

    2. // 開始計時
        Stopwatch watch = new Stopwatch();
       watch.Start();

         // -----你的代碼-----
        // 停止計時
        watch.Stop();
       Console.WriteLine(watch.Elapsed);

    軟件的運行速度必須要在用戶可以接受的范圍內。通常,改善那些短暫的但頻繁使用的例程的速度會大幅度地提高軟件的整體速度。
    要改善速度,當然首先要能夠量度時間。好,那我們考慮一下在跑道上的情況,槍聲一響,馬上按下秒表開始計時,
    在選手到達終點那一刻結束計時,這時就可以知道該選手所用的時間了。要開始對下一輪比賽計時前,要先將秒表歸零。
    .NET2.0也提供了這樣一個秒表:Stopwatch類,它可以比較精確地測量時間。
    速度測試:
    軟件的性能和可測性是一個復雜的主題。要確保應用程序能夠滿足用戶的期望,就需要在開發周期內考慮它的性能和可測性。
    這在設計階段至關重要,一個糟糕的設計幾乎肯定會導致糟糕的用戶體驗。然而,僅僅有好的設計也不能保證程序能夠高效地運行,最終代碼的質量同樣重要。
    量度一個運行時間較長的例程相當簡單。如果一個過程會持續幾分鐘,只要一塊腕表就可以記錄它的時間了。
    比如一個執行時間為兩分鐘的過程,10%的改善能夠節省12秒,這是很容易去確定的。
    而如果要測量一個非常短暫的過程,就要考慮更好的精確性了。比如有一些很小的例程,它們的運行時間可能只有千分之一秒,
    但會被調用100萬次,這樣的累積效果就明顯了。在.NET framework的先前版本中,需要使用Windows API函數,
    而在.NET framework 2.0中,微軟引入了Stopwatch(它就是我們的秒表)類來簡化時間的量度任務。
    Stopwatch類:
    使用Stopwatch類來量度時間非常簡單。跟現實生活中的秒表一樣,這個類的對象也能夠對計數器進行開始、停止、歸零(重置)操作,
    不過它可比一般的秒表精確多了,它能夠精確到微秒(也就是百萬分之一秒)。
    示例代碼:
    要演示Stopwatch的使用還是來段代碼吧。下面是一個控制臺應用程序,它將1到100萬之間的所有整數累加:


    using System;

    namespace StopWatchClass
    {
    class Program
    {
    static void Main(string[] args)
    {

    long total = 0;

    for (int i = 1; i <= 10000000; i++)
    {
    total
    += i;
    }
    }
    }
    }


    添加Stopwatch對象:
    Stopwatch類位于System.Diagnostics命名空間。下面是添加對象后的代碼:

    using System;
    using System.Diagnostics;

    namespace StopWatchClass
    {
    class Program
    {
    static void Main(string[] args)
    {
    Stopwatch timer
    = new Stopwatch();
    long total = 0;

    for (int i = 1; i <= 10000000; i++)
    {
    total
    += i;
    }
    }
    }
    }


    控制Stopwatch對象:
    Stopwatch提供了幾個方法用以控制Stopwatch對象。Start方法開始一個計時操作,Stop方法停止計時。
    此時如果第二次使用 Start方法,將繼續計時,最終的計時結果為兩次計時的累加。為避免這種情況,
    在第二次計時前用Reset方法將對象歸零。這三個方法都不需要參數。代碼是:

    using System;
    using System.Diagnostics;

    namespace StopWatchClass
    {
    class Program
    {
    static void Main(string[] args)
    {
    Stopwatch timer
    = new Stopwatch();
    long total = 0;

    timer.Start();
    for (int i = 1; i <= 10000000; i++)
    {
    total
    += i;
    }

    timer.Stop();

    }
    }
    }


    讀取Stopwatch結果:
    在結束計時后下一步就是讀取計時結果了。Stopwatch類提供了以下屬性:

    • Elapsed:返回一個TimeSpan對象,表示計時時間間隔;
    • ElapsedMilliseconds:返回計時經過的微秒數,精確度稍差,適合于稍長一點的計時;
    • ElapsedTicks: 返回計時經過的計時器刻度(timer tick)數。計時器刻度是Stopwatch對象可能的最小量度單位。
    • 計時器刻度時間的長度由特定的計算機和操作系統確定。Stopwatch對象的 Frequency靜態字段的值表示一秒所包含的計時器刻度數
    • 。注意它與TimeSpan的Ticks屬性所用的時間單位的區別。

    應當根據計時任務的情況選擇其中的一個屬性。在我們的示例程序中,Elapsed屬性提供了需要的精確度,用它來輸出經過的微秒數
    。這也是TimeSpan的最高精確度了。
    下面是最終的程序代碼:


    using System;
    using System.Diagnostics;

    namespace StopWatchClass
    {
    class Program
    {
    static void Main(string[] args)
    {
    Stopwatch timer
    = new Stopwatch();
    long total = 0;

    timer.Start();
    for (int i = 1; i <= 10000000; i++)
    {
    total
    += i;
    }

    timer.Stop();

    decimal micro = timer.Elapsed.Ticks / 10m;
    Console.WriteLine(
    "Execution time was {0:F1} microseconds.", micro);
    }
    }
    }


    另外,使用IsRunning屬性可以查看一個Stopwatch實例是否正在計時,使用StartNew方法可以開始一個新的計時器。


    posted on 2011-12-19 13:25 sanmao 閱讀(2542) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 天天摸夜夜摸成人免费视频| 亚洲av无码国产精品色在线看不卡 | 亚洲国产精品xo在线观看| 成人午夜免费福利| 一级免费黄色大片| 亚洲精品高清国产麻豆专区| 日本高清免费不卡视频| 在线人成免费视频69国产| 亚洲熟妇AV乱码在线观看| 国产成人麻豆亚洲综合无码精品| 18级成人毛片免费观看| 麻豆91免费视频| 亚洲精品在线免费观看视频| 亚洲精品国产V片在线观看 | 久爱免费观看在线网站| 亚洲人成网站999久久久综合| 亚洲一区二区三区免费| 国拍在线精品视频免费观看| 久久毛片免费看一区二区三区| 亚洲人6666成人观看| 超清首页国产亚洲丝袜| 成年女人视频网站免费m| 亚洲精品免费视频| 成在线人直播免费视频| 亚洲欧洲无码AV不卡在线| 久久精品亚洲综合| 四虎在线播放免费永久视频 | 亚洲视频在线免费播放| 国产精品亚洲精品日韩已方| 免费人成在线视频| 久久免费国产视频| 人成电影网在线观看免费| 亚洲色精品VR一区区三区| 亚洲国产精品久久66| 中文字幕亚洲无线码a| 日韩免费毛片视频| 免费精品国产自产拍在线观看图片| a一级爱做片免费| 国产午夜亚洲精品不卡电影| 亚洲乱码中文论理电影| 久久久久亚洲av无码专区喷水|