I'm trying to profile a large .NET 6 solution for a specific use case and user action.
However, I'm seeing a lot of time spent on the following methods rather than neatly broken out async calls as detailed in https://www.jetbrains.com/help/profiler/Analyzing_Async_Calls.html
LowLevelLifoSemaphore.WaitForSignal()
PortableThreadPool+WorkerThread.WorkerThreadStart()
WaitHandle.WaitOneNoCheck()
LowLevelSpinWaiter.Wait()
SemaphoreSlim.WaitUntilCountOrTimeout()
- a lot of
MoveNext()
at a plentitude of locations
None of which lead me to anywhere useful of what is causing these waits and continuations, they all just point at .NET-internal runtime stuff.
I'm using timeline profiling.
I tried debug and release builds and the checkbox at Collect TPL events is checked. Collect profiling data from start or manually clicking Start makes no difference either.
What else can I try to get more useful profiling data?