I am trying to profile particular segments of my code to analyze latency on one code path. I have seen this article which describes the use of User APIs to do something like this.
I am linking against libittnotify.a and using #include "ittnotify.h" and have no problems compiling and linking code very much like the sample code in that article:
[cpp]// one time
__itt_domain *example_domain = __itt_domain_create("Example domain");
example_domain->flags = 1;[/cpp]
[cpp]// in event handler, each time it is called:
// code whose latency problems I want to analyze
I then run my executable using amplxe-cl -collect hotspots, exercising this code path many times. However, when I launch the VTune Amplifier XE 2011 GUI (build 206420)to look at the results, if I try to change the Grouping to one of the Frame ones, it only shows "No data to show. No date is available." which is not what I would expect based on that article.
Do frames not work on Linux? Is there something wrong with the way I setup my code? Should I be using a different version to get this to work?
Thanks, I'm not sure what exactly was going wrong but I retried from the ground up and it works now. However, one problem I have is that my typical frame time is substantially smaller than the sampling interval, which will remain true even if I reduce the sampling interval within reasonable bounds. I am trying to analyze scenarios where instead of my processing time being, e.g., 20us it jumps to 300us.
Is there a way to do instrumenting/tracing profiling in VTune, or does it only do statistical/sampling profiling?Does Intel have an instrumenting/tracing profiler that works on recent versions of Linux? The PTU tools don't seem to support Linux 3.0+.