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。



參考資料:



Visual Studio 開發Web ASP.NET Console.WriteLine 無法輸出

Console.WriteLine 無法在 console Port 介面輸出

開發環境

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


狀況描述:

  • 在Web Project 進入Debug模式時,使用Console.WriteLine無法顯示於輸出視窗,以至於無法做追蹤測試。

解決方法:

  • 在Web Project專案類型,應改用 Debug.WriteLine( )替代Console.WriteLine( )。
  • Debug.WriteLine( ) 需using System.Diagnostics
  • 另種方式可使用Response.Write( ),直接輸出於瀏覽器頁面上。

Visual Studio Debug 出現 未啟用偵錯對話方塊

未啟用偵錯

開發環境

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


狀況描述:

  • Visual Studio 開發工具在 Web Developer 開發時,按下Debug按鈕,出現警告視窗提示「未啟用偵錯」。


過程圖片:















解決方法:

  • 開啟web.config檔,修改 <compilation/>裡的屬性debugtrue即可。
  • 這個屬性當要將網站發佈到web server時記得要將其設回false。





<configuration>

    <connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
   
</configuration>
























參考資料: