Setting the New generation heap size -XX:NewSize Use this option to set the New generation Java heap size. Set this value to a multiple of 1024 that is greater than 1MB. As a general rule, set -XX:NewSize to be one-fourth the size of the maximum heap size. Increase the value of this option for larger numbers of short-lived objects.Be sure to increase the New generation as you increase the number of processors. Memory allocation can be parallel, but garbage collection is not parallel.
Setting the maximum New generation heap size -XX:MaxNewSize Use this option to set the maximum New generation Java heap size. Set this value to a multiple of 1024 that is greater than 1MB.
Setting New heap size ratios -XX:SurvivorRatio The New generation area is divided into three sub-areas: Eden, and two survivor spaces that are equal in size. Use the -XX:SurvivorRatio=X option to configure the ratio of the Eden/survivor space size. Try setting this value to 8, and then monitor your garbage collection.
Setting minimum heap size -Xms Use this option to set the minimum size of the memory allocation pool. Set this value to a multiple of 1024 that is greater than 1MB. As a general rule, set minimum heap size (-Xms) equal to the maximum heap size (-Xmx) to minimize garbage collections.
Setting maximum heap size -Xmx Use this option to set the maximum Java heap size. Set this value to a multiple of 1024 that is greater than 1MB.
比如在死循环或者线程不停的创建对象,导致回收不如创建快。
还有就是JVM的系统参数调配的不合理。
比如:
-XX:MaxPermSize=64m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
如读一个100M的XML文件采用DOM
如将200000条记录生成对象装入内存
如使用不可垃圾回收的对象时没有close
或者程序错误,有些对象无法回收,又反复创建
所谓无法回收是指一直有指向它的引用存在
所以GC不回收它
你可以换个GC框架试试,用其他回收算法的
超时强制回收的那种,不知道jvm可不可以通过参数指定
-XX:MaxPermSize=64m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
我服务器内存只有512M
Setting the New generation heap size
-XX:NewSize
Use this option to set the New generation Java heap size. Set this value to a multiple of 1024 that is greater than 1MB. As a general rule, set -XX:NewSize to be one-fourth the size of the maximum heap size. Increase the value of this option for larger numbers of short-lived objects.Be sure to increase the New generation as you increase the number of processors. Memory allocation can be parallel, but garbage collection is not parallel.
Setting the maximum New generation heap size
-XX:MaxNewSize
Use this option to set the maximum New generation Java heap size. Set this value to a multiple of 1024 that is greater than 1MB.
Setting New heap size ratios
-XX:SurvivorRatio
The New generation area is divided into three sub-areas: Eden, and two survivor spaces that are equal in size. Use the -XX:SurvivorRatio=X option to configure the ratio of the Eden/survivor space size. Try setting this value to 8, and then monitor your garbage collection.
Setting minimum heap size
-Xms
Use this option to set the minimum size of the memory allocation pool. Set this value to a multiple of 1024 that is greater than 1MB. As a general rule, set minimum heap size (-Xms) equal to the maximum heap size (-Xmx) to minimize garbage collections.
Setting maximum heap size
-Xmx
Use this option to set the maximum Java heap size. Set this value to a multiple of 1024 that is greater than 1MB.