【发布时间】:2010-02-01 13:57:23
【问题描述】:
我有一个使用 Visual Studio 2005 用 C++ 编写的应用程序。该应用程序存在一定的性能问题。我想探索在哪里。我需要深入了解应用程序大部分时间花费在哪些类/方法/行中。这可以用 WPA 完成吗?如果是的话,你能给我一个指向文档的指针吗?
【问题讨论】:
标签: c++ windows visual-studio performance profiler
我有一个使用 Visual Studio 2005 用 C++ 编写的应用程序。该应用程序存在一定的性能问题。我想探索在哪里。我需要深入了解应用程序大部分时间花费在哪些类/方法/行中。这可以用 WPA 完成吗?如果是的话,你能给我一个指向文档的指针吗?
【问题讨论】:
标签: c++ windows visual-studio performance profiler
不,WPT 利用 Windows 事件,它只会在 Windows 是导致您速度变慢的原因时帮助您诊断问题。您当然不会得到任何代码诊断。你需要的是一个真正的分析器。好东西要花钱。更多建议请查看this thread。
【讨论】:
找出浪费时间的最简单方法是stackshots,您可以使用 Visual Studio 中的“暂停”按钮轻松获得。
您无需测量;您所要做的就是在行动中抓住它。如果您发现它在两个或多个堆栈快照上做某事,而这是您可以避免做的事情,您将节省大量时间。而且,您可以重复该过程,因为一开始很小的问题会随着您消除其他问题而“冒泡”。
【讨论】:
试试YourKit .net profiler。我最近尝试了这个和其他几个,但这是我设法使用我的 C++/CLI 项目的唯一一个(混合了托管和非托管代码)。
[编辑]我将 WPA 解读为 WPF,并假设您想要分析一些 .net 代码。
【讨论】: