역할

  • OS와 JAVA 사이에 중계역할.(어떠한 OS에 적용가능.)
  • Memory관리.
  • Garbage Collation 수행.
  • Heap, Stack 기반 동작.

구조

JVM 구성도

  • JAVA Source : 사용자가 작성한 Java코드.
  • JAVA Compiler : JAVA 코드를 Byte Code로 변환시켜주는 기능.
  • Class Loader : Class 파일을 메모리(Runtime Data Area)에 적재하는 기능.(자바 application 실행중일 때 이런작업이 수행됨. )
  • Excution Engine : Byte Code를 실행 가능하게 해석해주는 기능.
  • Garbage Collaction : 참조되지 않는 객체들을 탐색 후 삭제하는 기능.
  • Runtime Data Area : 프로그램을 수행하기 위해 OS에서 할당 받은 메모리 공간.
Method Area
클래스, 변수, 메소드, Static변수, 상수 정보를 저장.

Stack Area
1. 메소드 호출 시, 각각의 스택프레임이 생성.
2. 메소드 안에서 사용되어지는 값들을 저장. 호출된 메소드의 매개변수,지역변숭,리턴값 및 연산 시 일어나는 값들을 임시로 저장.
3. 메소드 수행이 끝나면 프레임별로 삭제.
Native Method Stack area
자바 외의 다른언어에서 제공되는 메소드들의 저장되는 공간.
PC Register
Thread 생성 될 때마다 생성되는 공간.
Thread가 어떤 부분을 어떤 명령으로 실행할지에 대한 기록.
현재 실행되는 부분의 명령과 주소를 저장.
Heap Area
JVM heap memory 구조

'서버 > 성능과 튜닝' 카테고리의 다른 글

톰켓(Tomcat) 성능 튜닝하기  (0) 2020.05.19
성능테스트 프로세스  (0) 2020.05.19
API 성능테스트 시 고려사항  (0) 2020.05.06
JVM GC 알고리즘 및 튜닝  (0) 2020.02.09
JVM 설정하기  (0) 2020.02.09

+ Recent posts