Windows性能分析工具的使用作为分析器。

3

我有一个使用Visual Studio 2005编写的C++应用程序。该应用程序存在一些性能问题。我想探索其中的原因。我需要深入了解应用程序花费大部分时间的类/方法/行。WPA能完成这项工作吗?如果可以,请提供文档指引。

3个回答

4
不,WPT利用Windows事件,只有在Windows是导致您的减速问题的原因时才能帮助您诊断问题。您肯定不会为您的代码获得任何诊断信息。您需要的是真正的分析工具。好的分析工具需要花费一定的资金。请查看此线程以获取更多建议。

3
发现无谓消耗时间的最简单方法是使用stackshots,你可以通过Visual Studio中的“暂停”按钮轻松获得。
你不需要进行测量;你只需要在它执行时抓住它。如果你发现它在两个或更多的stackshots上做了某些事情,并且这是你可以避免的事情,那么你将会节省大量时间。而且,你可以重复这个过程,因为一开始很小的问题在解决其他问题后会“冒泡”出来。

好的建议,但不适合我的情况。该应用程序在Windows上表现良好(99%的时间等待用户输入),性能问题仅在嵌入式系统上可见,该系统具有较慢的处理器,并且我根本没有调试器/分析器。好的分析器可以帮助区分0.5%和0.05%的时间。 - danatel
在这种情况下,我会将一个循环(10次或100次)包装在每个UI驱动处理的部分周围,以便“放大”正在发生的事情。这具有减慢处理器速度的相同效果。将代码调整到最小时间,然后删除循环。 - Mike Dunlavey

0

尝试使用YourKit .net profiler。我最近尝试了几个工具,但只有这个工具能够与我的C++/CLI项目(包含托管和非托管代码)配合使用。

[编辑]糟糕了;我将WPA读成WPF,并且假设您想对某些.net代码进行分析。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接