标签:原理 失败 虚拟机 随机 老年 回收 code 新生代 不可
垃圾回收时,暂停虚拟机运行
基础假设:大部分对象只存在很短的时间
对于新生代,Minor GC经常会发生
Major/Full GC会对老生代做GC
老生代GC采用Compact算法,移动形成完整的空余区
垃圾回收在什么时候发生?
如果内存满了,内存分配失败时运行;调用system.gc()时运行。
对什么对象进行回收?
从根节点出发,对不可达对象进行回收。
新生代:使用复制算法
老年代:使用标记 - 清理 或者 标记 - 整理 算法
JVM调优 |
-三大性能调优参数
-xms,最小堆内存
-xmx,最大堆内存,一般设置为与xms一样,避免出现内存抖动
-xss,是对每个线程栈的调优参数,影响堆栈调用的深度
避免Eden过大(From/To,频繁GC)或过小(频繁YoungGC),建议Eden:From:To=8:1:1,即默认值。-XX:SurvivorRatio
合理设置新生代存活周期,默认值15。
避免新生代设置过小(频繁YoungGC;大对象,From/To不足->FullGC),过大(新生代变大,YoungGC更耗时;旧生代变小,频繁FullGC),建议新生代:Heap=33%,即Young:Old=1:2。
标签:原理 失败 虚拟机 随机 老年 回收 code 新生代 不可
原文地址:https://www.cnblogs.com/xiaobingzi/p/10686094.html