I am trying to find the hotspots of the application using intel vtune advance hotspots analysis. When I look at the Bottom-Up window. It provides the column "Function/Call Stack" along the Module column. I was expecting to see the functions of the running application in the column Function/Call Stack. But Functions/call stack column gives information from the modules like libjvm.so , ld-2.17.so, libc-2.17 etc. I have observed that one function is named as the "Outside any known module". I suspect that this function contains the information of my application (for example if I am running the helloworld program then it includes the main function of source code and print out statement). Is it right?
[Outside any known module] means exactly that. The VTune Amplifier has no information about modules loaded at those addresses. This can happen if your application generates code "on the fly" in memory that it has allocated and filled with instructions. Or, if for some reason the VTune Amplifier was not notified of a module being loaded by the OS, for example, some kind of home-grown code loading. Also, JIT'd code; unless the JIT compiler is instrumented to inform VTune Amplifier about the code it is JIT-ing, VTune Amplifier won't know anything about it.
If you've built your application with debug info (both compile and link steps), then you should see your functions in the list, unless their execution time is so short that a sample is never collected within them. :\ How long does your application run? Are the functions you looking for small and/or executing infrequently?
There are several ways to "arrange" the data to look for your functions. From the grouping drop-down list in the upper left of the Bottom Up view, select "Module / Function / Call stack", then you can sort by the column, locate your module(s), and expand the nodes to show the functions from those modules.
Another option is to use the filter bar at the bottom of the display and select a module from the "Module" list ("Any Module" is the default value).
Did you launch app with VTune or attach to already running java process? In case of attach there is a limitation: you can't attach to java process if you use a standalone JRE package. VTune should warn you. If it's your case please try with JDK.
@MrAnderson. I am running the wordcount application of hadoop with the data size of 10GB. Intel Vtune shows the elapsed time of 1984.245 sec and CPU time 9.566 sec. According to the bottom-up window, the [outside any known module] is taking 1.737 sec and it is listed as one of the hotspot function.
I have checked the "Module / Function / Call stack", module path does not show anything. Can you please elaborate more on how can I build the application with debug mode.
@Denis P. I am launching the application with the intel vtune using command
" /opt/intel/vtune_amplifier_xe_2013/bin64/amplxe-cl -collect advanced-hotspots -target-duration-type=long -app-working-dir /usr/local/hadoop/bin/ -- /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/hadoop-0.20.2-examples.jar wordcount /user/hduser/randtextL1 /user/hduser/rand-output"
I do not have a java programming experience, can you please guide me that can help me get the function details of this particular application.
>>>I have checked the "Module / Function / Call stack", module path does not show anything. Can you please elaborate more on how can I build the application with debug mode.>>>
Is this java application? There is compiler switch -g which generates all debug info.
I am running the java application (hadoop wordcount ) on Atom(TM) CPU C2758 @ 2.40GHz and Xeon(R) CPU E5-2420 0 @ 1.90GHz using intel vtune for hotspot. I am looking at the "Module / Function / Call stack" results. Modules like libjvm.so, libc.so, dynamic code or compiles java code are having higher IPC on Xeon verses Atom but "[Outside any known module]" is giving me lower IPC on Xeon are compared to Atom. This behavior does not seems right. Can you please comment on this? What could be the possible reason?
I have the jar folder that I am using to run the java application. like " /opt/intel/vtune_amplifier_xe_2013/bin64/amplxe-cl -collect advanced-hotspots -target-duration-type=long -app-working-dir /usr/local/hadoop/bin/ -- /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/hadoop-0.20.2-examples.jar wordcount /user/hduser/randtextL1 /user/hduser/rand-output". I am not much familiar with the java. can you please tell me how to recompile it to enable the debug mode.
Please link following tutorial on how to decompress jar file. Later you can compile either wiyh javac compiler or with Java IDE like Eclipse or Netbeans.