GC 分代回收算法

1、首先了解JVM堆内存是如何分配的。

年轻代内部  生成区 和 S0 S1 的比例 默认情况下是 8:1 :1
堆内存和永久代存储的内容有区别: 
堆内存主要存储的是 : 对象,GC机制主要回收的就是这个
永久代存储的是: 也被称为方法区、存储程序中长期存活的对象 类似  元数据方法常量及属性等

 元空间:jdk8 之后就没有永久代的概念的 取而代之的是叫 元空间 
元空间和 永久代的区别是 
  • 元空间使用的是本地的内存而不是 JVM空间
  • 字符串常量 由永久代 移动到 堆内存中
以下是元空间的配置参数:
  • MetaspaceSize :初始化元空间大小,控制发生GC阈值
  • MaxMetaspaceSize : 限制元空间大小上限,防止异常占用过多物理内存



怎样避免多次FullGC?
  • 避免定义过大的对象(数组)
  • 避免将过大对象定义为静态变量

GC 分代回收算法的更多相关文章

  1. jvm 分代回收算法通俗理解

    jvm区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分: ...

  2. JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)

    引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力. 那么分代搜集算法是怎么处理GC的呢? 对象分 ...

  3. GC算法精解(五分钟教你终极算法---分代搜集算法)

    GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们 ...

  4. JVM内存管理之GC算法精解(五分钟教你终极算法---分代搜集算法)

    引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力. 那么分代搜集算法是怎么处理GC的呢? 对象分 ...

  5. JVM之GC算法、垃圾收集算法——标记-清除算法、复制算法、标记-整理算法、分代收集算法

    标记-清除算法 此垃圾收集算法分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记对象,它的标记过程前面已经说过——如何判断对象是否存活/死去 死去的对象就会 ...

  6. JVM调优-Java垃圾回收之分代回收

    为什么要进行分代回收? JVM使用分代回收测试,是因为:不同的对象,生命周期是不一样的.因此不同生命周期的对象采用不同的收集方式. 可以提高垃圾回收的效率. Java程序运行过程中,会产生大量的对象, ...

  7. Python的垃圾回收机制(引用计数+标记清除+分代回收)

    一.写在前面: 我们都知道Python一种面向对象的脚本语言,对象是Python中非常重要的一个概念.在Python中数字是对象,字符串是对象,任何事物都是对象,而它们的核心就是一个结构体--PyOb ...

  8. JVM内存管理--分代搜集算法

    对象分类 分代搜集算法是针对对象的不同特性,而使用适合的算法,这里面并没有实际上的新算法产生.与其说分代搜集算法是第四个算法,不如说它是对前三个算法的实际应用. 首先我们来探讨一下对象的不同特性,接下 ...

  9. 深入理解jvm--分代回收算法通俗理解

    1.通俗的理解java对象的这一辈子 我是一个普通的java对象,我出生在Eden区,在Eden区我还看到和我长的很像的小兄弟,我们在Eden区中玩了挺长时间.有一天Eden区中的人实在是太多了,我就 ...

  10. JVM-GC算法(三)-分代收集算法

    对象分类 上次已经说过,分代收集算法是针对对象的不同特性,而使用合适的算法,这里面并没有实际上的新算法产生.与其说分代收集算法是第四个算法,不如说它是对前三个算法的实际应用.  首先我们来探讨一下对象 ...

随机推荐

  1. 一文讲透 Redis 事务 (事务模式 VS Lua 脚本)

    准确的讲,Redis 事务包含两种模式 : 事务模式 和 Lua 脚本. 先说结论: Redis 的事务模式具备如下特点: 保证隔离性: 无法保证持久性: 具备了一定的原子性,但不支持回滚: 一致性的 ...

  2. 活字格性能优化技巧(3):如何巧用CDN提升含页面的访问速度

    本文由葡萄城技术团队于博客园原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上两篇中我们分享了如何利用数据库主键和表格设置默认不加载数据来提升应用 ...

  3. systemctl 命令设置开机自启动失败

    哈喽大家好,我是咸鱼.今天跟大家分享一个关于 Linux 服务(service)相关的案例   案例现象 我在 3 月 31日的时候发表了一篇<shell 脚本之一键部署安装 Nginx> ...

  4. 带你揭开神秘的javascript AST面纱之AST 基础与功能

    作者:京东科技 周明亮 AST 基础与功能 在前端里面有一个很重要的概念,也是最原子化的内容,就是 AST ,几乎所有的框架,都是基于 AST 进行改造运行,比如:React / Vue /Taro ...

  5. 解决flex布局中justify-content设置成space-between后因数据问题导致最后一行布局错乱

    在常用的flex布局中,当页面展示商品时,因为数据的不确定,导致justify-content设置成space-between,最后一行布局错乱 1 <!DOCTYPE html> 2 & ...

  6. jdk1.8 LocalTime、LocalDate、LocalDateTime 使用大全

    目录 LocalTime.LocalDate.LocalDateTime 区别 LocalTime.LocalDate.LocalDateTime 使用 now 获取当前 时刻.日期.时间 of 获取 ...

  7. java生成机器码

    java根据系统参数生成每个计算机的唯一标识. 1. 获取CPU序列号 /** * 获取CPU序列号 * @return * @throws IOException */ public static ...

  8. Appweb配置

    Appweb配置       具体配置网页=> https://www.embedthis.com/appweb/doc/users/configuration.html         具体参 ...

  9. Amazon S3 对象存储Java API操作记录(Minio与S3 SDK两种实现)

    缘起 今年(2023年) 2月的时候做了个适配Amazon S3对象存储接口的需求,由于4月份自学考试临近,一直在备考就拖着没总结记录下,开发联调过程中也出现过一些奇葩的问题,最近人刚从考试缓过来顺手 ...

  10. MASAMinimalAPI:创建MinimalAPI项目

    项目准备 1.创建项目,选择webapi.取消勾选使用控制器.创建minimal Api项目 2.创建成功后MinimalAPI的接口直接写在program.cs中 3.引入nuget包:Masa.C ...