I'm new to VTune Analyzer. First, I'd like to explain about our existing serial application that I've applied to VTune analyzer. It is an application used to simulate many RF devices especiallyfor cellular antenna design. The application itself has 3 .exe files separately linking each other. We need togive a model (antenna model) file as an inputto theapplication and it will give back the result calculation file. This is a brief about our application.
Now I'm using VTune to analyze and identify hotspots inour existing serial application. I've some questions about it.
Q 1) Do I need to use both Sampling and Call Graph methods to identify the hotspots in existing software? Can I use only Sampling method orCall Graph method?
Q 2) Why can't I drill down to the source code view with "Released Version" in Sampling method? Is it necessary to use "Debug Version" only? ( I can drill down to the source code with Debug Version.)
Q 3) Why I can't apply Call Graph method to our application? (Error message : "Application Error, The application failed to initialize properly (0xc000005). Click on OK to terminate the application". (Test with Released Version)
Q 4) When I test with Debug Version (to Call Graph method), it is working but only examines one .exe files even I have selected 3 .exe files in "modules of interest" list. Why this happens?
Q 5) Then I tested with a complex model file (antenna model), it is not working even in the sampling method (for both Debug and Released Versions). Here is the error message: " Failed to create sampling data base. Probably .tb5 files are corrupted or don't exist.". Please explain what happen to my application?
I need your help urgently. Please reply me ASAP...please!
1. You do NOT need to use both Sampling and Call Graph to identify hot spots in your code. Just a basic sampling run should give you a collection of everything that is happening in the system: user or kernel, whatever processes are running.
2. There's something in between Released Version and Debug Version that might suit you better. You obviously want the Released Version because code optimization is turned on. What you probably need in addition is to turn on symbols: in Microsoft VS.NET IDE there are two settings, one for compilation and one for linking, that enable the PDB files to be generated. With those present, you should be able to drill down to your source from a Sample session.
3. The instrumented Call Graph in VTune analyzer does accurate call counts but requires a code instrumenter to obtain those counts. For this purpose, the Call Graph code needs to find the execution file(s). It used to be fooled by users who'd launch a script that would launch an execution file. It's gotten better handling that, but I suspect that your three processes IPC-ing with each other is probably too much for the instrumentor.You might try the statistical call graph available in PTU, available at the What-if website.
4. See answer 3 about the limitations of an instrumented call-graph.
5. It's hard to tell what might have failed here without more details. Sampling should be pretty bulletproof, so I'm not sure why collection should fail.