当前位置: 首页 > news >正文

Java性能优化-垃圾回收算法-理解CMS回收器

垃圾回收算法

理解 CMS回收器

三个基本操作
1.回收新生代(同时暂停所有的应用线程)
2.运行并发周期来清理老年代数据
3.如果有必要则FULL GC压缩老年代
当发生新生代回收 ,
如果老年代没有足够的空间容纳晋升的对象则执行FULL GC,所有线程停止开始清理老年代中的垃圾对象
晋升失败的原因还有可能是内存存在碎片化而导致失败
FULL GC 在JDK8中不是并发
当元空间被填满并需要回收,CMS不会回收元空间,如果填满了需要full gc来处理未被任何引用的类
默认情况下CMS不会回收元空间

针对并发模式失败的优化

优化CMS目的是确保不会发生并发 模式失败或者晋升失败
并发模式失败是因为CMS清理老年代的速度不顾快,并发清理G1
执行新生代回收,CMS计算出没有足够的空间容纳晋升对象,所以先回收老年代
避免并发模式失败:G1从这些现象中发现了优化的方式
1.让老年代空间大一点

2.更频繁的运行后台线程清理
-XX:CMSInitiatingOccupancyFraction=N 默认70%
-XX:+UseCMSInitiatingOccupancyOnly 默认false
并发处理周期会在老年代的70%开始处理

3.使用更多的后台线程
增加后台线程公式
ConcGCThreads = (3 + ParallelGCThreads) / 4

tips:

避免并发模式失败是实现CMS最佳性能的关键
避免失败的最简单的方法也是最复杂的计算方法是增加堆的大小
调整提前启动并发后台线程和增加后台线程数量

http://www.lryc.cn/news/23866.html

相关文章:

  • Oracle11G的表空间数据文件大小限制问题处理
  • 计算机三级|网络技术|备考指南|网络系统结构与设计的基本原则|1
  • 基于 TI Sitara系列 AM64x核心板——程序自启动说明
  • 自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第一部分
  • 微电影广告的内容突破方案
  • 茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享
  • 谷歌优化排名怎么做出来的?谷歌排名多久做上去?
  • 字节跳动青训营--Webpack
  • 微信多媒体文件speex格式转为mp3文件格式
  • IAP初探
  • 【组织架构】中国铁路兰州局集团有限公司
  • 【计算机三级网络技术】 第四篇 路由设计技术基础
  • 嵌入式工程师进阶,基于AM64x开发板的IPC多核开发案例分享
  • 腾讯安全与锐捷网络战略合作,威胁情报能力“被集成”
  • 接口自动化测试用例详解
  • 【数据库增删查改进阶版】保姆级教程带大家去学习更加复杂的sql语句,各种各样的约束以及各种各样的查询
  • 【C#基础】C# 正则表达式
  • 企业活动直播如何设置VIP观看席?
  • 线性代数学习-2
  • Java 类
  • GO中sync 包的 RWMutex 读写互斥锁
  • 糖化学试剂55520-67-7,5-vinyl-2-deoxyuridine,5-乙烯基-2-脱氧尿苷特点分析说明
  • 五年携手共话,FISCO BCOS为数实相生注入新动能
  • 特征可视化技术t-SNE
  • .NET 导入导出Project(mpp)以及发布后遇到的Com组件问题
  • centos 8安装配置 yum/dnf镜像源 以及 docker相关操作
  • java基础之线程池
  • Substrate 基础 -- 教程(Tutorials)
  • 一个线程两次调用start()方法会出现什么情况?
  • 看完再拿五分,软考高项时政提分必备