计算我的程序的执行时间

时间:2015-08-17 17:49:29

标签: c#

实际上我正在做一个工具,每个ms都计数,我想调试我的程序,看它在哪里慢,哪里它足够快,导致某个地方变慢,程序就像600行,有什么方法可以在我的程序中看到每个函数的执行时间?我只能找到这种方法

Stopwatch stopWatch = Stopwatch.StartNew();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;

但是我看到它实际上并不那么准确,我需要它尽可能准确。谢谢!

1 个答案:

答案 0 :(得分:3)

我运行了以下内容:

var stopWatch = Stopwatch.StartNew();
Thread.Sleep(1000);
stopWatch.Stop();
Console.WriteLine(stopWatch.Elapsed);

输出为00:00:01.0002463,请注意,在这种情况下,您可能会期望第二次(合理的预期),但是,它稍微超过一秒。为什么? Thread.Sleep()不是特别准确!秒表足够精确,可以证明这一点,实际上通常精确到纳秒分辨率。

那就是说,如果你试图使用秒表,那么你的方法是错误的,你应该用dotTrace之类的方式对应用程序进行分析,看看热点是什么。