2013年4月27日 星期六

Stopwatch類 時間測量

時間測量

開發環境

  • OS:Windows 7 64bit
  • IDE:Visual Studio 2010
  • Project Type:Window Form Developer
  • Framework:ASP.NET 4

狀況描述:
  • 想要計算程式運算效能。

解決方法:
  • 使用System.Diagnostics.Stopwatch
繼承架構:

System.Object 
  System.Diagnostics.Stopwatch



範例:


  private void button1_Click(object sender, EventArgs e)

        {

            //宣告並建立程式執行計時器

            Stopwatch sw = new Stopwatch();

            //宣告字串輸出結果存放變數
            string result = "";

            //迴圈執行次數,100萬
            int count = 1000000;

            //開始計時
            sw.Start();

            for (int i = 0 ;  i < count ;  i++)
            {
                result = "abcdefghijklmnopqrstuvwxyz" + i + "abcdefghijklmnopqrstuvwxyz";
            }

            //停止計時
            sw.Stop();

            Console.WriteLine("Elapsed Time: " + sw.ElapsedMilliseconds + "ms");

            //如果在Web From下要使用Debug.WriteLine( ) 才能輸出
            //Debug.WriteLine("Elapsed Time: " + sw.ElapsedMilliseconds + "ms");
        }

  • 注意若你使用了+=串接,那麼result將會非常長,因為接了一百萬次的string長度,此時千萬別使用Console.WriteLine( ),如此將會造成系統無法回應,因為要將那麼大量的字傳輸出到Console Port上是一個很大的運算量。
輸出結果:

Elapsed Time: 330ms

這個範例中,迴圈中的運算式執行了一百萬次花了330ms。

1ms = 0.001s。



參考資料:



沒有留言:

張貼留言