[iOS] Xcode Instruments

Emily·2024년 12월 23일

Xcode Instruments는 메모리 누수를 찾아낼 수 있게 해주는 도구이다.

Stack Race
스택 메모리를 추적한다는 뜻이다. 코드를 실행하면 스택에 쌓이면서 코드를 수행하는데, (이것을 Call Stack이라고 부른다.) 스택에 쌓인 코드들을 보며 수행된 기록을 훑어보는 것을 스택 레이스라고 한다.

Profiling
앱의 성능을 분석하고 최적화하는 과정을 말한다.

Xcode Instruments

프로젝트에 작성한 코드가 많아지면 메모리 누수 발생 지점을 파악하기 어려워진다. 이 때 Xcode Instruments를 사용한다.

01) 순환 참조 발생 코드 작성

실습을 위해 순환 참조가 발생하는 코드를 작성하고 실행시킨다.

Button을 누르면 EmilyMacBook이 서로를 참조하는 상황 발생

02) Xcode Instruments 실행

Xcode 실행 상태에서 ProductProfile을 누르면 코드가 Run 되고 Instruments가 실행된다.

Leak을 선택한다.

모니터링 내용을 녹화할 수 있는 설정창이 뜬다.

Button8번 눌러 순환 참조를 발생 시켰다. Leaks에 처음에는 초록색 로고가 떴다가 순환 참조로 인한 메모리 누수가 발생하자 빨간색 로고가 뜬다.

Leaks를 클릭해보면 어디서 누수가 발생했는지도 나온다. Emily 클래스와 MacBook 클래스가 서로를 8번 참조하여 메모리 누수가 발생한 내역을 확인할 수 있다.

옵션을 바꾸면 그래프로 순환 참조 방향을 보여준다.

Call TreeStack Trace를 확인하는 화면

profile
iOS Junior Developer

3개의 댓글

comment-user-thumbnail
2024년 12월 28일

메모리릭 아무것도 안 보고 발생시킬 수 잇으신가여

1개의 답글