티스토리 뷰
안녕하세요 :) Zedd입니다.
Common Tasks의 나머지 세 챕터들을 보겠습니당 키키
< Instruments - Common Tasks (1)>
을 읽고오세요 XD
Target Devices and Processes
trace document를 사용하여 무언가를 프로파일하려면, target을 지정해야합니다. 즉, 프로파일링 하고자 하는 target과 device 또는 시뮬레이터와 같이 프로ㅓ퍼파일링 하고자하는 위치를 Instruments에게 알려주어야합니다.
새 trace document를 생성하면, trace document는 프로파일링 템플릿 선택 dialog를 표시합니다. 이 dialog의 맨 위에는 target device목록과 target process목록이 포함되어 있어, 템플릿을 선택할 때 원하는 target을 지정 할 수 있습니다. 이러한 목록에는 시뮬레이터를 비롯하여, Mac에 구성되거나 연결된 모든 device와 이러한 device에서 프로파일링에 사용 할 수 있는 모든 프로세스가 포함됩니다. 최근 target process, app extensions, active processes(활성 프로세스), system processes(시스템 프로세스)도 나열됩니다.
중요 : OpenGL ES Analyzer Instrument 및 GPU Driver Instrument와 같은 일부 iOS 관련 악기는 iOS 시뮬레이터에서 실행할 수 없으므로, 실제 device(physical device)에서 실행해야합니다.
ㅇㅋ
target 목록은 모든 trace document의 툴바에서도 사용 할 수 있으므로, trace document에서 작업하는 동안 언제든지 target을 변경 할 수 있습니다.
원하는 process가 목록에 없으면, target process목록에서 "Choose Target"을 선택하세요. 그러면 모든 process를 탐색 할 수 있는 dialog가 표시됩니다. 이 dialog를 통해 process의 환경 변수를 구성 할 수도 있습니ㅏㄷ.
TIP : 타켓팅한 앱의 프로파일을 시도했지만, 앱이 실제로 실행되고 있지 않으면, Instruments는 자동으로 실행합니다.
(그니까 뭐 시뮬레이터든 디바이스든 그게 켜져있고, 앱이 실행중이 아니면 켜지는데!!!! 뭐 시뮬레이터를 끈다거나 연결을 안했다거나 그러면
이게 뜨니까, 꼭 일단 시뮬레이터든 디바이스든 연결은 연결해놔야합니다.(시뮬레이터의 경우에는 "켜져있어야"합니다.))
Target an iOS Device
iOS device를 타겟팅하려면, device를 개발 Mac에 연결합니다. 연결되면 다음과 같이 device가 target device목록에 나타납니다.
note : Instrument를 사용하여 iOS device를 프로파일링 하기 전에, device를 개발용으로 준비해야 데이터를 수집 할 수 있습니다. 프로비저닝에 대한 자세한 내용은 App Distribution Guide의 Creating Development Provisioning Profiles를 참고하세요.
Target an iOS Device Wirelessly
Instruments를 사용하면, iOS Device에서 무선으로 데이터를 수집 할 수도 있습니다.
무선 프로파일링은 다음을 테스트 할 때 특히 유용( especially useful )합니다.
● Accelerometers. Move the device in all directions without its being tethered. (가속도계. device를 (끈으로 묶지않고) 모든 방향으로 이동 합니다.)
● Accessories. Plug your USB accessory into the free slot and test it. (부속품?..악세서리. USB액세서리를 빈 슬롯에 꽂은 다음 테스트하세요. 이게 왜 유용한 점이죠?;;;;;;;;1번은 이해하지만 이건 뭐지...)
4. target device목록을 다시 클릭하여, device의 무선(wireless)버전을 선택하고, process를 선택하세요.
5. USB 또는 Lightning 케이블에서 device를 분리하세요. 이제 device에서 process를 무선으로 프로파일링 할 수 있습니다,.
note : 무선으로 device를 ㅁ프로파일링 하는 동안, device의 전원을 끄면(powering off), 데이터 수집이 중지됩니다. 데이터 수집을 다시 시작하려면, 컴퓨타에 다시 연결해야합니다.허거걱
Target an Apple Watch
오..애플와치를 프로파일링 한다는 생각은 못해봤네용ㅇ
Instruments와 함께 Apple Watch를 타겟팅하기 전에 먼저 프로파일 링을 위해 Apple Watch를 준비해야합니다. (ㅎㅎ....실패)
9. iPhone을 USB 또는 Lightning 케이블에서 분리하세요.
10. iPhone을 USB 또는 Lightning 케이블에 다시 연결하세요. (..?)
Apple Watch가 프로파일링을 준비하면, Instruments를 다시 시작하고, 다음 ㄷ그림과 같이 Apple Watch가 target device목록에 나타나게 됩니다.
note : Apple Watch를 프로파일 링 할 때, 개발 iPhone은 Watch와 Instruments 사이의 정보를 중계하는 프록시 역할을합니다.
Other Ways to Target
이 챕터에서는 Instruments에서 target앱 및 device를 지정하는 방법을 배웠습니다. 그러나 Instruments 앱을 직접 입력하지 않고도, 외부에서 앱을 타겟팅 할 수 있습니다. 자세한 내용은 곧 나옵니다.ㅇ
Access and Use Individual Instruments
trace document내에서 instruments로 알려진 각 데이터 수집 모듈은 시간 경과에 따라, 앱, process(이제 그냥 프로세스라고 할게요..), device에 대한 데이터를 수집합니다. 각 instruments는 파일 액세스, 메모리 사용 또는 네트워크 활동과 같은 특정 타입의 정보를 수집하고 표시합니다. instruments는 대부분의 개발자의 요구를 충족시키도록 설계된 광범위한 instruments 라이브러리를 포함합니다. 그러나 고오급 개발자는 DTrace를 사용하여 다른 타입의 데이터를 수집하는 자체적인 사용자 지정 instruments를 개발할 수도 있습니다(..)
note : iTunes, DVD 플레이어 및 QuickTime을 사용하는 앱과 같은 일부 Apple앱은 중요하거나 저작권이 보호된 데이터를 보호하기 위해 DTrace를 통한 데이터 수집을 방지합니다.
(그래서 DTrace가 뭔데......뭐 곧 나오겠죠?.)
Display the Library Palette
라이브러리 팔레트에는 trace document에 추가 할 수 있는 모든 instruments를 표시됩니다. 라이브러리에는 내장 된 모든 instruments와 정의한 모든 사용자 정의 instruments가 포함되어 있습니다. 아니 했던 말을 계속하네
Command-L이나 +버튼 ㄱ
< Instruments - Common Tasks (1)>글에서도 언급됐었는데...그때는 안알랴주더니 지금 알려주네
Find Instruments in the Library Palette
라이브러리 팔레트의 instruments목록은 특히 사용자 지정 instruments를 추가한 경우 매우 길어집니다. 라이브러리 팔레트의 하단에 있는 filter field를 사용하여 이름, 설명 또는 키워드를 기반으로 특정 instruments를 빠르게 찾을 수 있습니다ㅣ.
Change the Library View Mode
라이브러리 팔레트의 instruments는 이름과 설명이 있거나 없는 아이콘으로 볼 수 있습니다. 라이브러리 팔레트는 하단의 아이콘 View 버튼()을 클릭하여, 각 instrument의 아이콘만 표시하세요.. 각 instrument의 아이콘, 이름ㅇ 및 설명을 다시 표시하려면 버튼을 클릭하세요.
오옹
Add an Instrument to a Trace Document
템플릿이나 "Blank"를 기반으로하는 trace document를 만들었더라도(템플릿 선택 dialog 맨처음에 Blank라고 있음), 기능을 확장하기 위해, ㄱ새 instruments를 추가 할 수 있습니ㅏㄷ.
그러하다
Remove an Instrument from a Trace Document
지우는 법!!Configure an Instrument’s Record Settings
Instruments는 일반적으로 trace document에 추가하는 즉시 사용 할 수 있습니다. 그러나 어떤 경우에는 Instruments의 설정을 사용자 정의 해야 할 수도 있습니다. 예를들어, Allocations instrument의 샘플링 속도를 조정하거나 free memory(사용가능한 메모리?)에 대한 이벤트를 삭제(discard)할 수 있습니다. 이러한 설정은 Instruments에 따라 사용자 지정 가능합니다. 많은 Instruments에는 Instruments자체에서 수집하는 정보 타입을 결정하기 위한 컨트롤이 포함되어 있습니다. inspector pane의 record settings area에서 이러한 설정을 조정 할 수 있습니다.(< Instruments - Common Tasks (1)>글에서 inspector pane을 설명했었죠?)
Configure an Instrument’s Display Settings
trace를 기록한 후, Instruments는 Detail pane에 결과를 표시합니다. 이러한 결과는 Instruments마다 다릅니다. 요약, 호출트리(call tree), 샘플 리스트와 같은 요소가 포함 될 수 있습니다. 흔히 많은 데이터가 여기에 표시되며, 탐색ㄷ하는데 시간이 오래 걸릴 수 있습니다. Instruments에는 적절한 정보를 신ㅅ혹하게 얻을 수 있도록(종종 Instruments마다 다름) 디스플레이된 정보를 조정하고 필터링 할 수 있습니다. Instruments가 이러한 작업을 지원하면 inspector pane의 display settings area에 나타납니다. Timeline pane의 내용 구성 옵션도 여기에서 찾을 수 있습니다.
Figure 8-5Display settings for the Activity Monitor instrument
Record, Pause, and Stop Traces
Instruments는 실행 중에 앱에 대한 정보를 수집합니다. 이 챕터에서는 Instruments가 정보를 수집하도록 지시하는 방법을 설명합니다.
헉 드디어 사용법이...!!!!!!!
Record a Trace
앱을 프로파일링 할 준비가 되면, Record(녹화, 녹음 같은 뜻이 있지만..."기록"이라고 번역하겠습니당ㅎㅎ)을 시작합니다. 기록을 하는 동안 trace document의 instruments는 구성(configurations)에 따라 앱을 모니터링 합니다. 기록이 진행됨에 따라, Timeline pane과 Detail pane이 업데이트 되어 캡쳐된 내용을 실시간으로 볼 수 있습니다.
Set Recording Options
trace document에서 데이터 수집을 향상시키기 위해, record 옵션을 설정하세요.
기록을 하기 전에 지연(delay), 기록할 시간의 길이, 저장할 데이터의 양 또는 지연모드(deferred mode)에서 데이터를 기록할지 여부를 선택합니다.
옵션에는 다음이 포함됩니다.
● Time limit(시간제한) : instruments가 데이터를 기록하는 최대시간(초) 입니다.
● Window limit(window?..제한) : 저장할 데이터의 최대 지속 시간(초). window 제한으로, 지정한 시간보다 오래(예: 4초이상) 계속 기록하면, 마지막 4초동안 수집된 데이터만 저장됩니다. (처음 4초가 아니라 마지막 4초군요..)
● Deferred mode(지연 모드) : 데이터 수집이 완료 될 때까지 데이터 분석을 연기하려면 선택하세요. 이로 인해 기록되는 프로세스에서 더 많은 시스템 리소스가 처리되기 때문에, 보다 빠르고 정확한 데이터 수집이 가능합니다.
note : trace document의 instruments 또는 instruments의 기본 설정 구성에 적용 할 수 없는 경우, 이 option dialog중 일부옵션이 비활성화 될 수 있습니다. 옵션이 사용 중지 된 이유를 확인하려면, 몇초동안 마우스를 올려놓으세요. 툴팁이 표시됩니다. window limit은 OS X 10.7이상 및 iOS 5이상에서 지원됩니다.
좀 다르게 뜨는데...밑 부분이 우리가 방금 배운거랑 비슷하네요?..뭔가 많이 추가됐음 ㅎㅁㅎ
2016년 9월이 마지막 업데이트긴 했지만, Instruments는 뭔가 큰 영향을 안받을 것 같아서 괜찮겠지 했는데..역시나.....요새 애플 문서 볼때마다 이 업데이트 속도에 한숨을 쉬게 되네요ㅜㅜ문서 업데이트 해주세요.
Pause a Trace
필요한 경우, 기록을 일시중지하고, 나중에 다시 시작 할 수 있습니ㅏㄷ.
Stop a Trace
원하는 데이터를 기록 한 후, 기록을 중지하면 수집된 데이터를 분석 할 수 있습니다.
아까 위에서
이렇게 말했죠? 이제 나옵니당.
Profile from the Dock
Dock의 Instruments 앱 아이콘에서 Time Profiler를 실행하여, 백그라운드에서 특정 이벤트를 자동으로 기록 할 수 있습니다.
옵션에는 다음이 포함됩니다.
● System Time Profile : 모든 시스템 프로세스 프로파일링을 시작합니다.
● Time Profile Specific Process : 하위 메뉴에서 특정 앱을 사용하여 TimeProfiler Instruments를 시작합니다.
● Automatically Time Profile Spinning Applications : 나중에 차단된(spinning) 앱을 자동으로 프로파일링 합니다.
● Allow Tracing of Any Process (10 hours) : 다음 10시간 내에 발생할 모든 프로세스를 추적합니다. 10시간 동안 암호를 입력하지 않아도 됩니다.(?)
note : 이 방식으로 기록된 데이터는 .dtps타입으로, ~ / Library / Application Support / Instruments / Unimported /에 저장됩니다.
Profile from Xcode
Instruments는 Xcode개발 워크 플로우의 핵심 구성 요소이며, 앱을 빌드하고 테스트 할 때, Xcode내에서 직접 시작 할 수 있습니다.
Profile from the build and product menus
Xcode 빌드 메뉴를 사용ㄹ하면, 앱을 실행, 테스트 및 분석 할 수 있습니다. 또한 Instruments로 앱을 프로파일링 할 수 있습니다.
또는
4. Instrument 팝업 메뉴에서 원하는 프로파일링 템플릿을 선택하세요.
Profile from Xcode gauges while debugging
Xcode debug navigator에는 테스트하고, 디버깅 할 때, 앱을 모니터링 하는 여러 게이지가 포함되어 있습니다 이 게이지는 CPU사용량, 메모리 및 에너지 영향을 비롯한 다양한 요소를 추적하며, 성능, 전력소비 등에 영향을 줄 수 있는 잠재적 문제를 경고합니다. 앱을 테스트 하는 동언, 추후에 조사하고자하는 추세를 확인하면, 보다 자세한 분석을 위해 모니터링을 Instruments로 전환할 수 있습니다. (이것도...< Instruments - Common Tasks (1)>글에서 한건데, 추가정보가 더 있으니 계속 읽어주세요!)
자, 앱을 빌드하면 debug navigator에서
요런거를 볼 수 있죠? 오른쪽 main editor에서 "Profile in Instruments"을 클릭하면 됩니다.
모든 Xcode게이지에 "Profile in Instruments"버튼이 있는건 아닙니다. 예를들어, Energy Impact게이지에는 Instruments에서 다양한 타입의 프로파일링 세션을 시작하기 위한 몇가지 버튼이 있습니다.
아무튼 "Profile in Instruments"버튼을 클릭하면
이런 프롬프트가 뜨게 됩니다. 현재 실행중인 앱 인스턴스를 Instruments로 전송할지, 또는 App을 중지하고 Instruments를 사용하여 앱의 새 인스턴스를 시작할지 선택하세요ㅣ.
두 경우 모두, Xcode가 앱 프로파일링, Instruments 실행 및 프로파일링을 중비합니다. 세션을 전송(transfer)하기로 선택한 경우, Instruments는 현재 상태로 앱을 프로파일링 하기 시작합니다.
커맨드라인으로 하는방법은 건너뛰겠습니당. 나는 꼭 커맨드라인을 써서 하고싶다!!!!하시는 분들은 여기에 가셔서 "
Profile from the Command Line"를 읽어주세요!
Minimize Instruments Impact on Data Collection
Instruments는 데이터수집에 미치는 영향을 최소화 하도록 설계되었습니다. 그러나 몇가지 기본 설정을 변경하여 Instruments가 데이터 수집에 미치는 영향을 더욱 줄일 수 있습니다.
더 많은 데이터를 숟집하기 위해, 여러 Instruments의 샘플 간격(interval) dmf 줄일 수 있습니다. 그러나 짧은 샘플 간격으로 인해 높은 샘플 속도(rate)가 발생하면, 몇가지 문제가 발생 할 수 있습니ㅏㄷ.
● 모든 샘플에 프로세서 시간이 필요합니다. 높은 샘플 rate는 더 많은 프로세서 시간을 사용합니다. Processor time is required for every sample.
● 샘플 간격(interval)타이밍이 일치하지 않을 수 있습니다. 인터럽트는 각 샘플을 시작하는데 사용됩니다. 이러한 인터럽트가 발생할 때의 변화는 매우 작은 샘플 간격을 사용 할 때 샘플 속도(rate)에 상당한 변화를 일으킬 수 있습니다.
● 작은 샘플 간격으로 인해, 더 많은 샘플이 수집됩니다. 각 샘플은 시스템 메모리를 사용하며, 많은 수의 샘플이 메모리가 적은 컴퓨터에서 사용가능한 메모리를 빠르게 사용합니다.
Run Instruments in Deferred Mode
테스트 중인 앱을 종료할 때 까지, 데이터 분석을 연기(deferring)하여 성능관련 데이터의 정확성을 높입니다. 일반적으로 Instruments는 앱 실행중에 데이터를 분석하고 표시하므로 수집된 데이터를 볼 수 있습니다. 실시간 분석?(analysis live)을 수행하면 CPU시간과 메모리를 소비하여 대상 프로세스 속도가 느려지므로, 프로세스가 정상적으로 작동하는 방식을 반영하지 못할 수 있습니다. Instrument를 지연모드(deferred mode)로 실행하면, 앱 실행이 끝나거나 Stop을 클릭한 후, 데이터 수집이 완료될 때 까지 데이터 분석이 지연됩니다. 지연모드에 있는 동안, 데이터를 수집하는 instruments와의 상호작용이 차단됩니다.
지연모드에서, instruments는 데이터 수집을 완료한 후, 데이터를 처리하고 화면에 표시합니다. 데이터 분석 연기(Deferring data analysis )는 데이터 수집 프로세스의 후반 단계에 시간을 추가하지만, 성능관련 데이터가 정확하도록 보장(ensure)합니다.
특히 긴 trace의 경우, 지연모드(deferred mode)로 인한 지연(delay)이 중요할 수 있습니다. 매우 정확한 데이터 수집이 필요한 추적(trace)에만 지연모드를 설정하면 지연(delay)를 피할 수 있습니다. (아까 했던거임)
'공부' 카테고리의 다른 글
Invalid username or password. (2) | 2018.08.07 |
---|---|
Xcode ) Instruments - Navigate Collected Data (0) | 2018.05.07 |
Xcode ) Instruments - Common Tasks (1) (25) | 2018.05.05 |
다른 컴퓨터에서 내 repo로 push했는데.. (1) | 2018.05.05 |
Xcode ) About Instruments (0) | 2018.04.29 |
- UIBezierPath
- WKWebView
- ios 13
- swift array
- github
- Git
- swift sort
- swift tutorial
- WWDC
- actor
- swift3
- Combine
- Swift
- Accessibility
- IOS
- 피아노
- fastlane
- Xcode
- SwiftUI
- np-complete
- WidgetKit
- FLUTTER
- 회고
- iOS delegate
- 스위프트
- swift 공부
- swift delegate
- np-hard
- 제이슨 파싱
- 스위프트 문법
- Total
- Today
- Yesterday