JVM内存结构
JVM调优
目的是降低full gc的触发频率
- 扩大这个堆内存空间
- 会增加老年代的可用空间,可以降低full gc的触发频率
- 到了老年代中存活时间不长的这些对象,尽可能在年轻代中被回收走,解决办法为扩大年轻代的内存,而扩大堆内存能达到这个效果
- 程序中尽量避免生成大对象
- 可以调整年轻代和老年代比较以及年轻代中三个区域的比例(不太建议)
- 更换GC位G1GC
GC的迭代
- SerialleGC 处理单线程程序
- ParalleGC 正对并行程序
- CMSGC 并发情况-从JDK1.5开始默认开启
- G1GC 从JDK1.9开始默认开启
如何调整堆内存大小,以及调整各年代之间的比例
- 修改JVM堆大小方式: 找到IDEA安装目录下的-->bin-->idea.exe.vmoptions
GC常用算法
- 复制算法 -- minor gc使用的
- 标记-清除算法 缺点:可用的内存空间不连续,造成内存利用率不高
- 标记-整理算法 -- full gc使用的