【JVM】GC 常见问题

GC 常见问题

哪些情况新生代会进入老年代

  • 新生代 GC 后幸存区(survivor)不够存放存活下来的对象,会通过内存担保机制晋升到老年代。
  • 大对象直接进入老年代,因为大对象再新生代之间来会复制会影响 GC 性能。由 -XX:PretenureSizeThreshold=1048576配置
  • 长期存活的对象,比如经过了15次gc后还存活的对象,由-XX:MaxTenuringThreshold=10配置
    • 但是这个年龄是会动态调整的,每次新生代GC后,JVM都会动态调整这个阈值大小,调整的方式是,从年龄为1的所有对象向上累加,直到内存大小大于-XX:TargetSurvivorRatio(默认50%)
    • 例如总共有100MB新生代大小,阈值就是50MB,累加年龄为1的对象,此时10MB,累加年龄为2的对象,此时25MB,累加年龄为3的对象,此时45MB,累加年龄为4的对象,此时55MB>50MB,那么阈值就被设置成4,下次GC时年龄大于等于4的对象会晋升到老年代
    • 为什么默认是15?
      • 因为对象头里有个age字段,占4个bit位,所以最大就是15,初始值设为最大,然后依靠后面动态调整。
    • 那这样的话,小于等于15都可以吧,反正有动态调整,为什么选15呢?
      • 因为-XX:MaxTenuringThreshold其实是限定了一个动态调整年龄范围的上限,设为15能让动态调整更为灵活

什么时候 Full GC

  • 调用 System.gc()
  • 新生代对象晋升老年代时,老年代内存不足。此时触发Full GC。
  • 大对象分配到老年代时,老年代内存不足。此时触发Full GC。
  • 元空间内存不足,Full GC回收没有使用的类(类没有实例化对象)。
  • CMS GC时有对象要放入老年代,老年代内存不足,报Concurrent Mode Failure 错误,并触发 Full GC。
  • G1 回收器回收速率跟不上对象分配速率,也会触发 Full GC。

什么是 Concurrent Mode Failure?

  • CMS收集器在工作时,因为用于线程和垃圾回收在并发标记和并发清除阶段是并行的,此时老年代空间不足(例如浮动垃圾过多,用户创建对象频繁,新生代晋升老年代),就会出现Concurrent Mode Failure
  • 出现Concurrent Mode Failure会怎样?
  • 触发Full GC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Audacity 技术浅析(一)

Audacity 是一个开源的音频编辑工具,虽然它主要用于音频编辑和处理,但也可以通过一些插件和功能实现基本的音频生成功能。 1. Audacity 的音频生成基础 Audacity 的音频生成主要依赖于其内置的生成器、效果器以及 Nyquist 编程语言。这些工具允许用户创…

G-Star 公益行起航,挥动开源技术点亮公益!

公益组织,一直是社会温暖的传递者,但在数字化浪潮中,也面临着诸多比大众想象中复杂的挑战:项目管理如何更高效?志愿者管理又该如何创新?宣传推广怎么才能更有影响力?内部管理和技术支持又该如何…

MongoDB 数据导出与导入实战指南(附完整命令)

1. 场景说明 在 MongoDB 运维中,数据备份与恢复是核心操作。本文使用 mongodump 和 mongorestore 工具,演示如何通过命令行导出和导入数据,解决副本集连接、路径指定等关键问题。 2. 数据导出(mongodump) 2.1 导出命…

京东 h5st 5.1 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向分析 学习了2天某物,f…

CentOS 系统安装 docker 以及常用插件

博主用的的是WindTerm软件链接的服务器,因为好用 1.链接上服务器登入后,在/root/目录下 2.执行以下命令安装docker sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo…

不像人做的题————十四届蓝桥杯省赛真题解析(上)A,B,C,D题解析

题目A:日期统计 思路分析: 本题的题目比较繁琐,我们采用暴力加DFS剪枝的方式去做,我们在DFS中按照8位日期的每一个位的要求进行初步剪枝找出所有的八位子串,但是还是会存在19月的情况,为此还需要在CHECK函数…

【redis】set 类型:基本命令

文章目录 基本概念SADD 和 SMEMBERSSCARDSPOPSRANDMEMBERSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 命令小结内部编码 基本概念 谈到一个属于,这个术语可能有多种含义,set 集合设置(和 get 相对应&#xff09…

C 语言进【进阶篇】之动态内存管理:从底层机制到实战优化

目录 🚀前言🌟动态内存分配的必要性🤔动态内存分配函数深度剖析💯malloc函数:内存申请的主力军💯free函数:释放内存的“清道夫”💯calloc函数:初始化内存的利器&#x1f…

2023华东师范大学计算机复试上机真题

2023华东师范大学计算机复试上机真题 2022华东师范大学计算机复试上机真题 2021华东师范大学计算机复试上机真题 2023华东师范大学计算机复试机试真题 2022华东师范大学计算机复试机试真题 2021华东师范大学计算机复试机试真题 在线评测:传送门:pgcode.…

Mac下安装Zed以及Zed对MCP(模型上下文协议)的支持

Zed是当前新流行的一种编辑器,支持MCP(模型上下文协议) Mac下安装Zed比较简单,直接有安装包,在这里: brew install --cask zedMac Monterey下是可以安装上的,亲测有效。 配置 使用CtrlShiftP…

Spring Boot 约定大于配置:实现自定义配置

文章目录 Spring Boot 约定大于配置:实现自定义配置引言1. Spring Boot 的约定大于配置2. 自定义配置的需求3. 实现自定义配置的步骤4. 示例:自定义 Spring MVC 配置4.1 创建自定义配置类4.2 创建自定义拦截器4.3 测试自定义配置 5. 其他自定义配置场景5…

交易系统优化方案

证券交易系统优化方案 一、选股策略体系 (一)择时策略矩阵 尾盘集中筛选法(14:30后)聚焦量价异动个股,捕捉次日溢价机会早盘转债套利法(9:25-10:00)通过可转债与正股联动性捕捉日内机会龙头战法(全时段)行业板块强度排序,锁定前三大市值龙头容量资金战法(中盘股适用…

在线Doc/Docx转换为PDF格式 超快速转换的一款办公软件 文档快速转换 在线转换免费转换办公软件

小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一项非常实用的在线服务——将Doc或Docx格式的文档快速转换为PDF格式。这项服务不仅操作简单,而且转换效率高,非常适合需要频繁处理文档转换的用户。 服务特点: 批量转换&#x…

java学习总结(四)MyBatis多表

一、多表结构 学生表、班级表、课程表、班级课程表 二、一对一 一个学生只属于一个班级。 查询:id name age gender banjiName SELECT s.id,s.name,s.age,s.gender,b.id AS banjiId,b.name AS banjiName FROM student AS s INNER JOIN banji AS b ON s.banji_id…

大语言模型学习及复习笔记(1)语言模型的发展历程

1.大模型进入人们视野 ChatGPT 于2022年11月底上线 模型名称 发布时间 核心突破 GPT-3 2020年6月 首款千亿参数模型,少样本学习 GPT-3.5-Turbo 2022年11月 对话能力优化,用户级应用落地 GPT-4 2023年3月 多模态、强逻辑推理 GPT-4o / GPT-4…

【NLP】 3. Distributional Similarity in NLP(分布式相似性)

Distributional Similarity in NLP(分布式相似性) 分布式相似性(Distributional Similarity) 是自然语言处理(NLP)中的核心概念,基于“相似的单词出现在相似的上下文中”这一假设。它用于衡量单…

【C#学习】协程等待

来源GPT,仅记录学习 yield return WaitForEndOfFrame() 适用于 渲染结束后再执行代码,但 WebGL 可能不适合这个操作,会拖慢帧率。(渲染得太慢) yield return null; 让代码在下一帧的 Update() 里继续运行,更加流畅。 …

【项目】负载均衡式在线OJ

负载均衡式在线OJ 目录 负载均衡式在线OJ 1.项目介绍: 2.comm 2.1 log.hpp 日志等级 开放式日志 时间戳工具 2.2 util.hpp TimeUtil类 PathUtil类 FileUtil类 StringUtil类 3.Compile_server 3.1compile_run.hpp RemoveTempFile CodeToDesc Start 3.…

实现“XXX一张图“进行环境设施设备可视化管理

实现“电网一张图”、“铁路一张图”、“水库一张图”、“森林一张图”等概念,本质上是将某一领域的空间数据、设施设备、运行状态等信息整合到一个统一的数字化平台上,实现全域可视化、智能化管理和协同运营。这种“一张图”模式依赖于地理信息系统(GIS)、物联网(IoT)、…

《基於Python的网络爬虫抓包技术研究与应用》

## 摘要 本文探讨了基于Python的网络爬虫抓包技术及其应用。随着互联网数据的快速增长,网络爬虫技术在数据采集和分析中扮演着越来越重要的角色。本研究首先介绍了网络爬虫的基本概念和Python在爬虫开发中的优势,然后深入分析了抓包技术的原理和常用工具…