簡體   English   中英

算法性能C#

[英]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#還提供了哪些其他標准來測試性能? 問候

使用秒表

//啟動秒表:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM