在大家学学习JVM过程中会遇到各种各样得问题,简述分代垃圾回收器是怎么工作的?jvm 调优的工具调优的参数有哪些?
分代回收器分为老生代与新生代两部分,新生代默认空间占总空间的1/3,老代默认占2/3。新一代使用的是复制算法,新生代有3个分区 :Eden,ToSurvivor,FromSurvivor,FromSurvivor,其默认份额 为8:1:1,其执行过程如下 :将Eden+FromSurvivor存活的对象放到ToSurvivor中;清除Eden和FromSurvivor分区 ;FromSurvivor和ToSurvivor分区交换,FromSurvivor变ToSurvivor,ToSurvivor变FromSurvivor。每一次从FromSurvivor到ToSurvivor移动时,都会存在一个 +1的对象,当年龄达到15(缺省配置 为15 ),升级为老生代。 大型物体还会直接进入老年阶段 。老代代代在空间占用达到一定值后触发全局垃圾回收,通常使用 标记整理执行算法 。 上述这几个循环组成了整个垃圾收集过程的整体执行过程 。
jvm 调优的工具调优的参数有哪些?
JDK有许多位于JDKbin目录下的监控工具,其中最常用的是jconsole和jvisualvm。
jconsole:用于监控JVM中的内存、线程和类别;
jvisualvm:JDK自带的全方位分析工具,可分析:内存快照、线程快照、程序死锁、监控内存变化、gc变化等。
208.jvm调优的常用参数是什么?
-xms2g:初始化推大小为2g;
-xmx2g:最大堆内存为2g;
-XX:Newratio=4:设置年轻和老年人的内存比例为1:4;
-XX:Survivorratio=8:新生代Eden和Survivor的比例为8:2;
-XX+UseParNewGC:指定使用ParNew+SerialOld垃圾回收器组合;
-XX:+UseParalleloldGC:指定使用ParNew+ParNewold垃圾回收器组合;
-XX:+USEConcMarkSweepGC:指定使用CMS+SerialOld垃圾回收器组合;
-XX:+PrintGC:打开打印GC信息;
-XX:+PrintGCDetails:打印GC详细信息。
简述分代垃圾回收器是怎么工作的?jvm 调优的工具调优的参数有哪些?关注知了堂成都Java培训,带你了解更多Java相关知识小干货和知识点。