티스토리 뷰

반응형

안녕하세요 :) Zedd입니다.

벌써...(?) 세번째 입니당!!!

이번 주제는 제목을 보니..왠지 막 우리가 저번에 세팅을 다 하고 모은 데이터들을 어떻게 보냐!? 모은 데이터를 탐색하는 방법일 것 같네요. 

지금 3개의 챕터도 다 못봤는데 지루하실 수도...

일단 이번 챕터까지?..가 기본 Instruments의 사용법일 것 같아요! 이거 끝나면 뭐 성능. 메모리 사용, 에너지 등 그런 것들을 어떻게 프로파일 하는지 등을 볼건데, 암튼 저 순서대로 볼지는 모르겠어용 키키 

아무튼;;;;;뭐 trace document를 만들래서 만들고;;;뭐 어케어케 해서 데이터를 모았는데...그 모은 데이터를 탐색할 줄 알아야겠죠 일단?

시작해봅시당 :)

읽기전에!!! 반드시


<About Instruments >

< Instruments - Common Task(1)>

< Instruments - Common Task(2)>


읽고와주세요 XD



About Data Analysis


Instruments는 코드 관련 문제를 수정하지 않습니다. 앱이 실행 될 때 자세한 통계를 캡쳐하여 분석을 위해 제시함으로써 코드를 보다 효과적으로 이해 할 수 있습니다. 

모든 앱이 다르므로, 문제를 찾고 해결하는 실제 단계는 다릅니다. 따라서 필요하지 않은 데이터를 필터링 하여 Instruments가 수집하는 정보를 해석하는 방법을 배워야합니다.

그런 다음 몇가지 탐정(.....)업무(detective work)를 수행하여 식별한 데이터를 앱의 코드와 연관시켜 개선할 수 있도록 해야합니다.


trace를 수행한 후에는 Timeline pane, Detail pane, extended detail area(image: ../Art/instruments_extendeddetail_button_inline_2x.png) dㅔ서 수집된 데이터를 검사할 수 있습니다. 

Figure 10-1A trace document containing collected data

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이 드물게(드문 드문) 채워지면 앱이 제대로 작동하고 있는 것입니다. 트랙이 비어있지 않으면 이유를 검토 할 수 있습니다.(오ㅓ....)


Figure 11-1The timeline pane of a trace document

다음 섹션에서는 Timeline pane과 구성 방법에 대해 자세히 설명합니ㅏㄷ.



Zoom In and Out

trace로 많은 양의 데이터를 캡쳐한 경우, Timeline pane에 표시된 세부 정보를 확장(expand)하거나 축소(contract)하여 특정 데이터 하위 집합(specific subset of data)에 집중 할 수 있습니다.


Figure 11-2Zooming into the timeline pane of a trace document

To zoom in and out of your data

다음 중 하나를 수행하세요.

  • 확대 또는 축소를 하려면 트랙패드에서 pinch 제스쳐를 하세요.

  • 확대 또는 축소를 하려면, track View위에 포인터를 놓고, Option키를 누른 상태에서 스크롤 휠을 사용하세요.

  • 확대하려면, Option키를 누르고, 분리하려는 데이터 섹션 위로 드래그 하세요.

  • 축소라려면, Control키를 누르고, 데이터 섹션을 드래그하세요.



마우스가 없어서.....두번째꺼빼고 다 해봤어용. 아무튼 그 부분만 확대/축소가 가능하다는 거!!!


To fit all recorded data in the timeline(기록된 모든 데이터를 Timeline에 맞추려면)
1. View > Snap Track To Fit 또는 Control-Command-Z를 누릅니다.
네 View > Snap Track To Fit을 누르라는데!!!! 




왼쪽이 문서에 있는 사진이고, 오른쪽이 제가 지금 해본건데.......많은 업데이트가 있었나보네요. 그건 둘째치고 

Snap Track To Fit이 없음 ㅎㅎㅎControl-Command-Z는 되니까....이거 쓰세요..


Control-Command-Z누르면 이렇게 Fit...트랙에 Fit이 된다...



Filter a Range of Data

Instruments는 프로파일링 할 때, 엄청난 양의 정보를 수집합니다. 특정 시간 범위 내에 발생한 이벤트만 표시하도록 Detail pane을 설정하여 데이터를 신속하게 필터링 할 수 있습니다.



To select a time range for inspection
1. modifier keys를 사용하지 않고, 데이터 섹션을 가로질러 드래그하세요. 드래그 한 데이터만 표시됩니다.

Instruments는 지정한 범위에 속하는 Timeline pane의 내용을 하이라이트 합니다.


To clear an inspection range(inspection range를 지우려면)
다음 중 하나를 수행하세요.
● Timeline pane에서 선택한 범위 밖을 클릭하세요.
● View > Clear Inspection Range를 선택하세요.

Set Flags

플래그를 사용하면, Timeline pane에서 원하는 지점에 빠르게 액세스 할 수 있습니다. 각 플래그에 이름과 설명을 추가 할 수 있습니다.(오..)

Figure 11-4Flags in the timeline pane of a trace document


To set a flag at the current playhead position in the timeline pane
1. Edit > Add Flag를 선택하거나 Command+Down Arrow키



이렇게 추가 할 수 이씀


To navigate between your timeline flags
1. Window > Manage Flags를 선택하거나, Shift-Command-T를 눌러 플래그 팔레트를 표시하세요.
2. 플래그 팔레트에서 플래그를 클릭하여 Timeline pane에서 플래그로 이동하세요.


근데 요기에서 저거 클릭하면 슝 하고 이동하는 건줄 알았는데 그런거는 또 아니네요?...

To delete a flag
1. Timeline navigation bar밖으로 플래그를 드래그하세요.
(이거 안되는데...플래그 어떻게 지우죠?..)

To hide a flag
1. Window > Manage Flags로 들어갑니다.
2. 플래그 팔레트의 플래그 옆에 있는 체크박스를 선택해제하여 Timeline pane에서 플래그를 숨깁니다.




Access Trace Data for Multiple Runs

trace document는 다음 그림과 같이 앱을 여러번 실행하여 데이터를 기록할 수 있습니다. 그렇게 해도, 이전에 기록된 데이터는 삭제(discard)되지 않습니다.





To view a list of runs for a selected instrument(선택한 
instrument에 대한 실행 목록을 보려면)
1. strategy pane의 왼쪽에 있는 펼침 삼각형?..(disclosure triangle)을 클릭하세요.



instrument가 확장되어 실행 목록이 표시됩니다.

To view the run data for a selected instrument(선택한 
instrument의 실행 데이터를 보려면)
1. strategy pane왼쪽에 있는 펼침 삼각형을 클릭하세요. 
2. Timeline pane에서 원하는 실행 트랙을 선택하세요.



To move to the next run for the selected instrument(선택한 
instrument에 대해 다름 실행으로 이동하려면)
1. 
 Instrument > Next Run선택하거나, 
Command-Single Quotation Mark (')를 누르세요.
잉 이게 왜 지금나오지....



다음 실행, 이전실행은 아까;;;본;;; 이걸 의미합니당. 다음실행으로 가고싶으면 
Instrument > Next Run선택하거나, 
Command-Single Quotation Mark (')를 누르세요.
이전실행으로 가고싶으면 
press Command-Quotation Mark (")를 누르라는데..!!!!!!!!!!!!

저 shortcut은 아니구요...왜 문서 업데이트 안해..........shortcut은 맞아야할거 아냐...........이거 아니구요........



이거고...Command+{ / 
Command+}누르시면 되ㅏㅂ니다 ( {또는}가 쉬프트를 눌러야하는거 아시죠?
)


Navigate the Detail Pane

Timeline pane에서 잠재적인 문제 area를 확인 한 후, Detail pane을 사용하여 해당 영역의 데이터를 검사하세요.
Detail pane에는 선택한 
Instruments에 대해 현재 trace실행과 관련된 데이터가 표시됩니다. 
Instruments는 한번에 하나의 
Instruments만 Detail pane에 표시하므로, 다른 
Instruments를 선택하여 다른 상세(Detail)정보 set을 표시해야합니다.


아ㅏㅏㅏ 이제보니까 위 그림 오른쪽 부분(inspector pane)에 있는 것들이 왜ㅔ 안보이나 했더니... 이것들이 recording option으로 들어간거였네요.




암튼; 계속 ㄱ


View Different Types of Data in the Detail Pane

일부 instruments의 경우, 데이터를 둘 이상의 타입으로 표시 할 수 있습니다. 예를들어, Activity monitor instruments를 사용하면, 데이터요약, 상위 하위 정보 및 샘플 목폭을 볼 수 있습니다.


To switch between detail types
1. detail pane의 navigation bar에 있는 세부 정보 타입 목록에서 적절한 모드를 선택하세요.


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

일부 instruments의 경우, inspector pane의 extended detail area에는 Detail pane에서 현재 선택된 항목에 대한 추가 정보가 표시됩니다. 

이 extended detail area에는 기록된 probe또는 이벤트에 대한 설명, stack trace 및 정보가 기록된 시간과 기타 정보가 포함될 수 있습니다.

(image: ../Art/instruments_extendeddetail_button_inline_2x.png) 이 표시가 extended detail area라고 그랬죠?



저기 오른쪽 부분에 extended detail area보이시죠? 

(마지막ㄱ쯤에 하위 호출 트리?가 전부 보이는 방법은 Option키를 누르면서 클릭하면 된다고 그랬쬬?)

extended detail area에서 stack trace영역의 맨 위에 있는 image: ../Art/inline_hidesystemcalls_button_2x.png버튼을 누르면, 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및 시스템 라이브러리를 필터링 할 수 있습니다. 


To see your app’s source code
1. inspector pane에서 detail pane이나 extended detail area에서 코드 아이콘 (image: ../Art/inline_usercode_icon_2x.png)을 찾습니다.


오 찾았어염

2. 아이콘을 두번 클릭하면, 해당 symbol이 사용된 소스코드가 표시됩니다. 



호ㅓㄹ!!!!!!!!!!!!!!!!!!!!!!!!!신기.....근데 저는 detail pane(저기 사용자 아이콘 있는 그림)에서 클릭하면 안나오고



요기 extended detail area에서 클릭하니까 떴어용!!!!!!!

신기신기


3. detail pane의 오른쪽 상단에 있는 Xcode버튼 image: ../Art/inline_xcode_2x.png을 클릭하여 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