一些GC的问题

minor gc如果运行的很频繁,可能是什么原因引起的

1、 产生了太多朝生夕灭的对象导致需要频繁minor gc

2、 新生代空间设置的比较小

minor gc如果运行的很慢,可能是什么原因引起的?

1、 新生代空间设置过大。

2、 对象引用链较长,进行可达性分析时间较长。

3、 新生代survivor区设置的比较小,清理后剩余的对象不能装进去需要移动到老年代,造成移动开销。

4、 内存分配担保失败,由minor gc转化为full gc

5、 采用的垃圾收集器效率较低,比如新生代使用serial收集器

永久代会GC吗?

​ 会。但永久代没自己的垃圾回收器,到达临界值后,永久代是和老年代一起被GC的。

JVM、GC调优
  • 分析应用类型,合理选择GC。比如后台任务多,要求吞吐率优先:parallel Scavenge;要求停顿时间短:CMS。 要求都兼顾:G1。
  • JVM调优。如设置合适的堆栈大小,避免频繁GC;设置FULL GC的阈值。
  • JVM分析,根据JVM日志调整业务代码或JVM参数。
posted @ 2021-04-22 23:45  i%2  阅读(132)  评论(0)    收藏  举报