iOS-메모리 관리
iOS의 메모리 관리는 처음에는 객체를 유지하고 해제해야하는 비 ARC (Automatic Reference Counting)였습니다. 이제 ARC를 지원하며 객체를 유지하고 해제 할 필요가 없습니다. Xcode는 컴파일 시간에 자동으로 작업을 처리합니다.
메모리 관리 문제
Apple 문서에 따르면 메모리 관리의 두 가지 주요 문제는 다음과 같습니다.
아직 사용중인 데이터를 해제하거나 덮어 씁니다. 이로 인해 메모리 손상이 발생하고 일반적으로 응용 프로그램이 충돌하거나 더 나쁜 경우 사용자 데이터가 손상됩니다.
더 이상 사용하지 않는 데이터를 해제하지 않으면 메모리 누수가 발생합니다. 할당 된 메모리가 다시 사용되지 않더라도 해제되지 않는 경우이를 메모리 누수라고합니다. 누수로 인해 응용 프로그램이 계속해서 증가하는 메모리를 사용하게되어 시스템 성능이 저하되거나 (iOS에서) 응용 프로그램이 종료 될 수 있습니다.
메모리 관리 규칙
우리는 우리가 만든 개체를 소유하고 있으며 더 이상 필요하지 않을 때 나중에 해제해야합니다.
유지를 사용하여 생성하지 않은 개체의 소유권을 얻습니다. 필요하지 않은 경우에도 이러한 개체를 해제해야합니다.
소유하지 않은 물건을 놓지 마십시오.
ARC에서 메모리 처리
릴리스를 사용하고 ARC에서 유지할 필요가 없습니다. 따라서 뷰 컨트롤러가 제거되면 모든 뷰 컨트롤러의 객체가 해제됩니다. 마찬가지로 모든 오브젝트의 하위 오브젝트는 해제 될 때 해제됩니다. 다른 클래스에 클래스의 개체에 대한 강력한 참조가있는 경우 전체 클래스가 해제되지 않습니다. 따라서 델리게이트에 약한 속성을 사용하는 것이 좋습니다.
메모리 관리 도구
Xcode 도구 도구를 사용하여 메모리 사용량을 분석 할 수 있습니다. 여기에는 활동 모니터, 할당, 누수, 좀비 등과 같은 도구가 포함됩니다.
메모리 할당 분석 단계
Step 1 − 기존 응용 프로그램을 엽니 다.
Step 2 − 아래와 같이 제품을 선택한 다음 프로필을 선택합니다.
Step 3 − 아래 표시된 다음 화면에서 할당을 선택하고 프로필을 선택합니다.
Step 4 − 아래와 같이 다른 객체에 대한 메모리 할당을 볼 수 있습니다.
Step 5 − 뷰 컨트롤러간에 전환하여 메모리가 제대로 해제되었는지 확인할 수 있습니다.
Step 6 − 마찬가지로, 할당 대신 Activity Monitor를 사용하여 애플리케이션에 할당 된 전체 메모리를 볼 수 있습니다.
Step 7 − 이러한 도구는 메모리 소비에 액세스하고 누출 가능성이있는 위치를 찾는 데 도움이됩니다.