본문 바로가기

JVM2

Java GC(Garbage Collection) Naver D2에 워낙 잘 설명돼있어서 이 페이지만 읽어봐도 GC에 대해 개념을 잡을 수 있다. 이 포스팅은 그냥 내가 읽기 편하려고 Naver D2 포스팅을 요약 정리한 것이다. (마찬가지로 D2에서 올린 Garbage Collection 튜닝도 매우 유익하다.) Java GC(Garbage Collection) Java에서는 개발자가 코드로 메모리를 명시적으로 해제하지 않기 때문에 Garbage Collector가 더는 필요 없는 객체를 찾아 지우는 작업을 한다. Garbage Collector는 'weak generational hypothesis'라는 두 가지 전제 조건에 의해 만들어졌다. 대부분 객체는 금방 접근 불가능 상태(unreachable)가 된다. 오래된 객체에서 젊은 객체로의 참조는 .. 2019. 9. 7.
[JVM] Java 메모리 구조 JVM JVM(Java Virtual Machine, 자바 가상 머신)은 자바 바이트 코드를 실행한다. 일부 프로그램(예를 들어 C로 개발된)은 실행되기 위해 OS에 의해 메모리가 제어되며 실행되는 반면 자바 프로그램은 JVM이 OS로부터 메모리를 할당받아 실행하는 구조이다. 덕분에 OS로부터의 종속이 없어서 널리 사용되고 있다. 이론적으로 모든 자바 프로그램은 CPU와 OS의 종류와 무관하게 독립적으로 동작하는 것을 보장한다. JVM 내부 구조 Runtime Data Area: JVM이 프로그램을 수행하기 위해 OS로 부터 할당받은 메모리 공간이다. Class Loader: Runtime에 컴파일러에 의해 변환된 Byte Code(.class)를 읽어서 JVM내의 Runtime Data Area(메모리.. 2019. 9. 5.