- Enable Hotspot Analysis
- Event-based sampling (CPU_CLK_UNHALTED.CORE and INST_RETIRED.ANY)
- Enable statistical callgraph
- Enable loop analysis
Currently, it finished the trace file conversion and is now stuck "Resolving symbols". Since I am totally new to performance analysis, can anyone tell me if there is a good starting point for finding hotspots in my application? I might need to try again and uncheck the callgraph and/or loop analysis, but I thought that would be useful information to look at... especially the callgraph. I'm not sure how to figure out if it's taking a long time because PTU took a dump (since it's not very active in Task Manager), or if I just need to let it run overnight or something.
EDIT (08/23/2008) -- I let the system crank on the analysis for about 36 hours or so, and PTU just crashed. It finally got past the "resolving symbols" part, and "crashed" on analysing loops. The interesting part is that PTU still seems to be running.
The "crash" manifested itself in the appearance of the JIT debugger window, which is just the post-mortem debug behavior. I selected "yes" to see if it would show me anything, or at least hoped to be able to save the crash dump information. Unfortunately, it wasn't possible to save it. When I closed the debugger, PTU continued on because now it's on the "collapsing the tree" step. I take it the loop analysis portion is in a DLL and that module crashed without bringing down Eclipse.
So I guess my question now is -- if I let the analysis continue, will I get any useful information out of it? Also, is there any way to get the crashdump info from the loop analysis so I can send it to Intel?
It may be too late but I will still try to answer. Event-based sampling and Statistical Callgraph are based on the different collectors. So, having both checked you invoke two types of collection and analysis. Loop analysis will significantly add to the overhead.
Which collector to start with depends on which information is needed. If you want just hotspot functions to be identified, just use Basic Event-based sampling. If call stack information needed, start with Statistical Callgraph.
The resolving symbols stage could take the significant amount of time depending on the size of the project being profiled.
Do not use loop analysis until you need a clue which of hotspot functions have loops or being called from a loop.
You might want to consider using the command line mode of collection and Eclipse for results viewing. It will separate the bugs of collectors and viewers.
If you consider sending the information regarding bugs of PTU, please include the logs saved in %temp%/ptu-log-