java虚拟机的内存设置(Memory settings for the Java virtual machine)
java虚拟机的内存设置(Memory settings for the Java virtual machine)
Memory settings for the Java virtual machine
Basic concept:
PermGen space: the full name is Permanent Generation space., that is, the permanent storage area used to store Class and Meta information, and Class is placed into the area when it is Load
Heap space: store Instance.
GC (Garbage Collection) should not clean PermGen space
So if your APP will be a lot of CLASS, PermGen space errors are most likely to happen to you, LOAD
Java Heap is divided into 3 areas
1.Young
2.Old
3.Permanent
Young saves objects that have just been instantiated. When the area is filled, GC moves the object to the Old area. The Permanent section is responsible for saving reflection objects, and this area is not discussed in this article.
The Heap allocation of JVM can be set using the -X parameter,
-Xms
Initial Heap size
-Xmx
Java heap maximum
-Xmn
Heap generation size of young
JVM has 2 GC threads
The first thread is responsible for retrieving the Young zone of the Heap
The second thread, when Heap is insufficient, traverses the Heap and upgrades the Young zone to the Older zone
The size of the Older zone is equal to -Xmx minus -Xmn, and the value of the -Xms cannot be set too large because the second threads are forced to run, which reduces the performance of the JVM.
Why do some programs happen frequently, GC?
For the following reasons:
1., System.gc () or Runtime.gc () is invoked within the program.
2. some middleware software calls its own GC method, which needs to set parameters to prohibit these GC.
The Heap of 3.Java is too small, and generally the default Heap values are small.
4. frequently instantiate objects, Release objects, at this point to save and reuse objects, such as using StringBuffer () and String ().
If you find that the remaining space of Heap will be 50% of the total space after each GC, this means that your Heap is in a healthy state
Many Server side Java programs are best to have 65% of the space left after