c# – 调试性能问题的最佳方法是什么?

我正在为C#.NET中的另一个程序编写一个插件,并且遇到性能问题,其中命令需要的时间比我想的要长很多.插件对主机程序中的事件作出反应,并且还取决于主机程序SDK的实用程序方法.我的插件有很多递归函数,因为我正在对树结构进行大量的读写操作.另外,我的插件和主机应用程序之间有很多事件订阅,以及插件中类之间的事件订阅.

我怎样才能弄清楚完成任务需要花费多长时间?我不能使用常规断点样式调试,因为它不是它不起作用它只是它太慢了.我已经设置了一个静态的“LogWriter”类,我可以从我的所有类中引用它,这样我就可以从我的代码中将带时间戳的行写入日志文件.还有另外一种方法吗? visual studio是否保留了我可以使用的某种带时间戳的日志?应用程序关闭后,有什么方法可以查看调用堆栈吗?

解决方法

您需要使用分析器.这里链接到好的: ANTS Performance Profiler.

更新:您还可以使用Debug.Write在控制点中编写消息.然后,您需要加载DebugView应用程序,该应用程序显示具有精确时间戳的所有调试字符串.它是免费软件,非常适合快速调试和分析.

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...