如何快速获取使用大量CPU的线程的托管堆栈跟踪

本文关键字:线程 跟踪 堆栈 CPU 获取 何快速 | 更新日期: 2023-09-27 18:16:26

在诊断高CPU问题时,首先想到的问题是哪个线程正在使用所有CPU以及它在做什么(在托管代码术语中)?例如,要弄清楚这一点,需要安装Process Explorer来查找问题线程。然后需要捕获进程的转储,将其加载到类似于windbg的东西中,并找出线程正在做什么-找出每个线程的托管堆栈跟踪。

这个过程有点耗时。是否有一种工具(免费或付费),或可以编写的可靠代码,可以在几秒钟内完成所有这些(点击一个按钮)。我希望看到的最终结果是一个按CPU利用率排序的线程列表,以及它所处的当前方法,并带有向下钻取以查看整个堆栈跟踪的选项。基本上和你在进程资源管理器中看到的一样,除了托管代码。

如何快速获取使用大量CPU的线程的托管堆栈跟踪

您可以构建自己的迷你分析器,如http://samsaffron.com/archive/2009/11/11/Diagnosing+runaway+CPU+in+a+Net+production+application

查看。net生产应用程序中的失控CPU诊断