查看代碼(例如方法調用)花費了多長時間的最準確方法是什么?我猜最簡單,最快的方法是:DateTime start = DateTime.Now;{ // Do some work}TimeSpan timeItTook = DateTime.Now - start;但是,這有多精確?有更好的方法嗎?
3 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
更好的方法是使用Stopwatch類:
using System.Diagnostics;
// ...
Stopwatch sw = new Stopwatch();
sw.Start();
// ...
sw.Stop();
Console.WriteLine("Elapsed={0}",sw.Elapsed);

jeck貓
TA貢獻1909條經驗 獲得超7個贊
正如其他人所說,Stopwatch在這里使用是一個很好的類。您可以將其包裝為有用的方法:
public static TimeSpan Time(Action action)
{
Stopwatch stopwatch = Stopwatch.StartNew();
action();
stopwatch.Stop();
return stopwatch.Elapsed;
}
(請注意使用Stopwatch.StartNew()。我寧愿先創建秒表,再Start()進行簡單調用。)顯然,這會招致調用委托的麻煩,但是在大多數情況下,這是無關緊要的。然后,您將編寫:
TimeSpan time = StopwatchUtil.Time(() =>
{
// Do some work
});
您甚至可以ITimer為此建立一個接口,并StopwatchTimer, CpuTimer在可用時使用etc的實現。
添加回答
舉報
0/150
提交
取消