GC回收次数
减少GC次数,可以提高性能
GC占用系统资源
减少系统资源的占用,可以提高系统性能
GC停顿现象
减少应用程序停顿,可以提高系统性能
当非常空间不足的时候,会进行GC回收
当内存空间充足的时候,可以减少GC回收次数
一般,可以设置初始内存,等于最大分配内存
package com.bjsxt.base001;
public class Test02 {
public static void main(String[] args) {
byte[] b = null;
// 连续向系统申请10MB空间
for (int i = 0; i < 10; i++) {
b = new byte[1 * 1024 * 1024];
}
}
}
程序分析
每次分配1M,循环10次
总共需要分配10M空间
测试
第一次分配
-Xms3m –Xmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC
初始化,分配3M
最大内存,分配20M
进行了多次GC
第二次分配
-Xms5m –Xmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC
初始化,分配5M
最大内存,分配20M
GC次数,明显减少