함수별 컴파일 시간 측정하기

이번 주제와 다음 주제에 이어서 컴파일타임을 최적화하는 방법에 대해 알아보려합니다.
컴파일타임이 최적화 되었는지 확인해보는 방법을 먼저 소개하겠습니다.

멋진 분께서 GitHub을 통해 Xcode를 위한 빌드 타임 분석기를 올려주셨습니다.
감사한 마음으로 다운로드 받아 빌드해두었습니다.

간편하게 사용하고자 하는 분께서는 아래 파일을 다운로드 받아 활용하시고, 직접 빌드배고 싶은 분께서는 원본 링크로 이동하여 빌드하고 사용해보시면 됩니다.

BuildTimeAnalyzer

빌드 시간 분석을 보고자 하는 프로젝트의 Build Settings에서 Other Swift Flags-Xfrontend -debug-time-function-bodies를 추가하고, 클린빌드 합니다.

그 후에 다운로드 받은 빌드 시간 분석기를 실행하고, 아래 프로젝트 목록에서 방금 빌드한 프로젝트를 선택합니다.

이렇게하면 함수별로 컴파일에 소요하는 시간을 대략적으로 알 수 있고, 전체 빌드시간에 대해서도 파악할 수 있습니다.

또, 컴파일이 특정 시간 이상으로 오래걸리는 함수나 표현식을 찾고 싶다면 아래 방법을 활용할 수 있습니다.

-Xfrontend -warn-long-function-bodies=100
-Xfrontend -warn-long-expression-type-checking=30

프로젝트의 Build Settings에서 Other Swift Flags에 위의 옵션을 추가하면 100ms 이상 걸리는 함수와 30ms 이상 걸리는 표현식은 빌드 후 이슈에 경고로 표시해줍니다. 시간은 적절하게 변경해서 사용하면 됩니다.