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

Whole source code not seen

Venkatachalam_Vr
Beginner
522 Views
I recently downloaded vtune analyser for windows. I performed the profiling but i dont find the complete source code getting profiled. I see few funcions only. Is this so because it is an evaluation version.

Can anybody let me know?
0 Kudos
9 Replies
Vladimir_T_Intel
Moderator
522 Views
I recently downloaded vtune analyser for windows. I performed the profiling but i dont find the complete source code getting profiled. I see few funcions only. Is this so because it is an evaluation version.

Can anybody let me know?

Function names resolution is not dependent on whether you have evaluation version or commercial. Make sure all the modules in the project are compiled with debug info (/Zi and /DEBUG options). Do you profile C/C++ code, by the way?
0 Kudos
Venkatachalam_Vr
Beginner
522 Views

Function names resolution is not dependent on whether you have evaluation version or commercial. Make sure all the modules in the project are compiled with debug info (/Zi and /DEBUG options). Do you profile C/C++ code, by the way?

Thank you for the reply. I profile C code. All the modules are compiled with debug ( /Zi and /DEBUG). I pdb file is generated with symbols but i see only few functions when i open "HotSpots" window.

Even in the same file only few functions are displayed. Hence i thought as it is a evaluation version the profiling will be done for selected functions and files ( few companies do this in evaluation packages). I tried even exporting also i find the same few functions.

If you have any suggestion please let me know.


0 Kudos
Vladimir_T_Intel
Moderator
522 Views

Thank you for the reply. I profile C code. All the modules are compiled with debug ( /Zi and /DEBUG). I pdb file is generated with symbols but i see only few functions when i open "HotSpots" window.

Even in the same file only few functions are displayed. Hence i thought as it is a evaluation version the profiling will be done for selected functions and files ( few companies do this in evaluation packages). I tried even exporting also i find the same few functions.

If you have any suggestion please let me know.



First of all, try to decrease the level of compiler optimization (ultimately down to Od) and see if the function names appear in the Hotspot results window.

Please, provide some more information. Which Compiler you were using and which version and build number of VTune is installed on your system.

Thanks.

0 Kudos
Venkatachalam_Vr
Beginner
522 Views

First of all, try to decrease the level of compiler optimization (ultimately down to Od) and see if the function names appear in the Hotspot results window.

Please, provide some more information. Which Compiler you were using and which version and build number of VTune is installed on your system.

Thanks.


Thanks again. I tried disabling optimization and i found that few more files are seen in the Hotspot result window but yet not the whole.

Information you requested.

Compiler : Microsoft Visual C++ 7.1
Vtune Version : VTune 91_002_win.exe ( I used this version)

I enabled all the settings as given by the manual ( turning DEBUG and /Zi options) and started the sampling.
I built the exe.
I updated all the source code directories in the Tools->Options->VTune..->Directories
I did Event Based Sampling with default settings.
My application has only one exe and no dlls etc.

If you need further information please let me know.

Thanks again

0 Kudos
Vladimir_T_Intel
Moderator
522 Views

Thanks again. I tried disabling optimization and i found that few more files are seen in the Hotspot result window but yet not the whole.

Information you requested.

Compiler : Microsoft Visual C++ 7.1
Vtune Version : VTune 91_002_win.exe ( I used this version)

I enabled all the settings as given by the manual ( turning DEBUG and /Zi options) and started the sampling.
I built the exe.
I updated all the source code directories in the Tools->Options->VTune..->Directories
I did Event Based Sampling with default settings.
My application has only one exe and no dlls etc.

If you need further information please let me know.

Thanks again


Hmm.. I need to understand what exactly you mean by not all functions are displayed in this case. Would you please share the screen shot of the Hotspot results?

What I'm trying to figure out is whether you have some functions unresolved and therefore displayed as Unknown addresses, OR you just expect some functions to be displayed but does not observe them. If the latter, there might be the situation when the expected functions just do not consume enough time to be statistically visible in the results.

0 Kudos
Venkatachalam_Vr
Beginner
522 Views

Hmm.. I need to understand what exactly you mean by not all functions are displayed in this case. Would you please share the screen shot of the Hotspot results?

What I'm trying to figure out is whether you have some functions unresolved and therefore displayed as Unknown addresses, OR you just expect some functions to be displayed but does not observe them. If the latter, there might be the situation when the expected functions just do not consume enough time to be statistically visible in the results.


Hi Vladimir

Thanks for your reply. That seems to be the reason for my observation. I tried executing a bigger job and found few functions what i was expecting.

I expected few more functions to be displayed but i dint see them. Also i do see some unresolved address as attached in the file.

I repeated the same with time based sampling and i do see the same results.

Is there a way of getting all the functions profiled, please let me know?

0 Kudos
Vladimir_T_Intel
Moderator
522 Views

Hi Vladimir

Thanks for your reply. That seems to be the reason for my observation. I tried executing a bigger job and found few functions what i was expecting.

I expected few more functions to be displayed but i dint see them. Also i do see some unresolved address as attached in the file.

I repeated the same with time based sampling and i do see the same results.

Is there a way of getting all the functions profiled, please let me know?


It seems that it partially confirms my supposition of statistically insufficient time spent in the functions. The best way to overcome that is profiling the application when doing bigger job (at least several seconds of even minutes for the whole application). Even with that you have to understand that some functions in the application execute in really small period of time by their nature and could not be sampled effectively because of statistical approach of the Sampling method. You might want to play with SAV (Sampling After Value) setting the value smaller then the default one in order to increase sampling frequency, but you have to careful with that and it's better to start with thorough reading the Help pages regarding Sampling and SAV.

BTW, you screen shot is not attached properly. In order to do that you'd need to push "Add Files" button in the reply message, create a folder, enter the folder, browse the picture file, push "upload" button, and then push the "Add as Attachment" button. It's crazy, I know, but it is how it works.

If you need all the functions profiled, you have to run Call Graph, which exploits binary instrumentation approach and tracks all the functions being called during application execution. However, you will experience the significant overhead while running the application within Call Graph activity. This is the payment for the instrumentation. The advantage of Call Graph technology is that you will get the "dimensional" profile of your application (which function was called by which), as opposite to Sampling which provides "flat" profile.

I'd also recommend you looking at the new profiling set Intel Parallel Studio. Parallel Amplifier as a part of it provides the sampling results but with the call stack, making the profile more "dimensional". I'm sure you'll like the this tools set since you will find many other useful instruments there like memory checking or threads correctness checking capabilities.

0 Kudos
Venkatachalam_Vr
Beginner
522 Views

It seems that it partially confirms my supposition of statistically insufficient time spent in the functions. The best way to overcome that is profiling the application when doing bigger job (at least several seconds of even minutes for the whole application). Even with that you have to understand that some functions in the application execute in really small period of time by their nature and could not be sampled effectively because of statistical approach of the Sampling method. You might want to play with SAV (Sampling After Value) setting the value smaller then the default one in order to increase sampling frequency, but you have to careful with that and it's better to start with thorough reading the Help pages regarding Sampling and SAV.

BTW, you screen shot is not attached properly. In order to do that you'd need to push "Add Files" button in the reply message, create a folder, enter the folder, browse the picture file, push "upload" button, and then push the "Add as Attachment" button. It's crazy, I know, but it is how it works.

If you need all the functions profiled, you have to run Call Graph, which exploits binary instrumentation approach and tracks all the functions being called during application execution. However, you will experience the significant overhead while running the application within Call Graph activity. This is the payment for the instrumentation. The advantage of Call Graph technology is that you will get the "dimensional" profile of your application (which function was called by which), as opposite to Sampling which provides "flat" profile.

I'd also recommend you looking at the new profiling set Intel Parallel Studio. Parallel Amplifier as a part of it provides the sampling results but with the call stack, making the profile more "dimensional". I'm sure you'll like the this tools set since you will find many other useful instruments there like memory checking or threads correctness checking capabilities.


Thanks for your reply. I will also try Call Graph Profiling.

I just peed into Intel Parallel Studio and as you have suggested it might be very useful. I will have to download and evaluate. I need to find a good tool for profiling if Parallel Studio will be more helpful then i would prefer to try that.

-------------
Venkat
0 Kudos
Vladimir_T_Intel
Moderator
522 Views

Thanks for your reply. I will also try Call Graph Profiling.

I just peed into Intel Parallel Studio and as you have suggested it might be very useful. I will have to download and evaluate. I need to find a good tool for profiling if Parallel Studio will be more helpful then i would prefer to try that.

-------------
Venkat

Sure. If you have any questions on Parallel Studio, you are wellcome to ask on the dedicated forum.
0 Kudos
Reply