본문 바로가기

Programming/IT관련이야기

가베지 콜렉팅이란?

가베지 콜렉팅은 자바에서만 있는 기능입니다 즉 인스턴스를 하여서 메모리에 올려 놨는데 여러분은 테스트를 하시면서 한번도 메모리에서 해제를 하지 않았을 것입니다 만일에 자바가 아닌 C , c++ 을 공부하고 계셨다면 메모리 해제에 대하여 계속 강조를 하였을 것입니다 그렇다면 가베지라는 것이 무엇 일까요? 가베지라는 것은 쓰레기라는 것입니다 즉 메모리에 올려 놓고 그냥 나가 버렸다면 누군가가 와서 사용하지 않은 메모리를 깨끗이 비워 주어야 되겠지요 그렇지 않다면 메모리가 부족한 경우가 발생 할 것 입니다. 요즘은 별로 발생하지 않지만 예전에는 wndows를 사용하다가 파란 화면이 나오거나 그냥 rebooting하는 경우가 종종 있었답니다 이유로는 주로 대부분이 메모리가 모잘라서 발생되는 연산 오류에요 그만큼 메모리에서 해제 해주는 것이 얼마큼 중요 한지 하시겠지요 사용은 단순합니다 그냥 아무것도 안해도 자바가상 머신은 알아서 작동을 해줍니다 허나 좀 아무때나 가베지 컬렉팅을 하는 하는 것은 아니에요 아무때나 한다면 시스템이 아주 느려 질것입니다 그래서 자바가상머신은 시스템의 자원이 없다고 생각이 들거나 , 동작하는 프로그램들의 부하가 작을 때 작동을 합니다 그래도 나는 빨리 작동해서 내가 os의 메모리를 깨끗이 하고 싶다고 한다면 System.gc();를 호출 하시면 됩니다 System.gc()를 하였을때 바로 하지는 않지만 시간을 앞당겨서 진행을 한답니다