美文网首页
Java内存分代理论

Java内存分代理论

作者: 雁阵惊寒_zhn | 来源:发表于2020-09-15 10:00 被阅读0次

三种假说

  • 弱分代假说:绝大多数对象都是朝生夕灭的
  • 强分代假说:熬过越多次垃圾收集过程的对象就越难以消亡
  • 跨代引用假说:跨代引用相对于同代引用来说仅占极少数

三种假说是Java虚拟机分代设计的理论基础

  • 根据弱分代假说和强分代假说,虚拟机设计将堆内存空间划分为不同的区域,对象年龄的不同放置在不同的区域中;
  • 跨代引用假说是实现跨代引用的对象垃圾回收的理论,在对跨代引用对象进行垃圾回收时,不应该扫描整个老年代。

堆空间分代

经典的分代设计

划分新生代(Young Generation)和老年代(Old Generation)。

Appel式回收

新生代继续细分为伊甸园(Eden)空间和两块较小的Survivor空间。HotSpot虚拟机的Serial、ParNew、Parallel Scavenge等新生代收集器默认Eden和Survivor大小比例为8:1。

如下图Java8 HotSpot虚拟机GC日志,可以清楚看见新生代(PSYoungGen)被分为Eden空间(eden)和两块Survivor(from和to)空间,还有老年代(ParOldGen)和元空间(Metaspace)。


Parallel Scavenge + Parallel Old收集器的分代

相关文章

  • Java垃圾回收机制

    Java的内存分布 在JVM中,内存是按照分代进行组织的。 其中,堆内存分为年轻代和年老代,非堆内存主要是Perm...

  • Java内存分代理论

    三种假说 弱分代假说:绝大多数对象都是朝生夕灭的 强分代假说:熬过越多次垃圾收集过程的对象就越难以消亡 跨代引用假...

  • 8. JVM Memory Model and Visibili

    前言:JVM内存模型、Java内存区域、GC分代回收容易搞混。前面讲解了JVM内存区域,它是Java代码编译成.c...

  • GC 相关

    参考链接:http://www.iteye.com/topic/1119491 为了分代垃圾回收,Java堆内存分...

  • java内存分代模型(用于分代垃圾回收算法)

    内存分代模型分代模型并不是一种垃圾回收算法,而是一种内存管理模型。将java中的内存分为不同区域,在GC时不同区域...

  • jvm之GC:

    1.jvm相关,GC: Java内存分配和回收的机制概括的说,就是:分代分配,分代回收。对象将根据存活的时间被分为...

  • JVM调优

    一、JVM内存模型 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代...

  • java.lang.OutOfMemoryError解决方法

    1. java.lang.OutOfMemoryError: PermGen space 持久代内存溢出 持久代主...

  • JVM GC 原理 5:详解 G1 垃圾回收器

    基本原理 G1 垃圾回收器是从 CMS回收器是基于分代理论和分块理论的基础上发展而来的。 分代:根据 java 对...

  • jvm垃圾回收策略

    一、jvm堆内存的分代划分在基于分代的内存回收策略中,堆空间通常都被划分为3个代,年轻代,年老代(或者tenure...

网友评论

      本文标题:Java内存分代理论

      本文链接:https://www.haomeiwen.com/subject/pnjsektx.html