jvm 2

Heap 메모리 구조와 GC는 어떻게 될까?

목표 : Heap 메모리와 GC에 대해 설명할 수 있다. 앞선 포스팅으로 JVM 내부 메모리 구조를 알아보았다. 그 중, Heap 메모리에 대한 상세한 설명을 추가하고자 한다. Garbage Collection Heap을 설명한다 했지만, GC부터 알아보려고 한다. Heap과 자연스럽게 연결될 것이며, 일단 용어를 좀 정리해야 설명하기 편할 것 같아서다. JVM은 자동으로 메모리를 관리해준다. GC는 더이상 사용되지 않는 인스턴스(Referrer가 없는 Object)를 찾아 메모리 할당을 삭제하는 행위이다. 이 말은 JVM에서는 GC가 자동으로 일어난다는 것이고, 성능에 중요한 역할을 한다. GC 혹은 메모리 설정이 잘못되면 금방 OOM(Out of Memory) Error가 발생할 것이다. 이 때 말하..

Programming/Java 2022.08.16

JVM의 메모리 구조는 어떻게 될까?

목표 : JVM 메모리 구조를 설명할 수 있다. JVM이 java Virtual Machine 이라는 것은 잘 알고 있다. 다만, 이 구조에 대해 설명을 하려고 하면, 쉽지 않은 부분이 있어 정리하고자 한다. 왜 자바가 많이 사용되었을까? 근본적인 질문일 수 있다. JVM을 설명하기 전에, Java의 특징 중 하나인 OS에 종속적이지 않다는 점을 설명하기 위한 질문이다. 그럼, OS에 어떻게 종속받지 않은 환경을 만들었을까? 어디에서든 Java가 돌아갈 수 있게 감쌀 무언가가 필요했고, 그게 바로 Java Virtual Machine 이라고 하는 JVM이다. Java는 컴파일 언어다. Java의 특징 중 또 다른 하나는 컴파일 언어라는 것이다. 컴파일 언어라 함은, 기계어로 번역하는 과정이 필요하며, 이..

Programming/Java 2022.08.15