How to make DotTrace track async/await properly?

121 views Asked by At

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?

0

There are 0 answers