无需逐行调试,如何获取方法执行耗时?求Visual Studio及替代工具
如何不逐行调试获取方法执行耗时?
你需要在不逐行调试的前提下,获知目标方法的总执行耗时,同时想了解Visual Studio或其他工具是否能满足需求(因代码量庞大,逐行调试效率太低)。简化代码示例如下:
调用代码:
Foo foo = new (); foo.Method_1(); // 执行耗时约1秒 foo.Method_2(); // 执行耗时约2秒 foo.Method_3(); // 执行耗时约3秒
实现代码:
public class Foo { public void Method_1() { Thread.Sleep(1000); } public void Method_2() { Thread.Sleep(2000); } public void Method_3() { Thread.Sleep(3000); } }
以下是无需逐行调试的工具方案:
Visual Studio内置方案
1. 性能探查器(Performance Profiler)
这是最直接的内置工具,无需修改代码就能分析方法耗时:
- 打开Visual Studio,点击顶部菜单的「调试」->「性能探查器」(或按快捷键
Alt+F2) - 在弹出的窗口中选择「CPU使用率」,点击「开始」运行程序
- 程序运行结束后,会生成详细的性能报告,你可以在报告中找到
Foo类下每个方法的执行时间、调用次数,以及总耗时,完全不需要逐行调试。
2. 手动代码计时(无需调试)
如果只是快速统计总耗时或单个方法耗时,可以用.NET自带的Stopwatch类,不用进入调试模式,直接运行程序就能看到结果:
using System.Diagnostics; var stopwatch = Stopwatch.StartNew(); Foo foo = new (); foo.Method_1(); foo.Method_2(); foo.Method_3(); stopwatch.Stop(); Console.WriteLine($"总执行耗时:{stopwatch.ElapsedMilliseconds} 毫秒");
运行程序后,控制台会直接输出总耗时,适合快速验证。
第三方工具方案
1. dotTrace
JetBrains出品的性能分析工具,支持可视化展示方法调用链和每个方法的执行时间,只需运行程序并启动分析,就能得到精准的耗时数据,无需调试。
2. BenchmarkDotNet
专门用于.NET基准测试的库,能生成精确的性能报告(包括平均耗时、分配内存等),只需给目标方法加上特性配置,运行后就能得到专业的性能统计,适合需要精准分析的场景。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

