180 POWER7 and POWER7+ Optimization and Tuning Guide
Example B-12 shows how this program was run and profiled on AIX. 64-bit Java was used
with the options -Xms10m and -Xmx10m to specify the size of the Java heap. The profile that is
generated appears in the java.prof file.
Example B-12 Results of running tprof on AIX
# tprof -ujeskzl -A -I -E -x java -Xms10m -Xmx10m -agentlib:jpa64=instructions=1 ProfileTest
Starting Command java -Xms10m -Xmx10m -agentlib:jpa64=instructions=1 ProfileTest
sum: 12518.481782746869
sum: 12507.63528674597
sum: 12526.320955364286
stopping trace collection.
Sun Oct 30 15:04:21 2011
System: AIX 6.1 Node: el9-90-28 Machine: 00F603F74C00
Generating java.trc
Generating java.syms
Generating java.prof
Example B-13 and Example B-14 on page 181 contain excerpts from the java.prof file that
is created on AIX. The notable elements of the profile are:
Lock contention impact: The impact of spin locking is shown in Example B-13 as ticks in
the libj9jit24.so helper routine jitMonitorEntry, in the AIX pthreads library
libpthreads.a, and in the AIX kernel routine_check_lock. This Java program clearly has
excessive lock contention with jitMonitorEntry consuming 26.66% of the ticks in the
profile. jitMonitorEntry and other routines, such as jitMethodMonitorEntry, indicate
spin locking at the Java language level, and impact in the pthreads library or _check_lock
is locking at the system level, which might or might not be associated with Java locks. For
example, libpthreads.a and _check_lock are active for lock contention that is related to
malloc on AIX.
Example B-13 AIX profile excerpt showing kernel and shared library ticks
Total Ticks For All Processes (KERNEL) = 690
Subroutine Ticks % Source Address Bytes
========== ===== ====== ====== ======= =====
._check_lock 240 5.71 low.s 3420 40
Shared Object Ticks % Address Bytes
============= ===== ====== ======= =====
libj9jit24.so 1157 27.51 900000003e81240 5c8878
libj9gc24.so 510 12.13 900000004534200 91d66
/usr/lib/libpthreads.a[shr_xpg5_64.o] 175 4.16 900000000b83200 30aa0
Profile: libj9jit24.so
Total Ticks For All Processes (libj9jit24.so) = 1157
Subroutine Ticks % Source Address Bytes