I'm working on an application that does high frequency sequential calculations. Since in some parts of the process we have I/O tasks, all methods are written async. Since the application was facing some performance issues I ran diagnostics while debugging and found out that the WorkerThread.WorkerThreadStart() is the hottest path of the application as you can see in the screenshot.
We know that this method is responsible for executing work items queued to the thread pool. Is this report showing that we are abusing the async/await all the way in the application or it can be seen as normal? In such case what would you suggest to improve the performance?