HP-UX Programmer's Guide for Java 2
Table Of Contents
- Table of Contents
- 1 Introduction
- 2 HotSpot Technology Tools and Commands
- 3 Configuration for Java™ Support
- 4 Performance and Tuning
- 5 Measuring System Performance
- 6 Using Threads
- 7 Using Signals
- 8 Using Java™ 2 JNI on HP-UX
- 9 Expanding Memory
- Determine your requirements
- Memory layout under HP-UX 11.0 (PA-RISC only)
- Additional memory available under HP-UX 11i (PA-RISC only)
- Allocating physical memory and swap in the Java™ heap
- Useful key command-line options for allocating memory
- Application-dependent considerations using large heap size HP-UX 11i PA-RISC
- Expanding heap size in native applications on PA-RISC HP-UX 11.11 and later releases
- Expanding heap size in native applications on Integrity HP-UX 11.23 and later releases
- Expanding heap size in HP-UX PA-RISC
- Expanding heap size in HP-UX Integrity
- 10 Diagnosing Memory Leaks
- A JDK/JRE 6.0.n and 7.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collection
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- Upgrading from a previous Java Web Start version
- IPv6 support
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- JDK 6.0.04 flags
- GC log-rotation support
- NUMA collector enhancements
- ThreadDumpPath support
- Garbage-First garbage collector (-XX:+UseG1GC)
- jmap, jinfo, and jstack tools included in JDK 6.0.03
- Additional Java Web Start documentation
- B JDK/JRE 5.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collectors: Parallel and Concurrent Mark Sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket (PA-RISC only)
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- IPv6 support on Java 5.0
- GC log-rotation support in 5.0
- ThreadDumpPath support in 5.0
- Dynamically loaded libraries in 5.0
- Performance improvement for String.intern()
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- C SDK/RTE 1.4.2.n Usage Notes
- Removing support for unwanted architectures in the JRE
- Support for dynamic thread local storage (TLS)
- Signal Chaining functionality
- Using Java 2 JNI on HP-UX
- HotSpot JVM options
- Garbage collectors: Parallel and Concurrent mark sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket when accept or read is pending (PA-RISC) - new patch information!
- Compatibility with previous releases
- Runtime Plug-In usage and configuration
- GC log-rotation support
- ThreadDumpPath support
- D Additional Resources
- Index
The JVM doesn't necessarily use all the space that it's reserved for the Java™ heap. On
initialization it commits a portion of this memory, the size of which is controlled by
the -Xms option. The size of this committed area (as shown by the capacity value in
the -Xverbosegc output) can vary between this minimum value and the maximum
allowable size (controlled by the -Xmx option), as the amount of retained objects in the
heap increases and decreases.
Starting with SDK 1.4.1.05, the way that physical memory and swap space are allocated
within the Java™ heap has changed. The JVM now ensures that swap is reserved for
the whole of the currently committed area of the heap by touching each memory page.
It also now explicitly releases this swap if the size of the committed area decreases.
(These decreases are not very common.) Prior to 1.4.1.05 the JVM did neither of these.
Note that under HP-UX, when memory pages are touched, physical memory is allocated
and swap is reserved as well. As a result, in some applications you may now see a
larger memory footprint. When you monitor your Java™ processes with Glance or
other tools, you are likely to see a higher RSS memory usage, especially on startup
because the memory is being allocated earlier than before. In some cases, your
application startup may be slightly slower. It is the physical memory allocation that
shows up in the increased RSS values, not the swap reservation.
Useful key command-line options for allocating memory
Below are three important command-line options with regard to allocating memory,
and some examples of how to use them. For a complete list of HotSpot JVM options,
refer to chapter on HotSpot technology.
-Xms<size>
Specifies the initial size of the committed memory within the Java™ heap. It also
specifies the minimum size of the committed area. The value must be a multiple of
1024 greater than 1MB. Append the letter k or K to indicate kilobytes, or m or M to
indicate megabytes.
For example: -Xms6291456, -Xms6144k, -Xms1500M
-Xmx<size>
Specifies the maximum size of the Java™ heap. The value must a multiple of 1024
greater than 2MB. Append the letter k or K to indicate kilobytes, or m or M to indicate
megabytes.
For example: -Xmx83886080, -Xmx81920k, -Xmx1500M
You will notice the increased memory footprint described in the previous section most
if you set -Xms to the same value as -Xmx. This is because the whole of the associated
heap spaces are committed and the JVM reserves swap for them by touching every
page. In this case it would be better to use the -XX:+ForceMmapReserved option
because it is more efficient.
-XX:+ForceMmapReserved
Useful key command-line options for allocating memory 65