jvm调优方式主要是通过控制堆内存的各个部分的比例和GC策略来实现,内存比例不良设置会导致一下不良后果:
1). 新生代设置过小
一是新生代GC次数非常频繁,增大系统消耗;二是导致大对象直接进入旧生代,占据了旧生代剩余空间,诱发Full GC
2). 新生代设置过大
一是新生代设置过大会导致旧生代过小(堆总量一定),从而诱发Full GC;二是新生代GC耗时大幅度增加
一般说来新生代占整个堆1/3比较合适
3). Survivor设置过小
导致对象从eden直接到达旧生代,降低了在新生代的存活时间
4). Survivor设置过大
导致eden过小,增加了GC频率。
另外,通过-XX:MaxTenuringThreshold=n来控制新生代存活时间,尽量让对象在新生代被回收