Xcode8 Swift언어기반 개발빌드가 느린 경우

2016-10-21
21 Views

간단한 책의 예제 프로젝트들은 빌드하면 크기 시간이 걸린다고 느끼기 힘들지만, 실무프로젝트에서는 Swift언어 기반으로 빌드를 하다보면 약간 느린 느낌을 받게 된다. 그런 느낌을 받았다면 이에 대한 해결책을 제시하기는 어렵고 몇가지 노하우를 공유해 본다. 각자 이 글을 읽은 개발자들은 입맛에 맞게 변경해서 사용해보기 바란다. (사실 Mac Pro 12코어 제온 CPU와 램 64GB로 채운 환경이라면 이런 설정들은 필요가 없다는 사실을 알자)

그냥 느낌만으로 빌드가 느리다는 것을 이야기하면 돌팔매를 맞을 수 있기 때문에 구체적으로 어떤 환경에서 빌드시 몇분이 걸렸다는 것을 증명하게 위해 Xcode 빌드 시간을 표시하도록 설정을 변경하는 방법을 알아보자. (터미널을 열고 아래 명령어를 실행하자)

프로세서의 Core수를 확인하기 위해 터미널에서 아래 명령어를 실행해 보자.

코어수를 확인했다면 Xcode에서 사용하는 코어수를 변경하자. (4개까지 사용가능하다고 나왔으니까 4개 다 사용하자)

Xcode 빌드를 해보자. 빌드는 되도록 [Command]+[option]+[K]를 눌러 클린시킨 후 [Command]+[B]를 눌러 빌드를 한다.

실행해보면, 환경에 따라 20~40%정도 성능 차이가 발생한다.

예로 위 환경에서 보여준 맥북프로에서 화면 120개를 가진 서비스앱에 Cocoapods 오픈소스 라이브러리 9가지와 Carthage기반 라이브러리 8가지를 처리하는데 2Core환경에서 빌드할 때 처리속도가 984.323s가 걸렸는데 4Core로 변경후 612.322s로 단축되었다.

사실 나중에 알게 된 곳이 있는데 참고하기 바란다.

Xcode Hardware Performance 

 

Facebook Comments

You may be interested

모바일 앱 아키텍처
Swift
shares11 views
Swift
shares11 views

모바일 앱 아키텍처

MJ Kim - 4월 22, 2017

이 내용은 나름대로 개발해본 내용을 토대로 정리해본 모바일 앱 아키텍처에 대한 내용이다. 이를 정리한 이유는 오래된 아키텍처부터 최근 아키텍처까지 정리해보고…

시간차를 얻는 Date Extension
Swift 3.0
shares6 views
Swift 3.0
shares6 views

시간차를 얻는 Date Extension

MJ Kim - 4월 12, 2017

사용자가 남길 내용에 대한 시간표시를 할 때 일정한 시간차를 표현해주는 경우가 있어 이에 대한 Date Extention을 정리해 보았다. [crayon-58fb8d2ac8928928487334/]  

Swift 3.1에서 없어진 문법 정리
Swift 3.0
shares34 views
Swift 3.0
shares34 views

Swift 3.1에서 없어진 문법 정리

MJ Kim - 3월 31, 2017

Swift언어는 무엇인가 나올때마다 없어지는 것들이 있어, Swift 3.1에서 컴파일할 수 없게 된 문법내용을 정리했다. switch문을 사용하여 enum에서 protocol을 여러가지 패턴으로…