|
Problem(Abstract) |
Setting the environment variable MALLOCMULTIHEAP=1 can
result in apparent memory leaks. |
|
|
|
Cause |
Prior to SR3 of JDK 1.3.1, MALLOCMULTIHEAP was
enabled by default. In theory, enabling MALLOCMULTIHEAP results
in improved performance. However, under certain circumstances, enabling
MALLOCMULTIHEAP resulted in apparent native memory leaks.
MALLOCMULTIHEAP causes the Java malloc storage to be divided into
32 sub heaps. This can cause native heap fragmentation. |
|
|
Resolving the
problem |
In order to avoid this problem, we suggest the following:
- Upgrade to JDK 1.3.1 SR3 or higher (the build date for SR3 is
20021107).
- Ensure that MALLOCMULTIHEAP=1 is not explicitly set as an
environment variable.
Evidence that there is a problem due to MALLOCMULTIHEAP being
enabled can be found in jcore output as:
*** CHECK *** probable memory fragmentation by
MALLOC_MULTIHEAP (PQ66180)
If this message is found in jcore output, MALLOCMULTIHEAP
should be disabled.
|
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|