Table of Contents
JVM 메모리 #
프로그램을 실행하기 위한 데이터 및 명령어를 저장하는 공간을 말한다. 즉 응용프로그램이 실행되면 JVM은 이 메모리를 사용하게 된다.
왜 JVM 메모리 구조를 알아야 하는가? #
- 같은 기능의 프로그램이더라도 메모리 관리에 따라 성능이 좌우된다.
- 메모리 관리가 되지 않은 경우 속도저하 현상이나 튕김 현상 등이 일어날 수 있다.
- 한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위함이다.
그림1.정보시스템 성능저하 요인
JVM 메모리 구조 #
용어 | 설명 |
---|---|
JAVA Source | 사용자가 작성한 JAVA 코드 |
JAVA Compiler | JAVA 코드를 Byte Code로 변환시켜주는 기능 |
Class Loader | Class 파일을 메모리(Runtime Data Area)에 적재하는 기능 |
Execution Engine | Byte Code를 실행 가능하게 해석해주는 기능 |
Runtime Data Area | 프로그램을 수행하기 위해 OS에서 할당 받은 메모리 공간 |
그림2.JVM 메모리구조
JVM 메모리 주요 영역 #
메서드 영역(method area) #
Class Area 로 불리어 진다. 클래스파일을 읽어서 분석하여 클래스에 대한 정보(데이터)를 이곳에 저장한다.
힙(heap #
인스턴스가 생성되는 공간으로서 new 연산자로 생성된 객체와 배열을 저장하는 공간이다. 클래스 영역에 로드된 클래스만 생성이 가능하다.
호출스택(call stack 또는 execution stack) #
메서드가 호출될 때, 스택구조로 메모리가 할당되는 공간이다. 즉 실행되는 순서에 따라 실행되는 Last In First Out(LIFO) 방식을 취한다.
참조 #
정보시스템 성능관리 지침(정보통신부)
http://stophyun.tistory.com/37