JVM3 [JVM] 저지연 가비지 컬렉터 : 세넌도어 이번 글은 "JVM 밑바닥까지 파헤치기" 책의 3.6 "저지연 가비지 컬렉터"의 객체 돌아보기에 대한 부분을 정리 및 요약한 글입니다. 완벽한 가비지 컬랙터 존재 가능성자바 개발자라면 한 번쯤은 GC로 인한 이슈를 겪게 됩니다. 응답 시간이 튀거나, 시스템이 멈춘 듯한 순간들은 대부분이 GC로부터 비롯됩니다. 이로 인해, 사람들이 성능 좋은 GC를 찾아 다양한 실험을 하게 됩니다. 그런데 여기서 한 가지 의문점이 생깁니다."왜 완벽한 가비지 컬렉터는 아직도 없는 걸까요?" GC의 꾸준한 진화GC는 오랜 시간 동안 진화를 거듭해왔습니다. 초기에 Serial GC에서 시작해 CMS(Concurrent Mark Sweep)로, 최근에는 G1GC(Garbage First)로 기본 GC가 변경되었습니다. 요즘은 .. 2025. 4. 21. [JVM] 핫스팟 VM에서의 객체 돌아보기 이번 글은 "JVM 밑바닥까지 파헤치기" 책의 2.3 핫스팟 가상 머신에서의 객체 돌아보기에 대한 부분을 정리 및 요약한 글입니다. 객체 생성자바는 객체 지향 프로그래밍 언어로 자바 프로그램이 동작하는 동안 언제든 수시로 객체가 만들어집니다. 언어 수준 객체 생성자바는 객체 지향 언어 프로그래밍으로 동작하는 동안 언제나 수시로 객체가 만들어집니다.언어 수준에서는 객체 생성은 간단하게 new 키워드를 사용하면 끝납니다.가상 머신 수준에서는 어떤 과정을 거쳐 객체가 생성될까요?가상 머신 수준 객체 생성가상 머신에서는 new 명령어의 바이트코드를 만나게 되면, 해당 명령의 매개 변수가 상수 풀 안의 클래스를 가리키는 심벌 참조인지 먼저 확인합니다. 그다음으로 이 참조가 뜻하는 클래스가 로딩, 해석, 초기화 되.. 2025. 4. 16. [JVM] OutOfMemory 예외 이번 글은 "JVM 밑바닥까지 파헤치기" 책의 2.4 실전 : OutOfMemoryError 예외에 대한 부분을 정리 및 요약한 글입니다. 이번 절의 목적은 각 런타임 영역에 저장되는 내용을 검증하고, 실제 메모리 오버플로가 일어나는 과정을 경험하는데 초점이 맞춰집니다.다음 나오는 예제 코드들의 첫 부분에는 예제 실행 시 설정해야 하는 가상 머신 시작 매개 변수가 주석으로 적혀 있습니다.('VM 매개 변수'로 시작하는 주석) 이 매개 변수들은 실행 결과에 영향을 줍니다. 실행 및 디버그 구성-Xms20mJVM이 실행될 때 초기로 확보할 힙 메모리 크기를 설정합니다.-Xmx20mJVM이 사용할 수 있는 힙 메모리의 최대 크기를 지정합니다.-XX:+HeapDumpOnOutOfMemoryErrorOutOfMe.. 2025. 4. 15. 이전 1 다음