- GC信息打印
- 设置大对象直接进入老年代
-XX:MaxTenuringThreshold:设置需要经过多少次MinorGC后没有回收的对象突入老年代;
- 开启Serial
串行收集器,是最基础的版本,是单线程的;在进行垃圾收集工作的时候必须暂停其他所有的工作线程,直到收集结束;
- 开启ParNew
是Serial的多线程版,默认的收集线程与CPU核数相同;可以使用-XX:ParallelGCThreads指定收集线程数;
- 开启老年代担保机制
- 开启偏向锁
- 逃逸分析
- 运行空间
- 新生代
-Xss:指定线程栈容量大小,默认1M;这里的值越大,相同内存的情况下JVM能够开放的线程越少
- 开启Parallel Scavenge
################-XX:+UseParallelGC(年轻代),-XX:+UseParallelOldGC(老年代)
- 开启CMS收集器
是一种以获取最短回收停顿时间为目标的收集器,适合注重用户体验应用上使用,他是HotSpot虚拟机第一款真正意义上的并发收集器;
- 对CPU资源敏感,会和CPU抢占资源;
- 无法处理浮动垃圾,在并发清理阶段又产生垃圾;
- 使用回收算法(标记-清除)会导致手机结束时大量空间碎片产品,可以通过参数-XX:+UseCMSCompactAtFullCollection让JVM在执行完毕后清除后再做整理;
- 执行中的不确定性,会存在上一次垃圾回收还没有执行完,然后垃圾回收又被触发的情况;
- 开启G1
是面向服务器的垃圾收集器,主要针对配置多课处理器及大容量内存的机器;
-XX:G1HeapRegionSize:指定分区大小(1MB~32MB,且必须是2的幂),默认将整堆划分为2048个分区
-XX:G1NewSizePercent:新生代内存初始空间(默认整堆5%)
-XX:TargetSurvivorRatio:Survivor区的填充容量(默认50%),Survivor区域里的一批对象(年龄1+年龄2+年龄n的多个年龄对象)总和超过了Survivor区域的50%,此时就会把年龄n(含)以上的对象都放入老年代
-XX:MaxTenuringThreshold:最大年龄阈值(默认15)
-XX:G1HeapWastePercent(默认5%):gc过程中空出来的region是否充足阈值,在混合回收的时候,对Region回收都是基于复制算法进行的,都是把要回收的Region里的存活对象放入其他Region,然后这个Region中的垃圾对象全部清理掉,这样的话在回收过程就会不断空出来新的Region,一旦空闲出来的Region数量达到了堆内存的5%,此时就会立即停止混合回收,意味着本次混合回收就结束了。
-XX:G1MixedGCLiveThresholdPercent(默认85%):region中的存活对象低于这个值时才会回收该region,如果超过这个值,存活对象过多,回收的的意义不大。
-XX:G1MixedGCCountTarget:在一次回收过程中指定做几次筛选回收(默认8次),在最后一个筛选回收阶段可以回收一会,然后暂停回收,恢复系统运行,一会再开始回收,这样可以让系统不至于单次停顿时间过长。
- 堆设置
-Xmx:最大堆大小
-XX:NewRatio=n:设置年轻代和年老代的比值.如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
- 收集器设置
-XX:+UseParallelGC:设置并行收集器
-XX:+UseConcMarkSweepGC:设置并发收集器
- 垃圾回收统计信息
- 并行收集器设置
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间;
- 并发收集器设置
-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数.并行收集线程数。
- 打印加载的类
- IO内存控制
- 元空间大小设置
- 打印所有JVM参数