1.  경험
   - 웹 서비스 또는 솔루션을 운영하면서 jvm 옵션을 변경을 다양한 경험 하기 (heap memory, gc algorithm, gc pause, logging)
   튜닝하면서 자연스럽게 인터넷에 흩어져 있는 자료들을 보면서 깊지 않은 공부 (오라클 또는 썬 문서)를 많이 본다.
   - Memory Management in the Java HotSpot™ Virtual Machine (http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf)

2. 학습 필요
   - 데니스 리치가 쓴 c programming lanuguage의 chap 8 장 (malloc, free) - 기본 중의 기본.
   - The Garbage Collection Handbook The Art of Automatic Memory Management
   - Garbage Collection: Algorithms for Automatic Dynamic Memory Management
   (운영체제와 컴파일러에 정통하신 분은 금방 보는 참고서일뿐 ......ㅡ.ㅡ;;)

3. 주화입마 될 수 있다. jdk쪽은 좀 복잡함. 머리속을 gc 를 하겠다는 생각으로 봐야함..
   - 오픈 소스 보기
      parrot (https://github.com/parrot/parrot/blob/master/src/gc/gc_gms.c)
      jdk7 (http://hg.openjdk.java.net/jdk7/modules/hotspot/file/9646293b9637/src/share/vm/gc_implementation/)
      qish (http://starynkevitch.net/Basile/qishintro.html )
      mono (http://mono-project.com/Generational_GC, https://github.com/mono/mono/tree/e4b9b8802066f6ed8cca151fe8cddcb4f3262806/mono/metadata 에서 gc.c)
      v8 (http://code.google.com/p/v8/source/browse)의 heap.cc, spaces.cc,  mark-compact.cc
     jikesrvm (http://sourceforge.net/projects/jikesrvm/files/jikesrvm/3.1.1/ )의 rvm\src\org\jikesrvm\mm\mminterface 클래스파일들
 - 논문 보기
     IEEE, ACM, 다양한 paper를 참조하고 reference를 찾아서 보기
     (http://scholar.google.co.kr/scholar?hl=ko&lr=&q=related:ppTY-k29HfoJ:scholar.google.com/&um=1&ie=UTF-8&ei=3Tw1T__XHOGTiQeW2ID2AQ&sa=X&oi=science_links&ct=sl-related&resnum=4&ved=0CF0QzwIwAw)

  
나는 다 보지는 못했고 계속 공부중..

 

Posted by '김용환'
,