【12】JVM 参数
我理解的 JVM 所谓 JVM 就是 一个虚拟程序的生存对象内存管理 ,过多的不说也罢
扫盲
-XX 系统级别 的配置 日志信息 是用什么垃圾回收器
非-XX 程序级别 对应用层面的配置
+ 启用 - 禁用
-XX:+PrintGc
遇到gc 打印日志
-XX:+UseSerialGc
配置串行回收器
-XX:+PrintGcDetails
查看祥信息
-Xms
设置启动时 初始堆大小
-Xmx
最大堆的大小
-Xmx20m -Xms5m -XX:+PrintCommandLineFlags
隐式或显示传递给虚拟机参数输出
-Xmn
新生代大小
-XX:SurvivorRatio=eden/from=eden/to
新生代 中的比例
-XX:NewRatio=老年代/新生代
-Xss
线程栈大小
-XX:PermSize=64M -XX:MaxPermSize=64M
Server Client 模式
-XX:MAxTenuringThreshold 新生代到老年代gch回收次数
-XX:PretenureSizeThreshold 对象大小
超过的话就要分配到老年代
-XX:+UseTLAB
使用talb 区
-XX:TALBSize
设置tlab 大小
-XX:TLABRefillWasterFraction
默认 64 分之一的tlab大小
分配 过程
栈 tlab 老年代 eden
新生代 是整个堆的1/3 - 1/4
堆溢出插件
Memory Analyzer
根据 对象的回收算法 ,类如 copy 通过新生代 的 s0 s1 相互拷贝,增加 gc 回收次数
老年代分代分区 ,将所有的的有限情况 交给对应的队列头 同意清除