130
POWER7 and Optimization and Tuning Guide
For example, if 20 MB is needed to run the application,
-Xcodecache5m
(four pieces of 5 MB
each) typically allocates 20 MB code caches at boot-up time, and they are likely close to each
other and have better performance for cross-code cache calls. Second, to determine if the
total code cache is sufficient, the
-Xjit:verbose
option can be used to print method names
as they are compiled. If compilation fails because the limit of code cache is reached, an error
to that effect is printed.
7.3.6 Shared classes
The IBM JVM supports class data sharing between multiple JVMs. The
-Xshareclasses
option can be used to enable it, and the
-Xscmx<size>
option can be used to specify the
maximum cache size of the stored data, where
<size>
can be
<
nnn
>K
,
<
nnn
>M
, or
<
nnn
>G
for
sizes in KB, MB, or GB.
The shared class data is stored in a memory-mapped cache file on disk. Sharing reduces the
overall virtual storage consumption when more than one JVM shares a cache. Sharing also
reduces the start time for a JVM after the cache is created. The shared class cache is
independent of any running JVM and persists until it is deleted.
A shared cache can contain:
Bootstrap classes
Application classes
Metadata that describes the classes
Ahead-of-time (AOT) compiled code
7.4 Java garbage collection tuning
The IBM Java VM supports multiple garbage collection (GC) strategies to allow software
developers an opportunity to prioritize various factors. Throughput, latency, and scaling are
the main factors that are addressed by the different collection strategies. Understanding how
an application behaves regarding allocation frequencies, required heap size, expected
lifetime of objects, and other factors can make one or more of the non-default GC strategies
preferable. The GC strategy can be specified with the
-Xgcpolicy:<
policy
>
option.
7.4.1 GC strategy: Optthruput
This strategy prioritizes throughput at the expense of maximum latency by waiting until the
last possible time to do a GC. A global GC of the entire heap is performed, creating a longer
pause time at the expense of latency. After GC is triggered, the GC stops all application
threads and performs the three GC phases:
Mark
Sweep
Compact (if necessary)
All phases are parallelized to perform GC as quickly as possible.
The optthruput strategy is the default in the original Java 6 that uses the V2.4 J9 VM.
Summary of Contents for Power System POWER7 Series
Page 2: ......
Page 36: ...20 POWER7 and POWER7 Optimization and Tuning Guide...
Page 70: ...54 POWER7 and POWER7 Optimization and Tuning Guide...
Page 112: ...96 POWER7 and POWER7 Optimization and Tuning Guide...
Page 140: ...124 POWER7 and POWER7 Optimization and Tuning Guide...
Page 162: ...146 POWER7 and POWER7 Optimization and Tuning Guide...
Page 170: ...154 POWER7 and POWER7 Optimization and Tuning Guide...
Page 223: ......