C#-用Stopwatch類進行速度測試

來源:互聯網
上載者:User

軟體的運行速度必須要在使用者可以接受的範圍內。通常,改善那些短暫的但頻繁使用的例 程的速度會大幅度地提高軟體的整體速度。

要改善速度,當然首先要能夠量度時間。 好,那我們考慮一下在跑道上的情況,槍聲一響,馬上按下秒錶開始計時,在選手到達終點 那一刻結束計時,這時就可以知道該選手所用的時間了。要開始對下一輪比賽計時前,要先 將秒錶歸零。.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;
         }
      }
    }
  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.