2020/2/16

JVM構造(下)


  • 參考網址
  • 何謂GC回收?
    • 分代收集算法
      • 根據各區特性使用不同算法
    • 特性
      • GC次數較頻繁收集於Heap Young區
      • GC次數較少收集於Heap Old區
      • 基本上不動的收集於Perm區
  • Heap Young
    • 複製算法( Copying )
      • 當Eden內存滿時 , Minor GC清空Eden區 , 將 From區與Eden區存放於To區
      • From區與To區的內存不斷進行複製、移動、整理
      • 優點 : 內存碎片減少、效率高
      • 缺點 : 需要2倍內存空間、
  • Heap Old
    • 標記清除( Mark-Swap )
      • 第一次掃描進行標記
      • 第二次掃描進行清除
      • 優點 : 不浪費內存空間(不用2倍內存)
      • 缺點 : 掃描兩次、產生內存碎片
    • 標記壓縮( Mark-Compact )
      • 第一次掃描標記
      • 第二次掃描移動(壓縮)
      • 優點 : 無內存碎片
      • 缺點 : 掃描兩次
    • 標記清除壓縮( Mark-Swap-Compact )
      •  Mark-Swap + Mark-Compact
      • 多次 Mark-Swap GC之後才做Mark-Compact
      • 優點 : 減少移動成本
  • 3種垃圾回收方式
    • 串行 serial 
      • 單線呈進行垃圾回收
    • 並行 
      • 多線呈進行垃圾回收, 回收期間暫停程序
    • 並發
      • 多線呈進行垃圾回收, 回收期間暫停程序

沒有留言:

張貼留言

test2