Avatar ·

如何测量C#中方法的执行时间?Stopwatch及其他方法

大家好!我是一名初学C#的开发者,遇到了这样一个任务:需要精确测量应用程序中某个方法的执行时间。例如,我在编写一个大文件的解析器或执行复杂的数学计算,想了解哪部分代码运行缓慢。 目前我是这样做的: ```csharp DateTime start = DateTime.Now; // 我的方法 Thread.Sleep(1000); // 模拟工作 DateTime end = DateTime.Now; TimeSpan duration = end - start; Console.WriteLine($"时间: {duration.TotalMilliseconds} 毫秒"); ``` 但我注意到结果有时会波动:有时是1000毫秒,有时是1002毫秒,有时是998毫秒。我还听说DateTime.Now对于这种测量不够精确。 请告诉我如何正确测量方法的执行时间?是否需要考虑一些特殊情况,比如方法运行非常快(小于1毫秒)或非常慢(几分钟)?.NET中是否有内置工具?以及如何避免测量本身对结果的影响?