티스토리 뷰
안녕하세요 :) Zedd입니다.
벌써...(?) 세번째 입니당!!!
이번 주제는 제목을 보니..왠지 막 우리가 저번에 세팅을 다 하고 모은 데이터들을 어떻게 보냐!? 모은 데이터를 탐색하는 방법일 것 같네요.
지금 3개의 챕터도 다 못봤는데 지루하실 수도...
일단 이번 챕터까지?..가 기본 Instruments의 사용법일 것 같아요! 이거 끝나면 뭐 성능. 메모리 사용, 에너지 등 그런 것들을 어떻게 프로파일 하는지 등을 볼건데, 암튼 저 순서대로 볼지는 모르겠어용 키키
아무튼;;;;;뭐 trace document를 만들래서 만들고;;;뭐 어케어케 해서 데이터를 모았는데...그 모은 데이터를 탐색할 줄 알아야겠죠 일단?
시작해봅시당 :)
읽기전에!!! 반드시
< Instruments - Common Task(1)>
< Instruments - Common Task(2)>
읽고와주세요 XD
About Data Analysis
Instruments는 코드 관련 문제를 수정하지 않습니다. 앱이 실행 될 때 자세한 통계를 캡쳐하여 분석을 위해 제시함으로써 코드를 보다 효과적으로 이해 할 수 있습니다.
모든 앱이 다르므로, 문제를 찾고 해결하는 실제 단계는 다릅니다. 따라서 필요하지 않은 데이터를 필터링 하여 Instruments가 수집하는 정보를 해석하는 방법을 배워야합니다.
그런 다음 몇가지 탐정(.....)업무(detective work)를 수행하여 식별한 데이터를 앱의 코드와 연관시켜 개선할 수 있도록 해야합니다.
trace를 수행한 후에는 Timeline pane, Detail pane, extended detail area() dㅔ서 수집된 데이터를 검사할 수 있습니다.
TIP : 대부분의 Instruments는 앱을 모니터링 하면서 정기적인 stack trace를 캡쳐합니다. 더 자세히 조사 할 특정 데이터 포인트를 식별하면, stack trace를 통해 해당 코드를 식별할 수 있습니다. Xcode에서 열어놓은 앱을 프로파일링 하는 경우, Instruments에서 바로 소스코드를 보거나 Xcode로 넘어가서 더 자세히 살펴볼 수 있습니다.(오!!!!!!!)
Navigate the Timeline Pane
trace document의 가장 두드러진 부분은 Timeline pane입니다. Timeline pane은 각 Instruments에서 수집한 데이터에 대한 시간 기반 View를 제공합니다. 이 pane을 통해 앱의 추세 및 잠재적인 문제 영역을 한눈에 쉽게 파악 할 수 있습니다. 예를들어, 메모리 사용량 그래프에서 스파이크(spike..)는 앱이 평소보다 많은 메모리를 할당한 시간을 나타냅니다.
이 스파이크는(아니 스파이크가 뭐지..?) 정상적인 것일 수도 있고, 코드가 예상모다 많은 객체 또는 메모리 버퍼를 생성했다는 것을 나타낼 수도 있습니다. Leaks와 같은 Instruments는 앱이 메모리를 올바르게 처리하지 않는 위치를 식별 할 수 있습니다. Leaks timeline track이 드물게(드문 드문) 채워지면 앱이 제대로 작동하고 있는 것입니다. 트랙이 비어있지 않으면 이유를 검토 할 수 있습니다.(오ㅓ....)
다음 섹션에서는 Timeline pane과 구성 방법에 대해 자세히 설명합니ㅏㄷ.
Zoom In and Out
trace로 많은 양의 데이터를 캡쳐한 경우, Timeline pane에 표시된 세부 정보를 확장(expand)하거나 축소(contract)하여 특정 데이터 하위 집합(specific subset of data)에 집중 할 수 있습니다.
To zoom in and out of your data
확대 또는 축소를 하려면 트랙패드에서 pinch 제스쳐를 하세요.
확대 또는 축소를 하려면, track View위에 포인터를 놓고, Option키를 누른 상태에서 스크롤 휠을 사용하세요.
확대하려면, Option키를 누르고, 분리하려는 데이터 섹션 위로 드래그 하세요.
축소라려면, Control키를 누르고, 데이터 섹션을 드래그하세요.
마우스가 없어서.....두번째꺼빼고 다 해봤어용. 아무튼 그 부분만 확대/축소가 가능하다는 거!!!
왼쪽이 문서에 있는 사진이고, 오른쪽이 제가 지금 해본건데.......많은 업데이트가 있었나보네요. 그건 둘째치고
Control-Command-Z누르면 이렇게 Fit...트랙에 Fit이 된다...
Filter a Range of Data
Instruments는 프로파일링 할 때, 엄청난 양의 정보를 수집합니다. 특정 시간 범위 내에 발생한 이벤트만 표시하도록 Detail pane을 설정하여 데이터를 신속하게 필터링 할 수 있습니다.Instruments는 지정한 범위에 속하는 Timeline pane의 내용을 하이라이트 합니다.
Set Flags
플래그를 사용하면, Timeline pane에서 원하는 지점에 빠르게 액세스 할 수 있습니다. 각 플래그에 이름과 설명을 추가 할 수 있습니다.(오..)
Figure 11-4Flags in the timeline pane of a trace document
이렇게 추가 할 수 이씀
Access Trace Data for Multiple Runs
Navigate the Detail Pane
아ㅏㅏㅏ 이제보니까 위 그림 오른쪽 부분(inspector pane)에 있는 것들이 왜ㅔ 안보이나 했더니... 이것들이 recording option으로 들어간거였네요.
암튼; 계속 ㄱ
View Different Types of Data in the Detail Pane
일부 instruments의 경우, 데이터를 둘 이상의 타입으로 표시 할 수 있습니다. 예를들어, Activity monitor instruments를 사용하면, 데이터요약, 상위 하위 정보 및 샘플 목폭을 볼 수 있습니다.
instrument가 지원하는 모드는 해당 instrument가 수집하는 데이터 타입에 따라 다릅니다. Allocations instrument의 호출 트리모드와 같은 일부 상세 타입의 경우, 특정 상세 펼침 삼각형;;(disclosure triangles)을 사용하여 해당 계층구조로 더 내려갈 수 있습니다. disclosure triangles를 클릭하면 지정된 row가 펼쳐지거나 닫힙니다.
TIP : row와 children 모두를 확장하려면 Option키를 누른 상태에서 disclosure triangle를 클릭합니다.
호출 트리를 볼 때, 많은 instruments 에서는 시스템 호출을 숨시고 호출트리를 반전(invert)하는 옵션이 있습니다. 이 옵션은 inspector pane의 Display Options아래에 있는 Call Tree area에 있습니다. 시스템 호출을 숨기면, 앱에서 하는 호출을 빠르게 필터링 할 수 있습니다. 호출 트리를 반전시키면, 가장 무거운(heaviest) 호출을 먼저 볼 수 있습니다.
Sort in the Detail Pane
특정 cloumn의 데이터에 따라 Detail pane에 표시된 정보를 정렬하려면, 해당 cloumn header를 클릭합니다.
detail pane의 columns은 instrument마다 다릅니다.
Use the Extended Detail Pane
이 extended detail area에는 기록된 probe또는 이벤트에 대한 설명, stack trace 및 정보가 기록된 시간과 기타 정보가 포함될 수 있습니다.
() 이 표시가 extended detail area라고 그랬죠?
저기 오른쪽 부분에 extended detail area보이시죠?
(마지막ㄱ쯤에 하위 호출 트리?가 전부 보이는 방법은 Option키를 누르면서 클릭하면 된다고 그랬쬬?)
extended detail area에서 stack trace영역의 맨 위에 있는 버튼을 누르면, stack trace에서 시스템 호출을 숨길 수 있습니다.
See Your App’s Source Code
stack trace에 나열된 symbol의 소스코드가 있는 Xcode프로젝트가ㅣ 있는 경우, Instruments는 코드를 표시 할 수 있으며 원하는대로 변경할 수 있도록 Xcode를 열 수도 있습니다.
stack trace symbol을 사용하여 작성한 소스코드를 찾으세요. 사용자 코드 stack trace symbol은 검은색 배경의 작은 정사각형 사용자 아이콘으로 detail pane에 나타납니다. 코드에 대한 symbol을 쉽게 찾을 수 있도록, inpector pane의 display settings area을 사용하여 숨겨진 symbol및 시스템 라이브러리를 필터링 할 수 있습니다.
오 찾았어염
2. 아이콘을 두번 클릭하면, 해당 symbol이 사용된 소스코드가 표시됩니다.
호ㅓㄹ!!!!!!!!!!!!!!!!!!!!!!!!!신기.....근데 저는 detail pane(저기 사용자 아이콘 있는 그림)에서 클릭하면 안나오고
요기 extended detail area에서 클릭하니까 떴어용!!!!!!!
신기신기
3. detail pane의 오른쪽 상단에 있는 Xcode버튼 을 클릭하여 Xcode를 열고, 소스코드를 표시하세요.
클릭하면 해등 소스코드가 짠 하고 뜬답니다.
ㅎㅎ참...예제를 좀 소스가 있는 프로젝트?....그런걸로 하면 좋을 텐데.........ㅜㅜ 그런 프로젝트로 Leaks Instruments를 열면,
이거..
한 1초 뒤에 모니터링이 멈춰버립니다;;;;;;; 딱 https://stackoverflow.com/questions/6357783/instruments-leaks-stopping-after-app-starts 이상황...클린하고 뭐 종료해보고 다시 햅 봐도 시작하고 나서 한 1초 지나면
딱 저기서 멈춰서는..모니터링이 중지되고 막 여기서 어떻게 막 Record버튼 다시 누르고 하면 Instruments앱이 멈춰버림ㅎ;;;
아무것도 없는 프로젝트를 해보면 이렇게 쭉 가야되는데...그래야 Leak체크도 하고 그러는데........OTL
저 스택오버플로우 질문이 2012년도에 올라온건데......허허
혹시 해결하신 분 계신가요....뭐 다른 Activity Monitor나 Allocations은 잘 되는대ㅔ..딱 이 Leak만 이러니까..뭐 어케해야할지 모르겠네요.
아무튼 해결방법을 아시는 분들은 댓글이나 PC화면 오른쪽 하단에 있는 채널서비스를 이용해서 메세지 주시면 감사하겠습니당 XD..
오늘도 도움이 되었길 바래요! 모두들 Instruments를 많이 많이 활용하시길 바랍니다.
'공부' 카테고리의 다른 글
Xcode 10 달라진 점 (5) | 2018.08.09 |
---|---|
Invalid username or password. (2) | 2018.08.07 |
Xcode ) Instruments - Common Tasks (2) (0) | 2018.05.06 |
Xcode ) Instruments - Common Tasks (1) (25) | 2018.05.05 |
다른 컴퓨터에서 내 repo로 push했는데.. (1) | 2018.05.05 |
- WidgetKit
- 회고
- Git
- IOS
- 피아노
- np-complete
- 스위프트 문법
- iOS delegate
- 스위프트
- FLUTTER
- Combine
- 제이슨 파싱
- swift sort
- WKWebView
- fastlane
- Xcode
- SwiftUI
- swift delegate
- WWDC
- actor
- ios 13
- swift 공부
- Accessibility
- Swift
- github
- UIBezierPath
- swift3
- swift array
- np-hard
- swift tutorial
- Total
- Today
- Yesterday