`

hotSpot VM 内存堆的两个Servivor区

阅读更多

 今天看了一下 HotSpot JVM (下简称JVM)的内存管理,先来简单说说我的理解吧。


   JVM将堆分成了 二个大区  Young 和 Old 如下图:
   
     



   而Young 区又分为 Eden、Servivor1、Servivor2, 两个Survivor 区相对地作为为From 和 To 逻辑区域, 当Servivor1作为 From 时 , Servivor2 就作为 To, 反之亦然

   如下图:

   


   因此当Eden区满的时候 GC执行,这时会将 Eden 区和 From 区中还被引用的对象会被移到 To区 ,个别大对象和部分From对象在To已满的情况下会被放到Old区,如下图:

   



GC操作执行完之后 Eden和 From 区将会为空(无引用对象被回收,有引用对象被移到To和Old区) ,并且From 和 To在逻辑上的 概念调换 , From 概念上变成了To,To变成了From(如果Servior1 原来作为 From 区 ,现在Servior1 现在就作为 To 区),GC执行后结果如下图:

       

HotSpot VM 内存堆的两个Servivor区

分享到:
评论

相关推荐

    Troubleshooting Guide for Java SE 6 with HotSpot VM

    Troubleshooting Guide for Java SE 6 with HotSpot VM

    The Java HotSpot VM.pdf

    The Java HotSpot VM.pdf

    Java HotSpot VM Options

    jvm参数介绍,oracle HotSpot官方参数文档。

    Hotspot VM源码

    HotSpot正是目前世界上java虚拟机的...还有两个runtime编译器(compilers )实现,正是他们帮助我们把类的字节码文件转换成本地的机器指令。当然还有大约3个垃圾收集器以及一系列用来实现同步的高性能运行库文件等等。

    hotspot.tar.gz

    官方完整版JVM源码Hotspot VM,文件名hotspot.tar.gz。官方完整版JVM源码Hotspot VM,文件名hotspot.tar.gz。

    借HSDB来探索HotSpot VM的运行时数据.gist1

    It will be set after the class is loaded.VM Started: Set deferred breakpoint Tes

    hllvm.HotSpot VM Serial GC的一个问题1

    実装​》第4章4.4小节​. 每个版本的算法描述都稍微不同,我的伪代码也跟这两本书写的方式稍微不同,但背后要表达的核心思想是一样的就OK了.Tracing GC

    官方HotSpot内存管理文档

    官网HotSpot内存管理白皮书,对于jvm调优具有指导性意义

    借HSDB来探索HotSpot VM的运行时数据1

    DR版回答是:t1在存Java静态变量的地方, 概念上在JVM的方法区(method area)里t2在Java堆里, 作为Test的一个实例的字段存在t3在J

    java-jdk-hotspot源码

    学习JDK 源码必备,提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。 但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初...

    hllvm.借HSDB来探索HotSpot VM的运行时数据1

    DR版回答是:t1在存Java静态变量的地方, 概念上在JVM的方法区(method area)里t2在Java堆里, 作为Test的一个实例的字段存在t3在J

    Compilation in the HotSpot VM-Zoltan-Majo.pdf

    技术文档分享。

    Java Performance Companion(Addison,2016)

    The authors, who are all leading Java performance and Java HotSpot VM experts, help you improve performance by using modern software engineering practices, avoiding common mistakes, and applying tips ...

    JAVA虚拟机精讲

    《Java虚拟机精讲》以极其精练的语句诠释了HotSpot VM 的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法...

    Java.Performance.Companion.0133796825

    The authors, who are all leading Java performance and Java HotSpot VM experts, help you improve performance by using modern software engineering practices, avoiding common mistakes, and applying tips ...

    yarrow:[yarrow]基于JVMCI的HotSpot VM优化编译器

    我打算为HotSpot VM写一个优化的JIT编译器。 多亏了 JVMCI,我可以使用-XX:+EnableJVMCI -XX:+UseJVMCICompiler -Djvmci.Compiler=yarrow选项在运行时轻松地将编译器插入JVM。 由于JVMCI是一项实验性功能,因此仅将...

    Java虚拟机精讲.高翔龙.带书签完整版.pdf

    本书以极其精练的语句诠释了HotSpot VM 的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器...

    JAVA虚拟机精讲 pdf

    本书以极其精练的语句诠释了HotSpot VM 的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法、垃圾收集器...

    hotspot源码

    提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。

Global site tag (gtag.js) - Google Analytics