我继承了一个用 VB.Net 编写的 Windows 窗体应用程序。该应用程序的某些部分运行速度非常慢。找出代码的哪些部分阻碍了事情的最简单方法是什么?我正在寻找一种方法来快速找到最慢的子程序并首先解决它们,以尝试加快应用程序的速度。
我知道有几种代码分析器产品可供购买,它们会显示每个子例程需要多长时间,但我希望找到一个免费的解决方案。
我很欣赏寻找免费软件的愿望。但是,在这种情况下,我强烈建议您查看所有选项,包括商业产品。我尝试使用 nProf(我认为是 0.1 版),但运气不佳。即便如此,对应用程序进行性能分析是一项微妙的业务,最好使用功能强大、灵活的工具来处理。除非您是免费工作,否则我坚信使用专业产品所节省的时间将远远超过许可证的成本。当然,如果您只想分析单个应用程序,每个商业包都有 15 或 30 天的试用期,这足以确定现有应用程序中的任何问题。而且,如果您需要的不仅仅是一次性项目的分析支持,那么您最好还是购买一个完整的工具。
我们使用 RedGate 的ANTS 分析器并且对它非常满意。我还使用了.NET Memory Profiler,结果非常好。.NET Memory Profiler 最酷的地方在于,它可以附加到正在运行的生产应用程序并对其进行分析,当我们在生产环境中出现无法在测试实验室中重现的内存泄漏时,它确实节省了我们的精力。
JetBrains 的人有一个名为 dotTrace 的分析器,我没有尝试过,但我必须相信,如果它来自 JetBrains 商店,它可能也是一流的。
无论如何,我的建议是:尝试在其中一个或三个的聚合组合(至少 45 天免费使用)的免费试用窗口内修复您的应用程序,如果时间不够,选择您最喜欢的和春天为其中之一。你不会后悔的。
nProf是一个很好的免费 .Net Profiling 工具。
Visual Studio 还附带了一个相当不错的性能分析器。它不是所有版本都附带的——对于 VS2008,我认为它是你需要的开发者版。