计算程序的执行时间

本文关键字:执行时间 计算程序 | 更新日期: 2023-09-27 18:08:34

我实际上在做一个工具,每毫秒计数,我想调试我的程序,看看它在哪里慢,在哪里它足够快,因为在某个地方它走得很慢,程序像600行,有没有办法看到我的程序中每个函数的执行时间?我只能找到这个方法

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

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

计算程序的执行时间

我执行了如下命令:

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

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

也就是说,如果您试图使用秒表,那么您的方法是错误的,您应该使用类似dotTrace的东西来分析您的应用程序,并查看热点是什么。