赞
踩
本文基础:
1、已经理解JVM内存结构,对堆内存结构有清晰的认识(Eden,s0,s1,OldGen)
2、理解通常情况下堆内存分配的使用对象(new 出来的对象,注意区分引用是存放在方法区)
理解几个常用参数:(基础设置:-XX:PrintGCDetails)
1、设置堆内存大小:-Xmx(最大堆内存) -Xms(初始对内存) -Xmn(新生代大小) 。注意:一般最大堆内存和初始堆内存大小设置相同,原因避免频繁的Minor GC
2、设置Eden和s0,s1的比例:-XX:SurvivorRatio=8,表示8:1:1(可以根据项目需要进行设置)
3、大对象直接进入老年代的设置:-XX:PretenureSizeThreshold(单位字节)
比如:-XX:PretenureSizeThreshold=3145728(表示3M)
4、设置进入老年代的年龄:-XX:MaxTenuringThreshold(年龄的增长原则:每存活过一次Minor GC,则加1)
5、进入老年代的另一个原则:Survivor空间相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄对象的直接进入老年代,无需等到MaxTenuringThreshold设置的大小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。