Skip to content

자바가상머신(Java Virtual Machine, JVM) 메모리구조 #

Find similar titles

5회 업데이트 됨.

Edit

JVM 메모리 #

프로그램을 실행하기 위한 데이터 및 명령어를 저장하는 공간을 말한다. 즉 응용프로그램이 실행되면 JVM은 이 메모리를 사용하게 된다.

왜 JVM 메모리 구조를 알아야 하는가? #

  • 같은 기능의 프로그램이더라도 메모리 관리에 따라 성능이 좌우된다.
  • 메모리 관리가 되지 않은 경우 속도저하 현상이나 튕김 현상 등이 일어날 수 있다.
  • 한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위함이다.

Image
그림1.정보시스템 성능저하 요인

JVM 메모리 구조 #

용어 설명
JAVA Source 사용자가 작성한 JAVA 코드
JAVA Compiler JAVA 코드를 Byte Code로 변환시켜주는 기능
Class Loader Class 파일을 메모리(Runtime Data Area)에 적재하는 기능
Execution Engine Byte Code를 실행 가능하게 해석해주는 기능
Runtime Data Area 프로그램을 수행하기 위해 OS에서 할당 받은 메모리 공간

Image
그림2.JVM 메모리구조

JVM 메모리 주요 영역 #

메서드 영역(method area) #

Class Area 로 불리어 진다. 클래스파일을 읽어서 분석하여 클래스에 대한 정보(데이터)를 이곳에 저장한다.

힙(heap #

인스턴스가 생성되는 공간으로서 new 연산자로 생성된 객체와 배열을 저장하는 공간이다. 클래스 영역에 로드된 클래스만 생성이 가능하다.

호출스택(call stack 또는 execution stack) #

메서드가 호출될 때, 스택구조로 메모리가 할당되는 공간이다. 즉 실행되는 순서에 따라 실행되는 Last In First Out(LIFO) 방식을 취한다.

참조 #

정보시스템 성능관리 지침(정보통신부)
http://stophyun.tistory.com/37

Suggested Pages #

0.0.1_20230725_7_v68