2011-10-28 3 views
7

iOS 앱의 메모리 사용을 최적화하려고하는데 코드의 특정 지점에서 앱의 총 메모리 사용량을 확인하고 싶습니다. 나는 중단 점을 설정하고, Activity Monitor로 앱을 프로파일 링 할 수 있어야하고, 각 중단 점을 잡을 때 메모리 사용을 살펴볼 수 있어야한다고 생각하고 있었다. 그러나 Instruments를 실행할 때 중단 점이 더 이상 실행을 중지하지 않으므로 메모리 사용이 언제 바뀌는 지 정확히 알기가 어렵습니다.Xcode의 인스트루먼트를 브레이크 포인트가 활성화 된 상태로 사용할 수 있습니까?

브레이크 포인트와 인스트루먼트를 동시에 사용할 수 있습니까? 그렇지 않은 경우 특정 이벤트가 발생하면 Instruments 타임 라인에 마커를 삽입하는 코드를 작성하는 영리한 방법이 있습니까?

답변

8

나는 또한 오늘이 문제에 부딪혔다. 그리고 약간의 검색 후에 나는이 해결책을 발견했다. 아래 텍스트는 게시물의 인용문입니다.

중단 점은 중단되지 않습니다. 인스트루먼트는 디버그 빌드 의 디버그 정보를 사용하지만 사용자가 설정 한 브레이크 포인트에서 멈추지 않습니다. 응용 프로그램을 XCode의 메뉴에서 인스트루먼트로로드하는 동안 Instruments는 현재 실행 파일의 경로 을 시작 경로로 사용하고 XCode에서 외부로 을로드하기 때문입니다. XCode의 메뉴는 편의상 실제로는 메커니즘입니다. 디버그 모드에서 계측기 세션이 끝난 후 항상 응용 프로그램을 중단해야하는 경우 다시 실행할 수 있으므로 큰 문제는 아닙니다. 그것은 단지 메모하는 것입니다.

NSLog 문은 디버거 콘솔에 표시되지 않습니다. 에 NSLog 문을 보려면 콘솔 응용 프로그램 (/ 응용 프로그램/유틸리티/콘솔)을로드해야합니다.

참조 : http://www.cimgf.com/2008/04/02/cocoa-tutorial-fixing-memory-leaks-with-instruments/

0

글쎄, 당신은 디버거의 통제하에 실행되지 않습니다.

키 포인트에 경고를 추가 한 다음 (수동으로) 힙샷을 가져 오는 것이 하나의 방법 일 수 있습니다.

또는 일부 dtrace 마법이있을 수 있습니다.

관련 문제