1.编写JAVA代码
import java.util.ArrayList;
import java.util.List;
/**
* -verbose:gc -Xms30M -Xmx30M -Xmn10M -XX:PermSize=200M -XX:MaxPermSize=200M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=8
* @author Administrator
*parallel Scanvenge
*/
public class HeapOutOfMemoryExample {
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
while(true) {
list.add(new Object());
}
}
}
2.设置JVM参数
-verbose:gc -Xms30M -Xmx30M -Xmn10M -XX:PermSize=200M -XX:MaxPermSize=200M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=8
JVM参数说明
Xms=30M //最小堆内存
Xmx=30M //最大堆内存
Xmn=10M //年轻代所占内存
PermSize=200M //永久代所占最小内存
MaxPermSize=200M //永久代所占最大内存
SurvivorRatio=8 //年轻代中Eden区和Survivor区的比值
PrintGCDetails //打印出垃圾回收日志
PrintGCDateStamps //打印出垃圾回收的时间3.执行类HeapOutOfMemoryExample
打印出GC日志