[jboss-user] [Performance Tuning] - Re: JBoss memory usage

frankgrimes do-not-reply at jboss.com
Fri Sep 8 14:19:10 EDT 2006


>From http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/MemoryMXBean.html:

 Memory
The memory system of the Java virtual machine manages the following kinds of memory:
1. Heap
The Java virtual machine has a heap that is the runtime data area from which memory for all class instances and arrays are allocated. It is created at the Java virtual machine start-up. Heap memory for objects is reclaimed by an automatic memory management system which is known as a garbage collector.

The heap may be of a fixed size or may be expanded and shrunk. The memory for the heap does not need to be contiguous.
2. Non-Heap Memory
The Java virtual machine manages memory other than the heap (referred as non-heap memory).

The Java virtual machine has a method area that is shared among all threads. The method area belongs to non-heap memory. It stores per-class structures such as a runtime constant pool, field and method data, and the code for methods and constructors. It is created at the Java virtual machine start-up.

The method area is logically part of the heap but a Java virtual machine implementation may choose not to either garbage collect or compact it. Similar to the heap, the method area may be of a fixed size or may be expanded and shrunk. The memory for the method area does not need to be contiguous.

In addition to the method area, a Java virtual machine implementation may require memory for internal processing or optimization which also belongs to non-heap memory. For example, the JIT compiler requires memory for storing the native machine code translated from the Java virtual machine code for high performance. 


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3970423#3970423

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3970423



More information about the jboss-user mailing list