Total_Time should include Total_Wait_Time and Execution_Time for specific function;
Total_Wait_Time should include function itself wait time, and child functions' wait time;
Execution_Time should include itself execution time, and child functions' execution time;
In the "call graph" & "call list" view,
What should i do in order to sort the function/threads by their execution time (without suspension time)?
how can i find the contribution % for the execution time only?
i have a CPU intensive application with many threads, some work very hard and many are idle.
i want to analyze the CPU workload of the application. i only care about functions that do actual CPU work (idon't mind the thread being suspended as the cpu can do work on other thread in the meantime ).
because of the above, total_time (that includes wait_time) is much less relevant for me. when i try to analyze the application, the long in time but idle threads and function, cover the real working functions.
how should i address this problem?
I suggest that you can check which thread spent your much time first, secondary you can use critical path as clue to find hot functions in "Graph" for specific thread.
Sometime I used "Call List" to find which module spent most of time - usually they are your EXE/DLLs module and NTDLL.DLL by using Self_Time to sort. Yes, address to hot functions by using this way and drop some functions which has much Self_Wait_Time.