JVM的Eden由來
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
相關文章
- JVM GC調優一則–增大Eden Space提高效能JVMGC
- WebAssembly 的由來Web
- Java的由來(轉)Java
- Oracle裡scott的由來Oracle
- 「遊戲文化」文集的由來遊戲
- 請問FormThread的來由?ORMthread
- Oracle scott/tiger的由來Oracle
- WebSocket的故事(一)—— WebSocket的由來Web
- REST架構風格的由來REST架構
- 敏捷團隊中的QA由來敏捷
- R2的版本由來薦
- 首個計算機 Bug 的由來計算機
- 連結器 ld 名稱的由來
- 遊戲付費制度的由來與過往遊戲
- Android觸控事件(上)——事件的由來Android事件
- 專案管理辦公室 (PMO) 由來專案管理
- 由Nodejs來說I/ONodeJS
- 探究Android View 繪製流程,Canvas 的由來AndroidViewCanvas
- 未來的方向:由 Java 到 Kotlin 轉變JavaKotlin
- Smartbi電子表格軟體產品的由來
- 哦?原來這就是 JVM 垃圾!JVM
- 一些奇怪的 unix 指令名字的由來(轉)
- WPF:MVVM的由來與屬性繫結的過程MVVM
- HTTP 200 OK和HTTP 304 Not modified的由來HTTP
- 移動端動態化的由來,你知道嗎?
- 由一張圖來理解javascript中的原型和原型鏈JavaScript原型
- MySQL中的Percona-toolkit工具由來漫談MySql
- Linux應該由誰來領導?Linux
- 【譯】談談“typeof null為object”這一bug的由來NullObject
- CSS偽類與CSS偽元素的區別及由來CSS
- LSM樹由來、設計思想以及應用到HBase的索引索引
- 告訴你Zynga, Twitter 等公司名字的由來
- 【技術分享】FMEA到底由誰來做?
- nub備份安裝目錄/openv由來
- 一起來梳理JVM知識點JVM
- 禁止JVM執行外部命令Runtime.exec–由ApacheCommonsCollections漏洞引發的思考JVMApache
- 由 GraphQL 來思考如何做一個好的 API DesignAPI
- ERP專案應該由誰來主導?