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

JVM Optimization Learning(五)

一、JVM Optimization

1、G1

G1官网说明:Garbage First Garbage Collector Tuning

The Garbage First Garbage Collector (G1 GC) is the low-pause, server-style generational 
garbage collector for Java HotSpot VM. The G1 GC uses concurrent and parallel phases 
to achieve its target pause time and to maintain good throughput. When G1 GC determines 
that a garbage collection is necessary, it collects the regions with the least live data 
first (garbage first).
G1是Java HotSpot VM的低暂停、服务器端应用的垃圾收集器。G1 GC使用并行和并行阶段来实现其目标暂停
时间并保持良好的吞吐量。当G1GC确定有必要进行垃圾收集时,它首先收集具有最少活动数据的区域
(垃圾优先)。

分而治之+分层模型

G1内存模型

humongous:/hjuːˈmʌŋɡəs/ 巨大的、庞大的

it collects the regions with the least live data first (garbage first).垃圾优先

特点:

并发收集

压缩空闲空间不会延长GC的暂停时间

更易预测的GC暂停时间

适用不需要实现很高的吞吐量的场景

        每个分区都可能是年轻代也可能是老年代,但是在同一时刻只能属于某个代。
        年轻代、幸存区、老年代这些概念还存在,成为逻辑上的概念,这样方便复用之前分代框架的逻辑。在物理上不需要连续,则带来了额外的好处——有的分区内垃圾对象特别多,有的分区内垃圾对象很少,G1会优先回收垃圾对象特别多的分区,这样可以花费较少的时间来回收这些分区的垃圾,这也就是G1名字的由来,即首先收集垃圾最多的分区。
        新生代其实并不是适用于这种算法的,依然是在新生代满了的时候,对整个新生代进行回收——整个新生代中的对象,要么被回收、要么晋升,至于新生代也采取分区机制的原因,则是因为这样跟老年代的策略统一,方便调整代的大小。
        G1还是一种带压缩的收集器,在回收老年代的分区时,是将存活的对象从一个分区拷贝到另一个可用分区,这个拷贝的过程就实现了局部的压缩。每个分区的大小从1M到32M不等,但是都是2的幂次方。

JVM Optimization Learning(四)

不断学习才能不断提高!
生如蝼蚁,当立鸿鹄之志,命比纸薄,应有不屈之心。
乾坤未定,你我皆是黑马,若乾坤已定,谁敢说我不能逆转乾坤?
努力吧,机会永远是留给那些有准备的人,否则,机会来了,没有实力,只能眼睁睁地看着机会溜走。


http://www.kler.cn/news/157465.html

相关文章:

  • vue3使用vuex 集中式管理状态数据
  • 6、原型模式(Prototype Pattern,不常用)
  • 从遍历到A星寻路
  • 备忘录不小心删了怎么办?如何找回我的备忘录?
  • 加载预训练权重时不匹配
  • 数据库事务
  • C/C++ 原生套接字抓取FTP数据包
  • 【Cadence Allegro17.4】
  • nginx部署和安装-后端程序多端口访问-后端代理设置
  • Python实现FA萤火虫优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战
  • 基于Eclipse+Mysql+Tomcat开发的 教学评价管理系统
  • using meta-SQL 使用元SQL 六
  • mfc项目设置软件版本
  • Unity Canvas、Canvas Scaler、Graphic Raycaster、EventSystem 组件详解
  • 分享 | 顶刊高质量论文插图配色(含RGB值及16进制HEX码)(第一期)
  • 基于SSM的图书馆管理系统的设计与实现
  • 【论文阅读】1 SkyChain:一个深度强化学习的动态区块链分片系统
  • 【滤波第二期】中值滤波的原理和C代码
  • 【开源】基于Vue和SpringBoot的音乐偏好度推荐系统
  • 跨网文件摆渡系统:安全、可控的数字传输桥梁
  • MyBatis查询优化:枚举在条件构建中的妙用
  • 写给初学者的 HarmonyOS 教程 -- 状态管理(@State/@Prop/@Link 装饰器)
  • linux 应用开发笔记---【标准I/O库/文件属性及目录】
  • PTA 一维数组7-3出生年(本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话)
  • C++算法入门练习——最大连续子序列和
  • vue2+electron桌面端一体机应用
  • golang实现函数yamlToStruct(infile,outFile)
  • 如何拆解Unity 2022.3版本的AssetBundle
  • GB/T 29734.1-2013 铝木复合门窗检测
  • 基于SSM的老年公寓信息管理的设计与实现