인스트루먼트 할당은 사용자 정의 클래스의 객체 할당 및 할당 해제를 추적합니다.
Objective-C 객체의 할당 및 할당 해제를 추적 할 수 있습니까? 예를 들어 Book 클래스가있는 경우 Book 유형의 객체에 대한 모든 할당 및 할당 해제를 추적하고 싶습니다. UIViewController, UIWindow, UIView, NSDictionary 등과 같은 모든 기본 SKD 클래스를 추적 할 수 있지만 정의 된 클래스에서 생성 된 개체도 추적하고 싶습니다.
Allocations 도구를 사용하여 객체의 수명주기를 추적 할 수 있습니다. "할당"템플릿을 사용하는 경우 기록 malloc
및 free
이벤트로 구성됩니다 . 당신은 또한 기록하도록 구성 할 수 있습니다 retain
, release
및 autorelease
할당 된 메모리 기기 설정에서 확인란 "레코드 참조 카운트"을 설정하여 이벤트 :
(Instruments가 녹음하는 동안에는 이것을 전환 할 수 없으며 템플릿을 선택하자마자 기본적으로 시작됩니다.)
Xcode 9 업데이트 : Apple은 이러한 설정을 찾기가 더 어려워졌습니다. 이제 할당 악기를 선택한 다음 메뉴 모음에서 파일> 녹음 옵션을 선택해야합니다.
실행 후 세부 정보 창 (창 하단)의 기본 설정 인 할당> 통계> 개체 요약보기를 사용하여 개체를 찾을 수 있습니다.
실행을 중지하기 전에 할당이 취소 된 개체를 보려면 할당 수명 설정을 "Created & Still Living"(기본값)에서 "All Objects Created"로 변경해야합니다.
특정 클래스의 개체를 찾으려면 창 도구 모음의 오른쪽 끝에있는 검색 필드에 클래스 이름을 입력하여 시작합니다. 그런 다음 목록보기의 범주 열에서 클래스 이름을 찾아 그 위에 마우스를 놓고 그 옆에 나타나는 화살표를 클릭합니다. 예를 들어 내 앱에라는 클래스가 Tile
있으므로이를 검색 한 다음 Tile
목록보기에서 옆에있는 화살표를 클릭합니다 .
이제 목록보기에의 모든 인스턴스가 표시됩니다 Tile
. (당신은 객체가 아닌 슈퍼 클래스의 실제 클래스를 입력해야합니다. 입력 NSObject
단에 의해 생성 된 오브젝트를 찾을 수 있습니다 [NSObject alloc]
, 그에 의해 생성 된 개체 없습니다 [Tile alloc]
.) 나는 특정 인스턴스에 대한 기록을 볼 수 있습니다 클릭하여 다음 화살표 해당 인스턴스의 주소로 :
객체에 대한 상세보기에서, 나는 볼 수 malloc
와 free
나는 "레코드 참조 횟수"에 설정되어 있기 때문에, 이벤트를하고, 나는 또한 볼 수 있습니다 retain
, release
그리고 autorelease
카운트를 유지 개체의에 메시지와 자신의 효과를. 이러한 이벤트에 대한 호출 스택을 보려면 창 오른쪽에있는 확장 된 세부 정보 패널을 열 수 있습니다.
'IT TIP' 카테고리의 다른 글
iOS 플레이 그라운드에 UI 미리보기가 표시되지 않음 (0) | 2020.12.27 |
---|---|
얼마나 자주 리팩토링해야합니까? (0) | 2020.12.27 |
Django에서 "미디어"파일에 액세스 (0) | 2020.12.27 |
Android API v2 용 Google지도에 내 위치를 표시하는 방법 (0) | 2020.12.27 |
'System.Web.Security.SqlMembershipProvider'에는 스키마 버전 '1'과 호환되는 데이터베이스 스키마가 필요합니다. (0) | 2020.12.27 |