0

我们的应用程序在生产环境中开始出现一些奇怪的性能问题。持续的 CPU 使用率,虽然应用程序似乎没有做任何事情,并且内存使用率很高。

我们使用任务管理器的功能创建了进程的转储文件。现在我们正在尝试调试它,但它似乎并不那么容易:)

VS2010 不会调试托管代码,唯一可用的操作是“仅使用本机调试”,这可能是因为应用程序是 .NET 3.5 应用程序。

在这种情况下,有没有办法查看所有线程的托管调用堆栈?

4

1 回答 1

1

您可以使用 Windbg( http://www.windbg.org/ ) 来调试和解决生产环境中的性能问题。尽管您将无法执行线程堆栈分析,但它提供了内存中所有对象的快照,可用于分析您的应用程序。SOS 调试扩展 (SOS.dll) 可帮助您调试 WinDbg.exe 中的托管程序调试器和 Visual Studio 中。

如果您愿意花钱,redgate ant profiler 是一个安全的选择。

于 2010-07-12T12:25:23.750 回答