永发信息网

cms gc过程中哪几个阶段暂停应用程序

答案:2  悬赏:10  手机版
解决时间 2021-04-04 03:02
  • 提问者网友:寂寞撕碎了回忆
  • 2021-04-03 20:58
cms gc过程中哪几个阶段暂停应用程序
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-04-03 22:15
问题解决:中间调整过几次,先搞了几台机器做了验证,后来逐步推广的。
1、调大heap区,由原来的4g,调整到5g,young区的大小不变,还是2g,这时候old区就由2g变为3g了(这样保证old区有足够的空间);
2、设置-XX:UseCMSInitiatingOccupancyOnly,其实这个不关这个问题,只是发现半夜CMS进行的有点频繁,就禁止掉了悲观策略;
3、设置CMS区回收的比例,从80%调整到75%,让old区尽早的进行,有足够的空间剩余;

为什么要有GC(垃圾回收)?

JVM通过GC来回收堆和方法区中的内存,GC的基本原理就是找到程序中不再被使用的对象,然后回收掉这些对象占用的内存。
全部回答
  • 1楼网友:拜訪者
  • 2021-04-03 22:48
中间调整过几次,先搞了几台机器做了验证,后来逐步推广的。 1、调大heap区,由原来的4g,调整到5g,young区的大小不变,还是2g,这时候old区就由2g变为3g了(这样保证old区有足够的空间); 2、设置-xx:usecmsinitiatingoccupancyonly,其实这个不关这个问题,只是发现半夜cms进行的有点频繁,就禁止掉了悲观策略; 3、设置cms区回收的比例,从80%调整到75%,让old区尽早的进行,有足够的空间剩余; 为什么要有gc(垃圾回收)? jvm通过gc来回收堆和方法区中的内存,gc的基本原理就是找到程序中不再被使用的对象,然后回收掉这些对象占用的内存。 主要的收集器有哪些? 引用计数器和跟踪计数器两种。 引用计数器记录对象是否被引用,当计数器为零时,说明对象已经不再被使用,可以进行回收。java中的对象有复杂的引用关系,不是很适合引用计数器,所以sun jdk中并没有实现这种gc方式。 跟踪收集器,全局记录数据的引用状态,基于一定的条件触发。执行的时候,从根集合开始扫描对象的引用关系,主要有复制(copying)、标记-清除(mark-sweep)、标记-压缩(mark-compact)那种算法。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯