2018. 3. 27. 09:15 개발

Garbage Collector

Garbage Collector


http://d2.naver.com/helloworld/1329


http://wanzargen.tistory.com/15


http://12bme.tistory.com/57


Java - SE - 기본, 요즘은 SE로 가고 있다. 

- EE - 기업, 서블릿 lib 포함, -> Sun에서 지원 중단, 아파치 쪽에서 가져갈 듯.


JDK  - JVM + lib + 컴파일러(개발환경) -> 개발자들이 주로 사용.

     - 서버사이드에는 JDK를 깔지 않는다.(exe파일로 인한 해커들의 공격떄문에) 왜?


JRE  - JVM + lib  -> 실행환경


xx.java -> (use javac) -> class -> java -> jvm -> 윈도우, 리눅스


JVM 구조

  - 클래스, 메소드, static 영역 -> 메타데이터

  - 스택 -> 실행되는 메소드

  - 힙 -> 인스턴스


OOM -> out of memory -> XML 옵션의 줘서 설정가능.



GC - 대체적으로 잘 작동하지는 않아.

영역1 - Eden, Survivor 1, 2

영역2 - OLD

영역3 - PEM


처음에 무조건 Eden으로 올린다. -> 사이즈가 풀이 나면 에덴의 것을 Survivor 1 으로 옮기고 에덴을 비워줌.

Survivor 1이 차면 2로 옮기고 비워줌. -> 똑같이, 차면 OLD.

OLD가 차면 Major GC 가 작동(분단위, 시스템 프로세스가 정지되는 문제.), 앞쪽에서는 마이너 GC가 작동.


OLD를 너무 크게작으면 멈추고 넘기는 시간이 오래걸리는 JVM의 문제.

'개발' 카테고리의 다른 글

Spring 흐름  (0) 2018.05.21
부모 추상 인터페이스  (0) 2018.04.03
TDD와 BDD 차이점  (0) 2018.03.24
NoSQL  (0) 2018.03.24
Spring 1  (0) 2018.02.03
Posted by 커다란꼬꼬마

블로그 이미지
커다란꼬꼬마

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.4
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함