2010-11-02 4 views
26

내 iPad 응용 프로그램에서 메모리 관련 문제를 해결하는 데 어려움을 겪고 있지만 좋은 점은 그 때문에 "힙샷"에 대해 배웠다는 것입니다. 나쁜 것은, 나에게 제공되는 정보가 무엇을 의미하는지 아직도 알 수 없다는 것입니다. alt text할당 "힙샷"의 <non-object>은 무엇을 의미합니까?

따라서 힙 성장에 설명 된 대부분의 메모리를 사용하는 이러한 비 오브젝트는 아직 살아 있습니까? 그것들을 제거 할 수 있습니까? 대부분이 다양한 드로잉 작업, CALayer, 컨텍스트 및 기타 (범주 : "Malloc"또는 "Realloc")와 관련이있는 것으로 보입니다. 필요한 경우 세부 정보를 제공 할 수 있습니다.

답변

20

메모리 블록이 개체 (예 : 순수한 c 구조)가 할당되지 않았 음을 의미합니다. 일반적으로 시스템 프레임 워크 코드에 의해 할당되므로 누출되는 다른 객체가 있습니다. 예 : 당신이 UIView를 공개하는 것을 잊었다면, 그 레이어도 해제되지 않을 것입니다.

"확장 상세 정보"패널 ("보기"메뉴 참조)을 열고 호출 스택을 분석 할 수 있습니다. 하나의 release을 잊어 버리면 많은 메모리 누수가 발생할 수 있으므로 가장 쉬운 누출을 수정 한 다음 다른 누출이 사라 졌는지 확인하십시오.

트릭이 하나 더 있습니다. 응용 프로그램의 기능 블록을 하나씩 비활성화하고 누수가 사라지는 지 확인할 수 있습니다. 따라서 모듈 (클래스, 기능 블록 등)의 위치를 ​​찾을 수 있습니다.

관련 문제