프로그램 내에서 빈번하게 재활용되는 인스턴스들을 생성&삭제하지 않고
미리 생성해놓은 인스턴스들을 보관한 객체집합(풀)에서
인스턴스를 대여&반납하는 방식으로 사용하는 기법
구현 :
- 인스턴스들을 보관할 객체집합(풀)을 생성
- 프로그램의 시작시 객체집합(풀)에 인스턴스들을 생성하여 보관
- 인스턴스가 필요로 하는 상황에서 객체집합(풀)의 인스턴스를 대여하여 사용
- 인스턴스가 필요로 하지 않는 상황에서 객체집합(풀)에 인스턴스를 반납하여 보관
장점 :
- 빈번하게 사용하는 인스턴스의 생성에 소요되는 오버헤드를 줄임
- 빈번하게 사용하는 인스턴스의 삭제에 가비지 콜렉터 부담을 줄임
단점 :
- 미리 생성해놓은 인스턴스에 의해 사용하지 않는 경우에도 메모리를 차지하고 있음
- 메모리가 넉넉하지 않은 기기/상황에서 너무 많은 오브젝트 풀링을 사용하는 경우,
힙영역의 여유공간이 줄어들어 오히려 프로그램에 부담이 되는 경우가 있음