When diagnosing a high CPU problem, the first question that comes to mind is which thread uses the entire processor and what does it do (in terms of managed code)? To understand this, you need to install Process Explorer, for example, to find an abusive thread. Then you need to grab a dump of the process, load it into something like windbg and find out what the stream (s) does — find out the trace of the managed stack for each stream.
This process takes a lot of time. Is there a tool (free or for payment) or a reliable code that could be written that could do all this in seconds (click of a button). The end result that I would like to see is a list of threads sorted by processor load, and the current method it is in, with the ability to expand to see the entire stack trace. Basically the same as what you saw in Process Explorer, except for managed code.
This will need to work for .NET 4.0.
source share