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 PA1.1 binary is not EXEC_MAGIC because the jit in Classic is not compatible with
EXEC_MAGIC. The PA2.0 launcher binary is EXEC_MAGIC. With EXEC_MAGIC, we have
all the space from around 0x00008000 until 0x80000000 as writeable data area. Now
the C heap will start way down there. This allows us to allocate a Java™ heap larger
than 1GB. However, you should be aware of certain considerations which might be
application dependent. These are described in the section “Application dependent
considerations when using large heap size HP-UX 11i PA-RISC”.
Additional memory available under HP-UX 11i (PA-RISC only)
With HP-UX 11i, Java™ supports a Java™ heap as large as 3.8GB. Space previously
reserved for shared memory can be used for process private writeable data. This should
be used with caution, however, as a Java™ heap this large is subject to lengthy pauses
for garbage collection. Due to the design of HP-UX, the heap is not one contiguous
mmap. When the heap is getting this large, either the new space, set with -Xmn, or old
space, set by the difference of Xmx and Xmn, must be 900MB or less.
-------------- 0x00000000
| text |
-------------- around 0x00008000
| data |
-------------- 0x80000000
| data |
-------------- 0xc0000000
| data+shmem |
-------------- 0xffffffff
When using a large Java™ heap, you should be aware of certain considerations which
might be application dependent. These are described in the section, “Application
dependent considerations when using large heap size HP-UX 11i PA-RISC”. In addition,
be aware that if you need to load extra native libraries at runtime, you need to carefully
test to ensure that you haven't used up all your address space for Java™ heap so that
there won't be enough shared memory left to load another shared library.
Allocating physical memory and swap in the Java™ heap
The Hotspot JVM uses mmap to reserve memory for the various spaces within the Java™
heaps. These memory mapped regions are created during initialization and are sized
so that they can hold the maximum size of heap specified with the -Xmx command-line
option.
Normally the HP-UX reserves swap space for the whole of these memory mapped heap
regions when they are first mapped. However, in order to conserve system swap
resources, the JVM, by default, maps these regions using the mmap MAP_NORESERVE
flag (see man 2 mmap for details). When using this option, no swap space is reserved
when the region is first created, swap will only be reserved for each page as and when
it is first used. In both cases physical memory pages will only be allocated when the
pages are first used.
64 Expanding Memory