Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- MVVM
- collectionview
- 애니메이션
- UITextView
- combine
- UICollectionView
- 리펙토링
- swift documentation
- Refactoring
- swiftUI
- SWIFT
- Xcode
- RxCocoa
- Human interface guide
- Protocol
- uitableview
- ios
- scrollview
- HIG
- 스위프트
- Observable
- 리팩토링
- 클린 코드
- rxswift
- uiscrollview
- clean architecture
- tableView
- map
- ribs
- Clean Code
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 최적화 - Instrument의 Time Profiler 본문
Time Profiler
- Xcode > Cmd + I로 Instrument 실행 > Time Profiler 선택

- 창이 뜨면 Record 버튼을 눌러서 앱을 실행

- 중지 버튼을 눌러서 분석 중지

- 그래프를 보면 삐쭉 튀어나와있는 부분에 커서를 대면 시간이 얼마나 걸렸는지 알 수 있음

- 그 부분을 왼쪽마우스로 클릭하고 아래 로그를 보면 어떤 부분에서 시간이 걸렸는지 확인이 가능

더 구체적으로 확인 방법
- 위에 까지 알아본 방법은 대충 어떤 함수가 많이 걸리는지 알려주는데 더욱 구체적인 back trace를 보고싶은 경우는 아래처럼 처리가 필요
- Samples를 클릭


- Profile 클릭

- 하단 로그를 보면 아래처럼 누적값으로 Weight가 표시되는데 가장 큰 weight가 증가한 start부분을 펼치기

- option + 왼쪽마우스 클릭하면 다 펼쳐짐

- 여기서 증가량이 많은 해당 부분을 클릭

- 또 펼쳐서 계속 확인해보면 마침내 어디에서부터 시작되었는지와 이 이후에 어떤것들이 불렸는지 알 수 있음

- 호출 순서: 빨간 화살표
- Example1.heavyWork()가 호출되고나서 forEach 그다음 heavyWork() 그다음 fib() 순서로 파악이 가능하고 마침내 fib()에서 시간이 많이 걸렸다는 의미

'최적화하기' 카테고리의 다른 글
Comments