Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[WWDC2025] SwiftUI 최적화 프로파일링 - Optimize SwiftUI performance with Instruments (2) 본문

WWDC 정리/WWDC 2025 정리

[WWDC2025] SwiftUI 최적화 프로파일링 - Optimize SwiftUI performance with Instruments (2)

jake-kim 2025. 9. 3. 01:47

SwiftUI 프로파일링

  • Instrument > SwiftUI 선택하고 프로파일 수행
    • 먼저 SwiftUI 로 되어있는 꺽쇠를 클릭 > View Body Updates > 영역을 드래그하여 지정한 후 해당 영역 set Inspection Range And Zooms 클릭 > Time Profiler 클릭 

  • Time Profiler는 정기적으로 샘플을 추출하여 현재 실행중인 함수에 대한 분석을 시도
    • 뒤에서 나올 예제는 body가 실행되는 동안 프로파일링

  • WWDC 영상처럼 호출 스택이 여러가지가 표출됨
  • 이 중에서 살펴볼 것은 LandmarkListItemView이므로 command + F를 하여 검색

  • 왼쪽을 보면 각 call stack안에 해당하는 프레임에 대한 소요 시간을 의미
    • 여기서 가중치가 높은 프레임을 찾아서 그 코드를 파악하기가 가능
    • 그 중에서 body부분이 관심이 있으므로 여기를 클릭해서 확인

  • 프로파일링하기
    • 왼쪽을 더 보면, 아래와 위가 차이가 많이 나는 구간을 파악이 가능
    • 첫번째: 58.9%에서 73.7로 간 부분
    • 두번째: 31.6%에서 57.9%로 간 부분

  • 클릭하면 해당 부분의 코드가 표출

  • 프로파일링 결과 NSMeasurementFormatter 부분으로 확인
    • 코드에서 이 부분을 확인

  • body에서 이 distance 변수를 뷰가 업데이트 될때마다 호출하고 있음

  • 프로파일링을 하면 시간이 ms 단위로 적게 느껴지지만 이 시간들이 누적이 되면 사용성에 영향을 줄 수 있으므로 개선이 필요

 

(SwiftUI가 body를 실행하는데 걸리는 시간을 이해하는데 먼저 render loop 개념이 필요한데, 이 개념은 다음 글에서 계속..)

 

* 참고

- https://developer.apple.com/videos/play/wwdc2025/306/

Comments