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
Because threads from different processes, perhaps executing on behalf of different
users, are competing for the same computational resources, the HP-UX scheduler
adjusts the priorities of threads to prevent a high-priority, compute-bound thread from
locking out lower priority threads. This adjustment of priorities is a requirement for a
multi-user system. However, the Java™ language assumes a scheduling policy where
thread priorities are only changed explicitly by the programmer. The JVM uses the
HP-UX scheduler and thus the priorities of Java™ threads may change based on their
CPU utilization.
Thread stack size limits
The default stack size for Java™ 1.4x 64-bit mode JVM- created threads is 1MB. On
PA-RISC 32 and 64-bit systems, the default stack size is 64KB. Therefore, if you are
using C language main programs that attach with JNI, you will want to adjust the stack
size to avoid overflows. For details and workarounds to avoid stack overflows in the
main (primordial) thread and non-main threads, see “Main/primordial thread stack
size limits” (page 57) and “Non-Main/Primordial thread stack size limits” (page 59).
Developing hybrid applications
Developers who produce hybrid applications where the application entry point is in
a language other than Java, for example a C language main, need to link their
applications with the libpthread.sl library (PA-RISC) and the libpthread.so
library (IPF) in order to use the JVM. Failing to link with libpthread.sl or
libpthread.so will result in a run-time failure when the JVM is loaded.
When building native method implementations to be used with the kernel-threaded
JVM, sources must be compiled with the following additional command-line options:
-DNATIVE -D_POSIX_C_SOURCE=199506L
Additionally, hybrid applications must link with the pthread library using -lpthread
on the link line.
See “Developing hybrid applications” (page 39) for how developers of hybrid
applications can take advantage of the kernel-threaded JVM, along with the compiler
and linker options necessary to build the application.
Thread stack size limits 39