際際滷

際際滷Share a Scribd company logo
About Garbage Collection

Rendered : October 25, 2012

gmind7
Garbage Collection(GC)
讌蠏麹 螳語願 譯手  蠍一 襾殊 覦る, 螳觜讌
貉(Garbage Collection, 危 GC)   螻 襦 
レ 譬 Java 螳覦手 螳. GC 螻殊 蟯 螳讌 
朱 蠏覈螳 殊 伎 襴貅伎  覲 蟆渚 
蟆. , 企 GC 螻襴讀  蟆語 螻覩狩 覃
れる  襴貅伎 轟  危危螻 り 覲
 給. 企  蠍一 覲危ク伎 讌襷, GC 
危企 襯 Java 螳覦螳 蠍   譟郁唄企朱 一
覲るジ 願岡  蟆

 GC

? (磯蠍 襴)

program(螳豌)  郁  memory 螻糾 譴  伎 一 
memory  Garbage手 覃 企ゼ 襴 螻殊 Garbage Collection
企 .

 stop-the-world
start

GC

stop

start

GC襯 ろ蠍  JVM 襴貅伎 ろ 覃豢 

2
How Garbage Collection works in Java
 JVM

Young :
Old :
Prem :
3

memory Area

襦蟆 燕 螳豌伎 覿覿 蠍一 豺.   螳豌願 殊 Minor GC螳 覦
Young  伎 螳豌願 蠍磯 覲旧.   螳豌願 殊  Major GC(轟 Full GC)螳 覦
螳豌企 給(intern) 覓語 覲企ゼ ロ 螻. Static 覲, 蠍一 GC螳 覦企 Major GC
How Garbage Collection works in Java
 JVM

Generational GC

Minor Collections (Young)
蠍 讌 朱  螳豌企 覿覿 朱 讌讌   朱襦 譯 GC襯   螳 豢 

Major Collections (Old, Perm)  Full GC
4

る 伎 螳豌企 蠏 螳 螻 譯   螳豌企 GC  讌 讌襷 螳 蠍語 企ゼ
願屋蠍  GC Algorithm  豕
How Garbage Collection works in Java
 JVM

GC Algorithm

Serial/Paraller : 覈 Garbage襯 谿襦襦 殊 豺磯 / 螳 豺磯.
Stop-the-World / Concurrent
GC  Program Stop る / GC Program 螳 ろ 

Compacting / Non-compacting / Copying
GC   覃覈襴螻糾譟郁覈 / NON-譟郁覈 / 轟覲旧 豢伎

5
How Garbage Collection works in Java
 Young

Generation GC Cycle

Eden

Eden

Eden

clear

Allocation()

clear
S0

S1

Eden

S0

S1

Eden

Old Generation

clear

S1

S0

S1

Promotion(轟)

clear

S0

S0

S1

Stop-the-world, copying
6

覃覈襴  覦覯 豢螳 谿語^ : bump-the-pointer, TLABs
How Garbage Collection works in Java
 JVM

Garbage Collector (old Generation GC)

 Serial

GC

 Refer

(-XX:+UseSerialGC)

Mark

Sweep
Compact

Sliding

 覃覈襴 Cpu 貊伎螳  襷 

7

to the Young
How Garbage Collection works in Java
 Parallel

GC

(-XX:+UseParallelGC)

 Parallel

Old GC

(-XX:+UseParallelOldGC)

Mark

Sumary
Compact
  螳豌企ゼ Mark
螳豌 
 GC 伎  螳豌企ゼ 覲

single
8

multi

Sliding
How Garbage Collection works in Java
 CMS

GC

(-XX:+UseConcMarkSweepGC)

企 襦 螳 螳蟾 螳豌 譴 伎 
螳豌 谿剰鍵, 覃豢 螳 襷れ 讌щ
覦蠍 伎り 誤 螳豌伎 谿語^螻  螳豌
れ 磯手覃伎 , るジ る  讌
Concurrent Mark 螻 襦 豢螳蟇磯
谿語^螳 蠍 螳豌企ゼ 
磯蠍磯ゼ 襴 , るジ る  讌

9

レ :
 :

stop-the-world 螳 襷れ 讌щ. 覈 襴貅伎  螳 襷れ 譴  CMS GC襯
覃, Low Latency GC手 覿襯碁
るジ GC 覦覲企 覃覈襴 CPU襯  襷 . Compaction 螻螳 蠍磯蓋朱 螻給讌 
譟郁 覃覈襴 螻糾 覓語 Compaction  ろ覃 stop-the-world   蠍瑚 讌  讌
How Garbage Collection works in Java
 G1

GC (JDK7 讌)
襷 襷螻  襷 CMS GC
豌危蠍  襷れ伎

10
How Garbage Collection works in Java
 JVM

11

Command line Options
How Garbage Collection Monitoring
 GC

Monitoring
CUI GC

GUI GC

CUI GC 覈磯 覦覯 'jstat'企朱 CUI 襴貅伎 伎 覦覯螻 JVM
 螳  '-verbosegc'朱 JVM 旧 伎

GUI GC 覈磯 覦覯 覲 GUI 襴貅伎 伎.  GUI 
襴貅伎  螳讌襯 蠎曙朱朱 'jconsole', VisualVM', 'VisualGC'襯   

12

excellect. VIsualVM & VisualGC & HPJMeter
together. Eclipse MAT(Memory Analyzer Tool)
How Garbage Collection Monitoring
 朱

13

 觜れ PermGen Out of memory
How Garbage Collection Monitoring
 GUI

GC Tool Demo

excellect. VIsualVM & VisualGC & HPJMeter
together. Eclipse MAT(Memory Analyzer Tool)

14
How Garbage Collection Tunning
 GC

Tunning  伎螳 覓伎語 蠏朱蓋   ?
覓企覲 螳豌 

螻朱  覃覈襴 

15
How Garbage Collection Tunning
 GC

Tunning  Target 企 ?

 old 朱 願 螳豌  豕 蠍 ( 覦覯 : New  蠍磯ゼ 譟一)
 Full GC 螳 譴願鍵 (蟇 血..螻)
 GC

16

焔レ 蟆一 旧 ?
How Garbage Collection Tunning
 GC

Tunning

 GC  覈磯

17

GC 螳 1豐~3豐, 蠏 伎
Batch 謂
觜 覲襦 GC  蠍一
螳 覈 覦觜襯 伎 
覃 蠏 蠍一 觜 覲襦 襴  
.
How Garbage Collection Tunning
 GC襯

危危 螳覦蠍 (profiler, mat襯 伎  豌危)
覓企覲 螳豌   
- aop, interceptor... 螳覦 襦讌.thread
覓企覲 襭 覲 ,
 String Parsing 朱
誤  覃覈襴  旧

18
How Garbage Collection Tunning
 GC

Case By Case 蟆郁骸 覿 (覯覲襦 襭  gc log襯 蠍)

企 case X覯 螳 豕
り 伎 るジ 觜れ
豕    .
19
Garbage Collection Reference
http://helloworld.naver.com/helloworld/helloworld/1329
http://helloworld.naver.com/helloworld/helloworld/6043
http://helloworld.naver.com/helloworld/helloworld/1329
http://ryudaewan.springnote.com/pages/145343
http://knight76.tistory.com/entry/JAXB-%EC%9E%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
Garbage Collection

gmind7

More Related Content

About garbage collection

  • 1. About Garbage Collection Rendered : October 25, 2012 gmind7
  • 2. Garbage Collection(GC) 讌蠏麹 螳語願 譯手 蠍一 襾殊 覦る, 螳觜讌 貉(Garbage Collection, 危 GC) 螻 襦 レ 譬 Java 螳覦手 螳. GC 螻殊 蟯 螳讌 朱 蠏覈螳 殊 伎 襴貅伎 覲 蟆渚 蟆. , 企 GC 螻襴讀 蟆語 螻覩狩 覃 れる 襴貅伎 轟 危危螻 り 覲 給. 企 蠍一 覲危ク伎 讌襷, GC 危企 襯 Java 螳覦螳 蠍 譟郁唄企朱 一 覲るジ 願岡 蟆 GC ? (磯蠍 襴) program(螳豌) 郁 memory 螻糾 譴 伎 一 memory Garbage手 覃 企ゼ 襴 螻殊 Garbage Collection 企 . stop-the-world start GC stop start GC襯 ろ蠍 JVM 襴貅伎 ろ 覃豢 2
  • 3. How Garbage Collection works in Java JVM Young : Old : Prem : 3 memory Area 襦蟆 燕 螳豌伎 覿覿 蠍一 豺. 螳豌願 殊 Minor GC螳 覦 Young 伎 螳豌願 蠍磯 覲旧. 螳豌願 殊 Major GC(轟 Full GC)螳 覦 螳豌企 給(intern) 覓語 覲企ゼ ロ 螻. Static 覲, 蠍一 GC螳 覦企 Major GC
  • 4. How Garbage Collection works in Java JVM Generational GC Minor Collections (Young) 蠍 讌 朱 螳豌企 覿覿 朱 讌讌 朱襦 譯 GC襯 螳 豢 Major Collections (Old, Perm) Full GC 4 る 伎 螳豌企 蠏 螳 螻 譯 螳豌企 GC 讌 讌襷 螳 蠍語 企ゼ 願屋蠍 GC Algorithm 豕
  • 5. How Garbage Collection works in Java JVM GC Algorithm Serial/Paraller : 覈 Garbage襯 谿襦襦 殊 豺磯 / 螳 豺磯. Stop-the-World / Concurrent GC Program Stop る / GC Program 螳 ろ Compacting / Non-compacting / Copying GC 覃覈襴螻糾譟郁覈 / NON-譟郁覈 / 轟覲旧 豢伎 5
  • 6. How Garbage Collection works in Java Young Generation GC Cycle Eden Eden Eden clear Allocation() clear S0 S1 Eden S0 S1 Eden Old Generation clear S1 S0 S1 Promotion(轟) clear S0 S0 S1 Stop-the-world, copying 6 覃覈襴 覦覯 豢螳 谿語^ : bump-the-pointer, TLABs
  • 7. How Garbage Collection works in Java JVM Garbage Collector (old Generation GC) Serial GC Refer (-XX:+UseSerialGC) Mark Sweep Compact Sliding 覃覈襴 Cpu 貊伎螳 襷 7 to the Young
  • 8. How Garbage Collection works in Java Parallel GC (-XX:+UseParallelGC) Parallel Old GC (-XX:+UseParallelOldGC) Mark Sumary Compact 螳豌企ゼ Mark 螳豌 GC 伎 螳豌企ゼ 覲 single 8 multi Sliding
  • 9. How Garbage Collection works in Java CMS GC (-XX:+UseConcMarkSweepGC) 企 襦 螳 螳蟾 螳豌 譴 伎 螳豌 谿剰鍵, 覃豢 螳 襷れ 讌щ 覦蠍 伎り 誤 螳豌伎 谿語^螻 螳豌 れ 磯手覃伎 , るジ る 讌 Concurrent Mark 螻 襦 豢螳蟇磯 谿語^螳 蠍 螳豌企ゼ 磯蠍磯ゼ 襴 , るジ る 讌 9 レ : : stop-the-world 螳 襷れ 讌щ. 覈 襴貅伎 螳 襷れ 譴 CMS GC襯 覃, Low Latency GC手 覿襯碁 るジ GC 覦覲企 覃覈襴 CPU襯 襷 . Compaction 螻螳 蠍磯蓋朱 螻給讌 譟郁 覃覈襴 螻糾 覓語 Compaction ろ覃 stop-the-world 蠍瑚 讌 讌
  • 10. How Garbage Collection works in Java G1 GC (JDK7 讌) 襷 襷螻 襷 CMS GC 豌危蠍 襷れ伎 10
  • 11. How Garbage Collection works in Java JVM 11 Command line Options
  • 12. How Garbage Collection Monitoring GC Monitoring CUI GC GUI GC CUI GC 覈磯 覦覯 'jstat'企朱 CUI 襴貅伎 伎 覦覯螻 JVM 螳 '-verbosegc'朱 JVM 旧 伎 GUI GC 覈磯 覦覯 覲 GUI 襴貅伎 伎. GUI 襴貅伎 螳讌襯 蠎曙朱朱 'jconsole', VisualVM', 'VisualGC'襯 12 excellect. VIsualVM & VisualGC & HPJMeter together. Eclipse MAT(Memory Analyzer Tool)
  • 13. How Garbage Collection Monitoring 朱 13 觜れ PermGen Out of memory
  • 14. How Garbage Collection Monitoring GUI GC Tool Demo excellect. VIsualVM & VisualGC & HPJMeter together. Eclipse MAT(Memory Analyzer Tool) 14
  • 15. How Garbage Collection Tunning GC Tunning 伎螳 覓伎語 蠏朱蓋 ? 覓企覲 螳豌 螻朱 覃覈襴 15
  • 16. How Garbage Collection Tunning GC Tunning Target 企 ? old 朱 願 螳豌 豕 蠍 ( 覦覯 : New 蠍磯ゼ 譟一) Full GC 螳 譴願鍵 (蟇 血..螻) GC 16 焔レ 蟆一 旧 ?
  • 17. How Garbage Collection Tunning GC Tunning GC 覈磯 17 GC 螳 1豐~3豐, 蠏 伎 Batch 謂 觜 覲襦 GC 蠍一 螳 覈 覦觜襯 伎 覃 蠏 蠍一 觜 覲襦 襴 .
  • 18. How Garbage Collection Tunning GC襯 危危 螳覦蠍 (profiler, mat襯 伎 豌危) 覓企覲 螳豌 - aop, interceptor... 螳覦 襦讌.thread 覓企覲 襭 覲 , String Parsing 朱 誤 覃覈襴 旧 18
  • 19. How Garbage Collection Tunning GC Case By Case 蟆郁骸 覿 (覯覲襦 襭 gc log襯 蠍) 企 case X覯 螳 豕 り 伎 るジ 觜れ 豕 . 19