In our probe we can only specify the Heap Memory(Xmx and Xms) not the others.
The JVM memory consists of the following segments:
1. Heap Memory, which is the storage for Java objects
2. Non-Heap Memory, which is used by Java to store loaded classes and other meta-data
3. JVM code itself, JVM internal structures, loaded profile agent code and data, etc.
The JVM has a heap that is the run-time data area from which memory for all class instances and arrays are allocated. It is created at the JVM start-up.
The heap size may be configured with the following VM options:
-Xmx<size> - to set the maximum Java heap size
-Xms<size> - to set the initial Java heap size
By default, the maximum heap size is 64 MB.
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, depending on the garbage collector's strategy.
When using these settings, keep in mind that these settings are for the JVM's heap, and that the JVM can/will use more memory
than just the size allocated to the heap.
For more information please refer to the Oracle's documentation http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/garbage_collect.html.
JVM uses more memory than just the heap. For example Java methods, thread stacks and native handles are allocated in memory separate from the heap, as well as JVM internal data structures.