After I profile an ASP.NET Core application, JetBrain's dotTrace tool by default opens up the All Calls
tab and shows a list of threads.
Could you please clarify some of my questions?
During my profiling session, I sent around 100K requests to the web application. Are these threads (apart from
Main
and some system threads likeFinalizer
thread) the only ones which were used by the thread pool to serve all those requests based on the image below?Ideally I would prefer to know the details of the function that took lot of CPU (i.e hottest method in the profiling session), so I keep wondering how this threads view actually helps?
Do you think there could have been many more threads from the thread pool which could have been used and returned back to the thread pool, but the profiler was only able to 'capture' the information of particular thread pool threads because those thread pool threads were executing during that time? I say this because for ~100K requests the number of threads shown here seem less, but I could be wrong. (Probably its based on number of concurrent requests executed?)