Boh*_*ohn 6 c# optimization profiling
我程序的某些部分很慢.我想知道是否有工具,我可以使用,例如,它可以告诉我运行方法A()花了100毫秒等...或类似的有用信息.
Ste*_*end 12
如果您使用的是Visual Studio Team System,则在"性能工具"中有一个内置的分析器.在这个博客上有很多有用的背景知识.
我发现这非常有用于识别80%的时间运行的代码的20%,因此我应该担心优化.
另一个可以令人惊讶地有效的简单技术是在调试器中运行释放代码,并在它处于您正在尝试诊断的"忙碌"状态时中断它几次(10个左右就足够了).您可能会发现反复出现的callstack信息,可以引导您到达一般关注区域.同样,80/20规则生效.
System.Diagnostics命名空间提供了一个名为Stopwatch的有用类,可用于计算代码的某些部分(将其视为"穷人的探查器").
这是你如何使用它:
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start(); // Start timing
// This is what we want to time
DoSomethingWeSuspectIsSlow();
stopwatch.Stop();
Console.WriteLine("It took {0} ms.", stopwatch.ElapsedMilliseconds);
Run Code Online (Sandbox Code Playgroud)