虚拟机内存设置
-Xms20m 初始堆内存 -Xmx20m 最大堆内存 -Xmn1m 新生代内存默认1/3或者1/4
-Xss1m 函数调用最大深度
private static int count;
public static void recursion(){
count++;
recursion();
}
-XX:SurvivorRation=2 新生代eden/from或者eden/to 复制算法
-XX:+PrintGCDetails -XX:+UseSerialGC -XX:NewRation=2 老年代/新生代 标记压缩算法
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/Test03.dump 内存溢出
-Xloggc:d:/gc.log
-XX:PermSize=64m -XX:MaxPerSize=64m方法区
Vector v=new Vector();
for(int i=0 i<=5;i++){
v.add(new Byte[1*1024*1024])
}
对象进入老年代
-XX:MaxTenuringThreshold 默认是15
-XX:PretenureSizeThreshold可以设置进入老年代对象大小,但是要注意Tlab区域优先分配
Tlab 线程本地分配缓存
-XX:+UseTLAB
-XX:+TLABSize 设置大小
-XX:TLABRefillWasteFraction 设置维护进入TLAB空间的单个对象大小,是个比例值,默认64,如果对象大于整个空间的1/64,则在堆创建对象。
-XX:+PrintTLAB查看TLAB信息
-XX:ResizeTLAB自调整TLABRefillWasteFraction阈值
-XX:-DoEscapeAnalysis
-Xms20m 初始堆内存 -Xmx20m 最大堆内存 -Xmn1m 新生代内存默认1/3或者1/4
-Xss1m 函数调用最大深度
private static int count;
public static void recursion(){
count++;
recursion();
}
-XX:SurvivorRation=2 新生代eden/from或者eden/to 复制算法
-XX:+PrintGCDetails -XX:+UseSerialGC -XX:NewRation=2 老年代/新生代 标记压缩算法
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/Test03.dump 内存溢出
-Xloggc:d:/gc.log
-XX:PermSize=64m -XX:MaxPerSize=64m方法区
Vector v=new Vector();
for(int i=0 i<=5;i++){
v.add(new Byte[1*1024*1024])
}
对象进入老年代
-XX:MaxTenuringThreshold 默认是15
-XX:PretenureSizeThreshold可以设置进入老年代对象大小,但是要注意Tlab区域优先分配
Tlab 线程本地分配缓存
-XX:+UseTLAB
-XX:+TLABSize 设置大小
-XX:TLABRefillWasteFraction 设置维护进入TLAB空间的单个对象大小,是个比例值,默认64,如果对象大于整个空间的1/64,则在堆创建对象。
-XX:+PrintTLAB查看TLAB信息
-XX:ResizeTLAB自调整TLABRefillWasteFraction阈值
-XX:-DoEscapeAnalysis