Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4995 Discussions

Problem assessing the time spend in functions, Call graph profiling very slow

thijse
Beginner
376 Views

I have trouble accurately assessing the time spend in vital classes and functions in our code. The program is compiled in VC++6 and runs multi-threaded on a 2 CPU, dual core Dell 690.

The call graph option "Total Time" seems to be exactly what I want, but profiling based on call graphs slows my program down immensly. That is, execution time of the whole program goes from 74 s to 589 s, which makes the time spend in the individual functions also inaccurate. Is this normal behaviour and if so, is there another manner in which to get this data accurately?


0 Kudos
2 Replies
TimP
Honored Contributor III
376 Views
Plain Event Based Sampling appears to be what you are asking for. The point of call graph is to find out who calls whom how often. I doubt it is well suited for threaded profiling. It is documented as an inaccurate way to measure performance, although it wouldn't usually be as bad as in your case.
0 Kudos
David_A_Intel1
Employee
376 Views
thijse:

The VTune analyzer attempts to subtract the overhead from the timing information for each function. The real usage model for the call graph time, however, is for comparison purposes between functions within the data collection.

Sampling is a very low overhead data collection mechanism, but it will not give you calling relationships. That information is costly to collection and will always add overhead.

0 Kudos
Reply