[英]algorithm performance 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#還提供了哪些其他標准來測試性能? 問候
使用System.Diagnostics.Stopwatch
總是更好
檢查此鏈接以獲取更多詳細信息。 性能測試:使用System.Diagnostics.Stopwatch進行精確的運行時測量
使用秒表類
//啟動秒表:
var watch = Stopwatch.StartNew();
//執行代碼
watch.Stop(); //This stops the watch
可以通過使用Elapsed,ElapsedMilliSeconds和ElapsedTicks屬性來測量經過時間。
嘗試使用StopWatch類。 它具有比DateTime和TimeSpan類更高的分辨率。
此外,您可以將Windows性能計數器視為一種在應用程序運行時評估性能的方法,以便可以監視應用程序的運行狀況。
您可以使用探查器(例如基於工具的SlimTune )或通過System.Diagnostics.Stopwatch
測量時間 。 它具有比DateTime
hack更好的精度。
如果您確實要使用DateTime
(因為它更易於使用),請使用UtcNow
而不是Now
。 速度稍快一些(因為當前日期和時間在Windows中以UTC格式存儲),此外,您可以在DST更改時間附近測試程序:-)。
但是,是的,請使用Stopwatch
。
Stopwatch watch = Stopwatch.StartNew();
watch.Stop()
啊...非常重要...您的代碼有誤
ts.TotalMilliseconds
昨天我也犯了同樣的錯誤,但是我正在測量第二次的時間,所以更難發現:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.