Xcode Instruments는 메모리 누수를 찾아낼 수 있게 해주는 도구이다.
Stack Race
스택 메모리를 추적한다는 뜻이다. 코드를 실행하면 스택에 쌓이면서 코드를 수행하는데, (이것을Call Stack이라고 부른다.) 스택에 쌓인 코드들을 보며 수행된 기록을 훑어보는 것을 스택 레이스라고 한다.
Profiling
앱의 성능을 분석하고 최적화하는 과정을 말한다.
프로젝트에 작성한 코드가 많아지면 메모리 누수 발생 지점을 파악하기 어려워진다. 이 때 Xcode Instruments를 사용한다.
실습을 위해 순환 참조가 발생하는 코드를 작성하고 실행시킨다.

Button을 누르면Emily와MacBook이 서로를 참조하는 상황 발생
Xcode 실행 상태에서 Product → Profile을 누르면 코드가 Run 되고 Instruments가 실행된다.

Leak을 선택한다.

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

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

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

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

Call Tree와Stack Trace를 확인하는 화면
메모리릭 아무것도 안 보고 발생시킬 수 잇으신가여