1. 如何优化每次Full GC的性能?
就是把每次Full GC时间进一步降低。
- -XX:+CMSParallelInitialMarkEnabled,会在CMS的“初始标记”阶段开启多线程并发执行 初始标记阶段,会STW,该阶段开启多线程并发后,可尽可能优化该阶段性能,减少STW时间。
- -XX:+CMSScavengeBeforeRemark 在CMS重新标记阶段前,先尽量执行一次YGC
这样做有什么作用呢?
CMS重新标记也会STW,所以重新标记前,先执行一次YGC,就会回收掉一些年轻代里无人引用的对象。
所以若提前回收掉一些对象,在CMS重新标记阶段就能少扫描一些对象,这就提升CMS重新标记阶段的性能。
-Xms4096M -Xmx4096M -Xmn3072M -Xss1M -XX:PermSize=256M -XX:MaxPermSize=256M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFaction=92 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSParallelInitialMarkEnabled -XX:+CMSScavengeBeforeRemark