堆:new的对象 数组等
栈{
虚拟机栈 线程方法 局部变量
本地方法栈 native的方法
}
方法区 线程共享的 常量 虚拟机加载的类信息、静态变量
程序计数器 线程执行地址 字节码信号指示器
常见的垃圾收集器
serial parnew parellel-scavenge g1
cms serial-old parallel-old
zgc
-Xms 堆内存初始大小
-Xmx(MaxHeapSize) 堆内存最大允许大小,一般不要大于物理内存的80%
-XX:NewSize(-Xns) 年轻代内存初始大小
-XX:MaxNewSize(-Xmn) 年轻代内存最大允许大小,也可以缩写
-XX:NewRatio 新生代和老年代的比值
-XX:SurvivorRatio=8 年轻代中Eden区与Survivor区的容量比例值,默认为8
-XX:+HeapDumpOnOutOfMemoryError 内存溢出时,导出堆信息到文件
-XX:+HeapDumpPath 堆Dump路径
-Xmx20m -Xms5m
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=d:/a.dump
-XX:OnOutOfMemoryError
当发生OOM内存溢出时,执行一个脚本
-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p %p表示线程的id pid
-XX:MaxTenuringThreshold=7 表示如果在幸存区移动多少次没有被垃圾回收,进入老年代
网友评论