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

9 Expanding Memory
Determine your requirements
It is important to understand the real requirements of your application. We recommend
that you perform sizing tests before deployment with a realistic load, while monitoring
with -Xverbosegc and a tool like GlancePlus. Learn more about GlancePlus and the
-Xverbosegc option.
Our Java™ Performance Tuning website has much valuable information on profiling
and performance tools.
In addition, HP-UX patches may be needed for expanding memory size. Read the
release notes for your SDK release to determine if you need a HP-UX patch.
Memory layout under HP-UX 11.0 (PA-RISC only)
In the HP-UX 32-bit process memory layout, there are four "spaces" used in the runtime:
---------- 0x00000000
| text |
---------- 0x40000000
| data |
---------- 0x80000000
| sh mem |
---------- 0xc0000000
| sh mem |
--------- 0xffffffff
Application "text," the code in the executable, goes in text space.
Shared libraries get mapped into the shared memory, usually above 0xc0000000 but
if there are many shared libraries or a lot of shared memory in use they will creep down
into the 0x80000000-0xbfffffff range.
So in a normal executable, writable data is in the range 0x40000000 to 0x7fffffff.
C heap starts in the 0x4-------'s, and mmap-ed areas start in the 0x7's and work
back down. Thread stacks also start in the 0x7's, and get allocated at lower and lower
addresses as more threads get allocated.
Almost all of the native code for the JDK is in shared libraries. There is just a very small
amount of code in the launcher down in text space. We take advantage of otherwise
unused space in text space by linking with EXEC_MAGIC. With EXEC_MAGIC, on HP-UX
11.0, our memory layout looks like this.
---------- 0x00000000
| text |
---------- the java launcher uses memory up to about 0x00008000;
it is writeable under EXEC_MAGIC.
| data |
---------- 0x80000000
| sh mem |
---------- 0xc0000000
| sh mem |
---------- 0xffffffff
Determine your requirements 63