'garbage collection'에 해당되는 글 1건

  1. 2007.08.02 Flex 2 (Flash Player 9)의 메모리 관리
아래는 현재 프로젝트에서 발생한 문제점을 해결하기 위해 검색하여 찾은 정보를 정리한 것이다.

[GC의 수행 조건]

1. 고정 크기 메모리 블록의 chunk 단위로 OS의 메모리를 할당/해제
2. chunk의 집합이 Flash의 Memory Pool(JVM의 Heap과 같은 개념)이 됨
3. 객체 생성시마다 Pool에서 메모리를 할당 받음
4. 할당시 Pool이 바닥나면 GC 수행
5. GC는 4번 이벤트 시점에만 수행됨(!)

[GC 수행 규칙]
1. Java와 동일하에 Reference Count로 GC 대상을  분류함
2. 한 번의 GC 수행이 모든 GC 대상을 collect 하는 것은 아님(!)
3. GC 후 chunk를 정리하여 사용율 0인 chunk는 OS로 반환함

[Memory Leak 문제]
1. GC 자체의 Memory Leak 버그는 입증된 바 없음
2. EventListener의 reference 규칙을 이해하지 못하면 leak 위험성 상존

[Memory Leak의 해결]
1. EventListener에 의한 leak 해결방법은 정확한 이해와 함께 weak reference를 적극/정확히 사용하는 것
2. Flex 자체 제공 컴포넌트 일부에서도 leak를 유발한다고 함.

[요약]
1. GC 자체는 버그가 없다고 볼 수 있으나 애매한 작동 방식은 각종 FUD의 원인이 됨.
2. Memory Leak를 일으킬 수 있는 케이스에 대해 반드시 숙지하고 개발해야 함