本文主要是介绍JMM结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-Xms20M starting
-Xmx max
-Xmn new对象分配eden
-XX:SurvivorRatio=8
8:1:1TLAB Thread Local Allaction Buffer对象很大-XX:PretenureSizeThreshold=3145728 3M
长期存活的对象 -XX:MaxTenuringThreshold=15
动态对象年龄判定相同年龄所有对象的大小总和 > Survivor空间的一半分配担保Minor GC 之前检查 老年代最大可用连续空间是否>新生代所有对象总空间Minor GC
Major GC
Full GC什么样的对象需要回收?
判断算法
引用强 Object object = new Object();软 弱 虚 回收方法论标记-清除算法复制回收算法标记-整理算法垃圾收集器STW Stop The WorldSerialParNew -XX:ParallelGCThreadsParallel Scavenge (全局)吞吐量 = 运行用户代码时间 / (运行用户代码时间 + 垃圾收集时间)-XX:MaxGCPauseMillis=n-XX:GCTimeRatio=n-XX:UseAdaptiveSizePolicy GC ErgonomicsSerial OldCMS备用预案 Concurrent Mode Failusre时使用标记-整理算法Parallel Old标记-整理算法CMS标记-清除算法减少回收停顿时间碎片 -XX:CMSInitiationgOccupancyFraction Concurrent Mode Failure 启用Serial Old-XX:+UseCMSCompactAtFullCollection-XX:CMSFullGCsBeforeCompaction 执行多少次不压缩FullGC后 来一次带压缩的 0 表示每次都压-XX:+UseConcMarkSweepG1回收的时间节点
这篇关于JMM结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!