zoukankan      html  css  js  c++  java
  • JVM(PART II)Eden Survivor名称由来

    JVM(PART II)Eden Survivor名称由来

    Eden:

    含义:伊甸园(The garden of Eden)

    Survivor:

    含义:幸存者

    GC:

    含义:Garbage Collection

    Stop the world event

    含义:地球停转事件,简称STW,即在执行垃圾收集算法时,Java应用程序的其他所有除了垃圾收集收集器线程之外的线程都被挂起

    为什么java的垃圾回收里会使用这几个名词来作为堆内存的名称呢?

    《创世纪》里的几个小故事:

    上帝创造人类

    上帝花了六天时间去创造万物,在第六天他按照自己的形象创造出人类(亚当),后来他感觉亚当一个人有点孤独,于是使用亚当的一根肋骨创造出了夏娃。并且把他们和很多动物植物都放在一个叫做伊甸园(The garden of Eden)。
    这里写图片描述

    亚当夏娃偷吃善恶果

    上帝告诉亚当和夏娃不要偷吃善恶树上的果子,但是在撒旦的诱惑下他们还是偷吃了,于是上帝把他们赶出了伊甸园。
    这里写图片描述

    该隐和他的弟弟

    亚当和夏娃有两个儿子,一个叫该隐,一个叫亚伯。该隐因为一件事嫉妒亚伯,把自己的弟弟亚伯给杀了。
    这里写图片描述

    诺亚方舟

    上帝感到人类的罪恶深重,于是他决定来一次大清洗,他的办法很简单——使用洪水(GC)。在这之前他让诺亚造了一个大船(诺亚方舟),在洪水来到的时候登上船的人和动物都没有死去(Survivor)。这些人和动物都开始重建家园。
    这里写图片描述

    再来看看java的堆内存:
    这里写图片描述

    《创世纪》和JVM的对于关系

    如果把《创世纪》中的人和动物比作JVM堆内存中的对象的话,还是列个表:


    《创世纪》 JVM
    伊甸园(The garden of Eden) Eden区
    诺亚方舟(Noah’s Ark) 两个Survivor区
    诺亚(Noah) GC算法
    大洪水(The flood) 一次Minor GC ——Stop the World event(地球转事件)
    幸存的人和动物 从Eden区进入Survivor区的对象
    被大洪水消灭的人和动物 被GC回收的对象

    这么一看这些比喻还是非常恰当的。


    转载自:https://blog.csdn.net/uncle_gy/article/details/78136966

  • 相关阅读:
    postman使用详解
    如何测试一个水杯
    selenium3(java)之屏幕截图操作
    C语言随机点名程序
    关于测试执行的一些总结与思考
    小议SQL数据插入
    BS架构和CS架构的区别
    Oracle伪列(ROWNUM)的使用
    Loadrunner学习资料
    【Apache运维基础(2)】主配置文件说明
  • 原文地址:https://www.cnblogs.com/k-class/p/13835357.html
Copyright © 2011-2022 走看看