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

Difference in the results using Call Graph for the same project

amnaahmad
Beginner
397 Views
I am trying to collect some results for my video encoder through Intel VTune Call Graph. I am conducting tests on five different test sequences. Aftr running the call graph once I restart the PC to get results for the next sequence. All this is done by running the same activity without making any modifications to it.Changes are made to the configuration file of the project only. Now the problem is that when I run the project twice for the same sequences at different times, the results that call graph collects for the modules of the project are quite different where as they should be somewhat same. For the
purpose of checking i made a test program consisting of a for loop running 1000 times. Each times the results that the VTune's call graph collects are different.Can you kindly elaborate as to why is there difference in the results??
0 Kudos
2 Replies
David_A_Intel1
Employee
397 Views

I have no idea. If you believe there is an error, please submit an issue at http://premier.intel.com and include your test application (see Attach File link, when submitting the issue).

Thanks!

0 Kudos
Dmitry_K_Intel
Employee
397 Views

VTune Call Graph Profiler uses hardware tick counter to measure time. Because Microsoft Windows does not allow this counter to be virtualized this counter keeps running even when profiled application/thread is switched off from processor. So, actual measurements depends on your machine load. If you want to measure time as precise as possible, shut down all applications that you can before the measurements start.

In addition to this I would like to note, that time values, produced by Call Graph profiler are considerably less precise than those from Sampling profiler. The reason for this is that Sampling profiler'soverheadalmost not depends on application behavior, while Call Graph profiler's overhead is a constant per each call/return. This means that self timeof small functions/methods can be even less than overhead time of profiling routines themselves and measurements for short functions are less precise that for long.

0 Kudos
Reply