I was wondering how I can do line-by-line profiling in VTune and if it's more precise than gcov line-by-line profiling or basically what's the advantage of using VTune over gcov if any. By now, I couldn't find any manual for line-by-line profiling and it just gives me profling at function level:
jalal@mona:/research/jalal/vtune$ /opt/intel/vtune_amplifier_xe_2013/bin64/amplxe-cl -R hotspots -q -format text -r test_result/
Function Module CPU Time:Self
--------------------- ------ -------------
mser mser 1.544
readImage mser 0.273
adv mser 0.112
[Import thunk mcount] mser 0.032
main mser 0.028
[Import thunk fread] mser 0.010
Please let me know if there's any such feature in VTune.
Not that this is anything way better than the previous function-based profiling but you might find it useful:
/opt/intel/vtune_amplifier_xe_2013/bin64/amplxe-cl -report gprof-cc -result-dir test_result/ -format text -report-output output.txt
../profiler/gprof/jrfonseca.gprof2dot/gprof2dot.py -f axe output.txt | dot -Tpng -o output.png
You need to install gprof2dot from the following:
And attached is what I have as a result of this profiling.
"gcov" sounds like a code coverage tool, which VTune Amplifier XE is not. You can see profiling data at the line level by double-clicking on the function name after collecting results, but only lines that contributed significantly to the applications activity will have data associated with them. VTune Amplifier XE does statistical sampling and collects execution points at various intervals, thereby reducing overhead and, yet, still giving a representative view of your applications activity.
Line-by-line profiling would have significant overhead, slowing your application down to perhaps unacceptable levels. Again, a code coverage tool would be better suited to this need.