JVM 3

개발자 면접 질문 - 가비지 컬렉션 정의

1. 가비지 컬렉션(Garbage Collection) - 쓰레기(가비지)를 정리해주는 프로그램 - 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블록이나 객체를 찾아 자동적으로 다시 사용 가능한 자원으로 회수 2. 가비지 컬렉션 실행시점 - JVM이 메모리가 부족해지면 OS에 추가로 메모리 요청을 할 때 가비지 컬렉션이 실행된다. 3. 가비지 컬렉션 알고리즘 - 마킹 작업 : 사용중인 메모리와 사용하지 않는 메모리 식별 - 일반 삭제 : 참조되지 않는 객체를 제거하고 빈 공간에 대한 포인터를 남긴다. 4. 가비지 컬렉터(Garbage Collector) 종류 - Serial GC : MinorGC, MajorGC를 순차적으로 진행 - Parallel GC : 여러 CPU를 효과적으로 활용하기 위..

면접 - 자바 2020.12.02

JVM 메모리 구조 및 JVM 튜닝

jvm 튜닝에 앞서 jvm 메모리 구조에 대해 먼저 알아보겠습니다. 1. Method Area (메서드 영역) - 클래스 멤버 변수의 이름, 데이터 타입, 접근 제어자 정보, 필드 정보, 메서드의 이름, 리턴 타입, 파라미터 등의 변수 등이 생성되는 영역 2. Heap Area(힙 영역) - new 키워드로 생성된 객체와 배열이 생성되는 영역 - 메서드 영역에 로드된 클래스만 생성이 가능하고 Garbage Collector가 참조되지 않는 메모리를 확인하고 제거하는 영역 3. Stack Area(스택 영역) - 지역 변수, 파라미터, 리턴 값, 연산에 사용되는 임시 값 등이 생성되는 영역 4. PC Register (PC 레지스터) - Thread가 생성될 때마다 생성되는 영역으로 Program Coun..

개발 2020.08.13

IntelliJ Memory Option 최적화

IntelliJ를 기본 설정으로 사용하면 메모리가 부족해서 느려지는 현상이 나타나기 떄문에 VM 설정을 변경해야 합니다. 이번 포스팅에서는 Memory 옵션 값 변경과 실행 시간을 측정하였습니다. 1. 사양 기준 - RAM 32GB, CPU i9 MacBook 16인치(2019) - 프로젝트 : 코드 85,000 라인 (Java8 및 Maven) 2. 테스트 시나리오 - 컴퓨터에서 꼭 필요한 프로그램이 아닌 모든 응용프로그램을 종료합니다. - 모니터링 도구는 jstat 를 사용합니다. - Idea를 실행해서 완료까지 걸린 시간을 측정합니다. - Idea에서 프로젝트 로딩 완료까지 걸린 시간을 측정합니다. 3. 설정 옵션 - 설정 옵션은 4가지로 구분하며 색상으로 표시합니다. - 기본 설정 / A 설정 /..

개발 2020.07.26