가비지 컬렉션(Garbage Collection)
인스턴스(Instance)를 만드는 것은 내부적으로는 컴퓨터의 메모리를 사용하는 것입니다.
(여기서 말하는 메모리는 RAM 의미)
램은 가장 빠른 저장 장치이기 때문에 컴퓨터 프로그램들은 이 램에 저장된 후에 동작하게 됩니다.
하지만 램은 가격이 비싸고 용량이 적기 때문에 램은 컴퓨터에서 가장 소중한 저장 장치라고 할 수 있습니다.
그러므로 램을 적게 사용하는 프로그램이 좋은 프로그램이라고 볼 수 있습니다.
그렇기에 많은 프로그래밍 언어들이 RAM을 효율적으로 사용하기 위해서
더 이상 사용하지 않는 데이터를 RAM에서 제거할 수 있는 방법들을 제공합니다.
Java에서는 메모리 관리를 자동으로 해주는데, 이 작업을 가비지 컬렉션이라고 합니다.
좋은 에플리케이션을 만들기 위해서는 가비지 컬렉션에 대한 이해는 필요합니다.
왜냐하면 자바 가상 기계에서 응용프로그램에게 할당해 줄 수 있는 가용 메모리의 양이 줄어들기 때문입니다.
가용 메모리가 거의 없어지는 극한 상황은 잘 없을 뿐더러 내부 알고리즘의 판단에 의해
가비지 컬렉션이 수행되므로 언제 가비지 컬렉션이 일어나는지 알기 어렵습니다.
대규모 프로젝트에서는 비교적 많은 가비지를 생산되어
가끔 가용 메모리가 부족할 수 있는데,
이때, Garbage Collector가 실행되며 자바 프로그램은 실행을 멈추고
가바지 컬렉터 수행이 끝나기를 기다리게 됩니다.
JVM에게 Garbage Collection이 필요하다는 강력한 제안을 할 수는 있습니다.
(즉시 작동 시키는 것이 아닌 제안하는 것이기에 JVM에서 전적으로 판단하여 적절한 시점에 작동)
▶ 응용 프로그램에서 System 또는 Runtime 객체의 gc() 메소드를 호출
System.gc();
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] Map 인터페이스를 구현한 HashMap (0) | 2021.03.02 |
---|---|
[Java] [예제] 사칙연산 계산기 (0) | 2021.03.02 |
[Java] 오버로딩(Overloading) (0) | 2021.02.23 |
[Java] 우선순위 큐(Priority Queue) 예제 (0) | 2021.02.23 |
[Java] [예제] 비만 지수 구하기 (0) | 2021.02.23 |
댓글