I have a tool which I do not have the source code for. To complete its task, this tool takes 2 minutes, when a similar task with other tools is 2 seconds (literally). I used xperf to determine why this tool is taking so long, and to my surprise, xperf tells me that not much is going on. Xperf shows the tool will spike when it does something, and then it enters some kind of wait period for over a minute where it does not produce any activity.
Is it possible to use xperf to find out why a program is NOT doing any work? Maybe it's waiting on a mutex, network connection, or a spawned process to complete? I just don't know.
Thanks for any advice.
may be using the "symbol support function" can help to get more information in detail around your issue.
It could be that this allow you to find one related action name which is not responding in your expected time.
In general I would use ProcMon and build a simular trace (*.pml).
And I would compare both results and try to find some reasons ...