在 Windows 窗体应用程序中查找长时间运行代码的最佳方法是啥

Posted

技术标签:

【中文标题】在 Windows 窗体应用程序中查找长时间运行代码的最佳方法是啥【英文标题】:What's the best way to find long-running code in a Windows Forms Application在 Windows 窗体应用程序中查找长时间运行代码的最佳方法是什么 【发布时间】:2010-09-05 11:01:52 【问题描述】:

我继承了一个用 VB.Net 编写的 Windows 窗体应用程序。该应用程序的某些部分运行速度非常慢。找出代码的哪些部分阻碍了事情的最简单方法是什么?我正在寻找一种方法来快速找到最慢的子程序并首先解决它们,以尝试加快应用程序的速度。

我知道有几种代码分析器产品可供购买,它们会显示每个子例程需要多长时间,但我希望找到一个免费解决方案。

【问题讨论】:

【参考方案1】:

Visual Studio 还附带了一个相当不错的性能分析器。它不是所有版本都附带的——对于 VS2008,我认为它是你需要的开发者版。

【讨论】:

请注意,在 VS2010 中这只包含在 Premium 和 Ultimate 中【参考方案2】:

我很欣赏寻找免费软件的愿望。但是,在这种情况下,我强烈建议您查看所有选项,包括商业产品。我尝试使用 nProf(我认为是 0.1 版),但运气不佳。即便如此,对应用程序进行性能分析是一项微妙的业务,最好使用功能强大、灵活的工具来处理。除非您是免费工作,否则我坚信使用专业产品所节省的时间将远远超过许可证的成本。当然,如果您只想分析单个应用程序,每个商业包都有 15 或 30 天的试用期,这足以确定现有应用程序中的任何问题。如果您需要的不仅仅是一次性项目的分析支持,那么您最好还是购买一个完整的工具。

我们使用 RedGate 的 ANTS profiler 并对此非常满意。我还使用了.NET Memory Profiler,效果非常好。 .NET Memory Profiler 很酷的一点是,它可以附加到正在运行的生产应用程序并对其进行分析,当我们在生产环境中出现无法在测试实验室中重现的内存泄漏时,它确实节省了我们的精力。

JetBrains 的人 have a profiler as well called dotTrace 我没试过,但我必须相信,如果它来自 JetBrains 商店,它可能也是一流的。

无论如何,我的建议是:尝试在其中一个或三个组合的免费试用窗口内修复您的应用(至少 45 天免费使用),如果时间不够,请选择您的其中之一的最爱和春天。你不会后悔的。

【讨论】:

【参考方案3】:

nProf 是一个很好的免费 .Net Profiling 工具。

【讨论】:

【参考方案4】:

nProf 是一个免费的 .Net 分析器 (ref)。

【讨论】:

以上是关于在 Windows 窗体应用程序中查找长时间运行代码的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

WinForm 应用程序 UI 在长时间运行期间挂起

使用长时间运行的方法阻止 ASP.NET Web 窗体中的网页

在长时间运行期间泵送 Windows 消息?

sql 在MySQL中查找长时间运行的查询

使用 C# Windows 窗体中 SQL 查询的大量结果填充 dataGridView

Windows 窗体应用程序包括 .net 框架