본문 바로가기
프로그래밍 언어/Java

[Java] 가비지 컬렉션(Garbage Collection)

by 까망 하르방 2021. 3. 2.
반응형

가비지 컬렉션(Garbage Collection)

인스턴스(Instance)를 만드는 것은 내부적으로는 컴퓨터의 메모리를 사용하는 것입니다.

(여기서 말하는 메모리는 RAM 의미)

램은 가장 빠른 저장 장치이기 때문에 컴퓨터 프로그램들은 이 램에 저장된 후에 동작하게 됩니다.

하지만 램은 가격이 비싸고 용량이 적기 때문에 램은 컴퓨터에서 가장 소중한 저장 장치라고 할 수 있습니다.

그러므로 램을 적게 사용하는 프로그램이 좋은 프로그램이라고 볼 수 있습니다. 

그렇기에 많은 프로그래밍 언어들이 RAM을 효율적으로 사용하기 위해서 

더 이상 사용하지 않는 데이터를 RAM에서 제거할 수 있는 방법들을 제공합니다.

Java에서는 메모리 관리를 자동으로 해주는데, 이 작업을 가비지 컬렉션이라고 합니다.

 

좋은 에플리케이션을 만들기 위해서는 가비지 컬렉션에 대한 이해는 필요합니다.

왜냐하면 자바 가상 기계에서 응용프로그램에게 할당해 줄 수 있는 가용 메모리의 양이 줄어들기 때문입니다.

가용 메모리가 거의 없어지는 극한 상황은 잘 없을 뿐더러 내부 알고리즘의 판단에 의해 

가비지 컬렉션이 수행되므로 언제 가비지 컬렉션이 일어나는지 알기 어렵습니다.

 

대규모 프로젝트에서는 비교적 많은 가비지를 생산되어

가끔 가용 메모리가 부족할 수 있는데,

이때, Garbage Collector가 실행되며 자바 프로그램은 실행을 멈추고

가바지 컬렉터 수행이 끝나기를 기다리게 됩니다.

 

JVM에게 Garbage Collection이 필요하다는 강력한 제안을 할 수는 있습니다.

(즉시 작동 시키는 것이 아닌 제안하는 것이기에 JVM에서 전적으로 판단하여 적절한 시점에 작동)

 

▶ 응용 프로그램에서 System 또는 Runtime 객체의 gc() 메소드를 호출

System.gc();

 

 

반응형

댓글