iOS 메모리 관리


IOS 메모리 관리


소개

iOS에서 메모리 관리의 기본 개념은 참조 카운팅입니다. 메모리 개체의 수명 주기는 개체의 참조 카운팅을 통해 제어됩니다. 프로그래밍 시간에 따라 두 가지 주요 방법이 있습니다.

1: MRR(수동 유지-해제), 수동 참조 카운팅, 객체 생성, 파괴 및 참조 카운트 변경은 모두 개발자가 완료합니다.

2: 자동 참조 카운팅인 ARC(Automatic Reference Counting)는 객체 생성만 담당하며, 다른 프로세스의 개발자는 더 이상 객체 폐기에 신경 쓸 필요가 없습니다. 사용 방법은 가비지 컬렉션과 유사하지만 그 본질은 다음과 같습니다. 여전히 참조 카운팅 중입니다.

당면한 문제

Apple 문서에 따르면 직면한 두 가지 주요 문제는 다음과 같습니다.

해제되거나 덮어쓴 데이터가 여전히 사용 중입니다. 이로 인해 메모리 손상이 발생하고 일반적으로 응용 프로그램이 충돌하거나 더 심하면 사용자 데이터가 손상됩니다.

더 이상 사용되지 않는 데이터를 공개하지 않으면 메모리 누수가 발생할 수 있습니다. 메모리 누수로 할당된 메모리는 다시 사용되지 않더라도 해제되지 않습니다. 누출로 인해 애플리케이션의 메모리 사용량이 증가할 수 있으며, 이로 인해 시스템 성능이 저하되거나 정지될 수 있습니다.

메모리 관리 규칙

우리는 자체 개체를 생성하고 더 이상 필요하지 않을 때 해제합니다.

사용해야 하는 물건을 보관하세요. 더 이상 필요하지 않은 경우 이러한 개체를 해제해야 합니다.

우리가 소유하지 않은 물건을 공개하지 마세요.

메모리 관리 도구 사용

Xcode 도구 도구의 도움으로 메모리 사용량을 분석할 수 있습니다. 여기에는 활동 모니터, 할당, 누출, 좀비 등과 같은 도구가 포함됩니다.

메모리 할당 분석 단계

1.

2. 제품을 선택하면 프로필은 아래와 같습니다.

mm_Profile

3. 다음 인터페이스에서 할당 및 프로필을 선택합니다.

mm_ProfileSelect

4. 다양한 객체의 메모리 사용량을 볼 수 있습니다.

5. 뷰 컨트롤러를 전환하여 메모리가 해제되었는지 확인할 수 있습니다.

mm_Instruments_Allocations

6. 마찬가지로 활동 모니터를 사용하여 애플리케이션의 메모리 할당을 볼 수 있습니다.

mm_Instruments_ActivityMonitor

7. 이러한 도구는 메모리 사용량과 누수가 발생할 수 있는 위치를 이해하는 데 도움이 됩니다.