본문 바로가기

heap4

[java] JVM의 메모리가 Xmx 설정보다 많이 먹는 이유 자바 응용프로그램을 실행하는 중에 Xmx를 4G로 설정했는데 실제 메모리는 7G를 먹고 있어서 원인을 확인해 보았습니다. Xmx는 힙의 최대 메모리를 설정하는 명령입니다. JVM은 힙외에 다양한 요소들로 구성되어 있고 이 부분이 메모리를 사용합니다. # Xmx: 힙의 최대 메모리 사이즈 # MaxPermSize: Permanent Size 최대 메모리 # Xss: 스레드에 할당되는 Stack 사이즈 Max memory = [-Xmx] + [-XX:MaxPermSize] + number_of_threads * [-Xss] 힙영영외 나머지 영역에서 메모리가 필요하여 사용메모리가 늘어납니다. GC: 가비지 수집을 위한 메모리. 사용 중인 개체의 추적을 위한 그래프 생성. G1GC는 더 많은 메모리를 사용합니다.. 2021. 2. 6.
[java] 메모리 누수와 힙 덤프 분석 프로그래밍에서 메모리 누수현상(Memory Leak)은 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 자바의 메모리 누수 현상은 이전글을 참고 바랍니다. 2019/07/02 - [개념] - [개념] 메모리 누수(Memory Leak) 현상 [개념] 메모리 누수(Memory Leak) 현상 프로그래밍에서 메모리 누수현상(Memory Leak)은 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 자바의 메모리 누수 자바에서 메모리 누수는 더이상 사용하지 않는 객체가 가비지 컬렉션(GC).. 118k.tistory.com 힙 덤프 생성 메모리 누수 문제가 발생하면 JVM의 힙 덤프를 이용하여 메모리에 어떤 객체가 생성되어 있는지를 확인할 수 있습니다. JDK와 함께 제공되는.. 2019. 6. 5.
[Java] JVM 메모리 구조 및 옵션 JVM의 메모리 구조를 알아보겠습니다. 메모리 공간 메모리 공간은 크게 힙영역과 힙영역이 아닌 공간으로 구분할 수 있습니다. 힙영역은 사용자가 크기를 정할 수 있는 공간입니다. Method : 클래스, 변수, 함수, 정적 변수, 상수 정보 등이 저장되는 영역. 프로그램 전체에서 공유 Stack : 함수 내에서 사용되는 매개변수, 지역변수, 리턴값 등이 저장되는 구역. PC Register: CPU의 Register와 역할이 비슷하고, 현재 수행중인 JVM 명령의 주소값이 저장 Native Method Stack: 네이티브 메소드 호출을 위해 할당되는 구역 Heap : new 명령어로 생성된 객체가 저장되는 영역. GC의 대상이 되는 영역 힙 영역 구조 힙영역은 가비지 콜렉션(GC)의 대상이 되는 영역입니.. 2019. 6. 4.
[개념] 스택(stack)과 힙(heap) 힙[heap]- new 연산을 이용하여 생성되는 객체의 저장 공간 - out of memory 가 발생하는 공간 스택[stack]- 컴파일러에 의해 사이즈가 결정- 지역변수, 매개변수 등을 위한 공간- 메소드가 호출될때 생성되었다가 사라진다. 2016. 2. 16.