2011-02-15 41 views
1

我想衡量我的代碼的性能..如果我認爲作爲一個標準 我有這樣的代碼算法的性能C#

DateTime oldDate = new DateTime(2002,7,15); 
DateTime newDate = DateTime.Now; 
// Difference in days, hours, and minutes. 
TimeSpan ts = newDate - oldDate; 
// Difference in days. 
int differenceInDays = ts.Milliseconds ; 

問題1時:是這樣的,我可以測試性能的唯一方法我的算法?問題2:C#提供了哪些其他標準來測試性能? Regards

+0

按照建議使用StopWatch,不要忘記在發佈模式下編譯。 – Magnus 2011-02-15 08:59:13

回答

2

嘗試使用StopWatch類。它具有比DateTime和TimeSpan類更高的分辨率。

此外,您可以查看Windows Performance Counters作爲衡量應用程序運行時的性能的一種方式,以便您可以監視應用程序的運行狀況。

3

使用Stopwatch

//啓動秒錶:

var watch = Stopwatch.StartNew(); 

//執行代碼

watch.Stop(); //This stops the watch 

經過時間可以通過使用經過的測量, ElapsedMilliSeconds和ElapsedTicks屬性。

2

如果你真的想使用DateTime(因爲它更容易使用),使用UtcNow代替Now。它有點快(因爲當前日期和時間在Windows中以UTC格式存儲),作爲額外的好處,您可以在DST更改時間周圍測試您的程序:-)。

但是,是的,使用Stopwatch

Stopwatch watch = Stopwatch.StartNew(); 
watch.Stop() 

啊......非常重要的......你的代碼是錯誤的

ts.TotalMilliseconds 

我昨天做了同樣的錯誤,但我測量圍繞第二次,所以這是比較難發現:-)