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
Tells the JVM to reserve the swap space for all large memory regions used by the JVM
(Java™ heap). This effectively removes the MAP_NORESERVE flag from the mmap call
used to map the Java™ heaps and ensures that swap is reserved for the full memory
mapped region when it is first created. When using this option the JVM no longer needs
to touch the memory pages within the committed area to reserve the swap and as a
result , no physical memory is allocated until the page is actually used by the application.
Examples
-Xmx1500M
The initial Java™ heap memory commitment will be relatively small. This approach
maximizes the availability of system swap across your application machine. In SDK
1.4.1.05, the initial JVM footprint increases by about 22Mb; in SDK 1.4.2.00, it increases
by approximately 33Mb.
-Xmx1500M -Xms1500M
The initial Java™ heap memory commitment will be 1500Mb. You may notice a pause
during startup, even on a fast machine, as the memory pages are touched. In this case
it would be better to use the -XX:+ForceMmapReserved option because it uses
memory more efficiently. If your application typically uses less memory than this,
setting -Xmx and -Xms to the same value does not make the most efficient use of system
shared memory. You may want to use a smaller value for -Xms instead.
-Xmx1500M -XX:+ForceMmapReserved
There will be no pause corresponding to initial memory commitment. 1500Mb of swap
is reserved for the Java™ application. This swap cannot be shared with any other
processes on the system.
Application-dependent considerations using large heap size HP-UX 11i
PA-RISC
Thread stacks and C heap are allocated from the same address space as the Java™ heap,
so if you set the Java™ heap too large, new threads may not start correctly. Or other
parts of the runtime or native methods may suddenly fail if the C heap cannot allocate
a new page. An application may start up correctly with a 1.7GB heap, but this does not
necessarily mean it's going to work correctly.
For example, if you use a 1MB stack size (-Xss1m), and there are about 80 threads in
the process, you will have 80MB for stacks. If you have native libraries, you would
probably add another 64MB for C heap. You have now used a total of 144MB of your
heap for stacks and C heap, so this address space is not available for Java™ heap.
Because all programs have varying C heap requirements and have varying numbers
of threads, it's difficult to ascertain what the effect will be of running the application
at its limit. It's important to understand the real requirements of your application. We
66 Expanding Memory