Intel® VTune™ Amplifier XE and Intel® VTune™ Amplifier for Systems Help
For better understanding of a performance problem, it is important to associate a hotspot with the source code and exact machine instruction(s) that caused this hotspot. To do this, you can open the source/assembly code directly from the command line. Use the -source-object option to switch a report to the source or assembly view mode, including associated performance data. Here is the command syntax for viewing source objects in the command line:
$ amplxe-cl -report <report_name> -source-object <object_type>[=]<value> -result-dir <result_path>
where
Example 1: Report Displaying Source Data
This example generates a hotspots report that displays source data for the grid_intersect function. The report is filtered to display only data columns with source, instructions, cpi values in the title. Since the result directory is not specified, the most recent hotspots analysis result is used.
$ amplxe-cl -report hotspots -source-object function=grid_intersect -column=source,instructions,cpiSource Line Source Instructions Retired CPI Rate
----------- ------------------------------------------------------------------------ -------------------- --------
461 }
462
463
464 /* the real thing */
465 static void grid_intersect(grid * g, ray * ry)
466 { 48,867,664 1.301
467
468
469 flt tnear, tfar, offset;
470 vector curpos, tmax, tdelta, pdeltaX, pdeltaY, pdeltaZ, nXp, nYp, nZp;
471 gridindex curvox, step, out;
472 int voxindex;
473 objectlist * cur;
474
475 if (ry->flags & RT_RAY_FINISHED) 7,469,004 1.822
...
Example 2: Report with Grouped Assembly Data
This example generates a hardware events report that displays assembly data grouped by basic block and then address. The report is filtered to display only data columns with block, source, function, instructions, assembly, cpi, address values in the title.
$ amplxe-cl -report hotspots -r home/results/r002ah -source-object function=grid_intersect -group-by=basic-block,address -column=block,source,function,instructions,assembly,cpi,address
Basic Block Instructions Retired CPI Rate Assembly Source Line Function (Full) Source File Function Range Size Start Address
----------- -------------------- -------- ------------------------------------------------- ----------- --------------- ----------- ------------------- -------------
0x40d340 39,900,000 2.238 Block 1 [Unknown] [Unknown] [Unknown] [Unknown] 0
0x40d340 3,800,000 2.000 sub esp, 0xd8 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d346 0 mov eax, dword ptr [0x4130e0] 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d34b 7,600,000 0.750 xor eax, esp 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d34d 3,800,000 4.500 mov dword ptr [esp+0xd4], eax 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d354 5,700,000 0.333 push esi 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d355 1,900,000 1.000 mov esi, dword ptr [esp+0xe4] 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d35c 1,900,000 10.000 push edi 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d35d 3,800,000 0.500 mov edi, dword ptr [esp+0xe4] 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d364 1,900,000 2.000 mov dword ptr [esp+0x74], edi 466 grid_intersect grid.cpp 0x646 0x40d340
0x40d368 3,800,000 3.500 test byte ptr [esi+0x8], 0x8 475 grid_intersect grid.cpp 0x646 0x40d340
0x40d36c 5,700,000 0.667 jnz 0x40d96f <Block 64> 475 grid_intersect grid.cpp 0x646 0x40d340
0x40d372 9,500,000 3.800 Block 2 [Unknown] [Unknown] [Unknown] [Unknown] 0
0x40d372 0 0.000 lea eax, ptr [esp+0x50] 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d376 push eax 478 [Unknown] [Unknown] [Unknown] [Unknown]
0x40d377 1,900,000 11.000 lea eax, ptr [esp+0x8c] 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d37e 1,900,000 0.000 push eax 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d37f 3,800,000 1.000 push esi 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d380 0 push edi 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d381 1,900,000 1.000 call 0x40e4a0 <grid_bounds_intersect> 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d386 15,200,000 2.375 Block 3 [Unknown] [Unknown] [Unknown] [Unknown] 0
0x40d386 13,300,000 2.286 add esp, 0x10 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d389 1,900,000 3.000 test eax, eax 478 grid_intersect grid.cpp 0x646 0x40d340
0x40d38b jz 0x40d96f <Block 64> 478 [Unknown] [Unknown] [Unknown] [Unknown]
0x40d391 3,800,000 2.000 Block 4 [Unknown] [Unknown] [Unknown] [Unknown] 0
0x40d391 0 0.000 movsd xmm0, qword ptr [esp+0x88] 481 grid_intersect grid.cpp 0x646 0x40d340
0x40d39a 3,800,000 1.000 comisd xmm0, qword ptr [esi+0x48] 481 grid_intersect grid.cpp 0x646 0x40d340
0x40d39f 0 jnbe 0x40d96f <Block 64> 481 grid_intersect grid.cpp 0x646 0x40d340
0x40d3a5 5,700,000 2.000 Block 5 [Unknown] [Unknown] [Unknown] [Unknown] 0
0x40d3a5 1,900,000 1.000 sub esp, 0x8 484 grid_intersect grid.cpp 0x646 0x40d340
0x40d3a8 1,900,000 1.000 lea eax, ptr [esp+0x10] 484 grid_intersect grid.cpp 0x646 0x40d340