我们的应用程序在生产环境中开始出现一些奇怪的性能问题。不断的CPU使用率,虽然应用程序似乎没有做任何事情,并且内存使用率很高。
我们使用任务管理器的功能创建了该进程的转储文件。现在我们正在尝试调试它,但它似乎并不那么容易:)
VS2010不会调试托管代码,唯一可用的操作是“仅使用Native调试”,这可能是因为该应用程序是.NET 3.5应用程序。
在这种情况下,有没有办法查看所有线程的托管调用堆栈?
答案 0 :(得分:1)
您可以使用Windbg(http://www.windbg.org/)来调试和解决生产环境中的性能问题。虽然您将无法执行线程堆栈分析,但它会提供内存中可用于分析应用程序的所有对象的快照.SOS调试扩展(SOS.dll)可帮助您调试WinDbg.exe中的托管程序调试器和Visual Studio中。
如果你愿意花钱,红门蚂蚁分析器是一个安全的赌注。